Page 1 of 1

Texture realscale functionality

Posted: Wed Dec 30, 2015 8:37 pm
by greengreen
It would be great to see an update to the realscale functionality put on a wishlist. With a lot of my surfaces, I have to go to the material editor, go to the texture editor, and then check and uncheck the 'use overide' button to get it to display properly in the model.

I created a thread about my struggles with the textures showing in the model back in this thread: http://www.maxwellrender.com/forum/view ... 05&t=42705

Re: Texture realscale functionality

Posted: Wed Dec 30, 2015 9:58 pm
by JDHill
Toggling Use Override doesn't do anything special; the only difference between doing that and issuing the Refresh Viewport Materials command is that toggling Use Override (or changing any material parameter) will only update those objects using the currently-selected material.

In the thread you linked, I mentioned that RS is implemented using a bit of a hack, and as far as I know, it is currently working as well as it can. As mentioned in that thread, there are issues with it (and in particular, the RS Rotation controls) when it comes to Extrusions, where if you scale or rotate the extrusion, the RS-rotation will be applied again, but with respect to world coordinates, rather than "sticking" to the rotated/scaled object, as happens with surfaces & polysurfaces. The reason for this goes back to that "hack" -- with extrusions, Rhino apparently resets the data that the plugin is using to keep track of the relative orientation of the RS projection.

If you can be more specific (meaning, very specific) about any particular issue, and provide a model that demonstrates it, I can see if there is some unknown bug or limitation involved, and/or possibly try to help you find a workaround.

Re: Texture realscale functionality

Posted: Thu Dec 31, 2015 8:25 pm
by greengreen
Are you talking about the "Maxwell_RestoreViewport" command? I didn't know about that, yes it works much better than toggling that Use Override.

Here is a link to my model, https://www.wetransfer.com/downloads/7f ... 745/c587df

The texture that was most recently giving me trouble was the surface on the "Pavers" layer, but, I can just use the command you just told me about, this seems to be helpful

Re: Texture realscale functionality

Posted: Thu Dec 31, 2015 8:42 pm
by JDHill
I'm not seeing a problem with that surface (but then, I don't yet know what you mean by saying it's giving you "trouble"), unless I enable [right-click viewport label] > Display Options > Display Mode Options > Shading settings > Advanced Texture Preview. When that is enabled, then whenever an RS Rotation value is changed, Rhino prints "Creating meshes..." to the console (and focus is shifted from the RS Rotation spinbox I was changing), the viewport UVs for the plane are reset, and I need to refresh the material to get them back.

Is this similar to the behavior you're referring to?

Re: Texture realscale functionality

Posted: Thu Dec 31, 2015 8:58 pm
by greengreen
What I mean by trouble is that it doesn't always reflect the real scale setting. If I trim a part of the surface that appears to have the correct real scale it will change to some larger or smaller setting, not the real scale. Or, if I create a new surface it doesn't show the proper real scale, or less often when I close and re-open the model some real scales are lost.

Re: Texture realscale functionality

Posted: Thu Dec 31, 2015 9:18 pm
by JDHill
If you modify the object, it is expected that UVs will be lost in the viewport, and need to be regenerated. There is an undocumented command, Maxwell_RealScaleUpdateMode, which you can set to "Auto", but I must say that you are at your own risk if you do, because according to the Rhino SDK docs, it modifies objects (automatically fixing the lost UVs, by listening for changes, and re-applying them) when it should not. In my experience it doesn't cause any issues, but the disclaimer stands, nonetheless. However, even this will not cover instances in which you apply an RS material to a layer, or create geometry on a layer with an RS material -- in these cases involving layer-assigned materials, you must refresh the viewport yourself.

Re: Texture realscale functionality

Posted: Thu Dec 31, 2015 11:45 pm
by greengreen
Thanks JD!

Re: Texture realscale functionality

Posted: Fri Jan 01, 2016 7:13 am
by greengreen
JD, I am running into more "trouble" with real scale. I don't know if this is a user error or not, but I continue to have issues with real scale in rhino.

Now, I am trying to render a concrete wall, using real scale.

The render does not come out the same as it looks in Rhino as you can see here:

Image

If I click the 'use override' button on the Texture Editor, it appears as if this is the scale of the material that was rendered (although the lower wall has the wrong orientation):

Image

What am I doing wrong? Do I need to use the 'use override' toggle? I read the documentation http://support.nextlimit.com/display/mx ... ial+Editor, but I am still unclear. I have had issues like this on texture mapping for years, unexpected results are very frustrating.

Rhino File: https://www.wetransfer.com/downloads/3e ... 800/79547d

Re: Texture realscale functionality

Posted: Fri Jan 01, 2016 7:53 am
by JDHill
I can't tell you what might be happening without seeing your model, there are too many potential factors to ascertain much from screenshots. I've looked over the model you sent earlier, to see if I find anything likely to cause problems, but I don't find anything obvious, and all appears to be working as expected. But, that version (it looks like the same model) doesn't have the geometry with which you're apparently having issues in the screenshots.

Re: Texture realscale functionality

Posted: Fri Jan 01, 2016 7:24 pm
by greengreen
I put a link to download the file.

For now, I will go back to a trick I used to use in which I create a wireframe box of the tile dimensions I need and use that to map the textures manually. Which is fine, maybe I will just stick to that because I know that it gets me what I am looking for

Re: Texture realscale functionality

Posted: Fri Jan 01, 2016 8:28 pm
by JDHill
Thanks for uploading the model, it makes things clear. Taking for example the half-walls in your screenshots, with textures running vertically rather than horizontally, the problem is that you are trying to use both explicit Rhino texture mapping, and Real Scale, at the same time; in the rendering, you see the RS mapping, but in Rhino's viewport, you see Rhino's mapping, and naturally, they can't match (if they could, then we wouldn't need RS in the plugin, because that would mean Rhino itself was able to do RS). There are two ways to go:
  1. a) Delete the Rhino box mapping (and refresh the viewport to update the RS UVs).
  • -- or --
  • b) Set all the textures in the material to use Relative scale (you can hold CTRL+SHIFT while you change the value to have it set in all the material's textures).
When you use (a), the viewport will match the rendering because the plugin will be able to show you the RS UVs it is going to create. And when you use (b), the viewport will match, because the plugin will just render whatever you have set up in your Rhino box mapping. You just can't use both methods at the same time, for a given object.

As a side note, I gather you have some confusion about the meaning of the "Use Override" switch. How you can think of this is that there is a texture in the material that has no button in the interface; any texture in the material that has Use Override enabled uses the projection properties of this invisible global texture, rather than its own. You can see the effect of this by enabling Use Override, changing Repeat U to 2.22, selecting a different texture, enabling Use Override for that texture, and seeing that the Repeat U value shows the 2.22 you set in the first texture. Changing Repeat U to 3.33 and then switching back to the first texture, you'll see 3.33 for Repeat U there, too. So, any texture in the material with Use Override enabled shares projection property values with every other texture that has it enabled -- that is all that it does.

I hope this helps to clarify things for you.