Scale independent 3D texture

ronnyhatteland
Contributor
Contributor

Scale independent 3D texture

ronnyhatteland
Contributor
Contributor

Is there any way of making the 3D procedural textures scale independent so that it will display with a similar size over multiple objects with different scales?

0 Likes
Reply
Accepted solutions (1)
603 Views
9 Replies
Replies (9)

hamsterHamster
Advisor
Advisor

In Maya native 3D textures there's a Local flag, which will act like 3D placement node is scaled up to each object's bounding box.

hamsterHamster_0-1644834216214.png

 


,,,_°(O__O)°_,,,
Maya2019.1 @ Windows10 & GeForce GTX1080Ti

If the post was helpful, click the
 ACCEPT SOLUTION  button, so others might find it much more easily.

ronnyhatteland
Contributor
Contributor

Awesome, exactly what I was looking for, thanks!

ronnyhatteland
Contributor
Contributor

Hmm, I guess I was a bit quick to reply, it still seems to be stretched by scaling of the individual objects. I am looking for something where the size of the texture on the objects only depends on the scale of the place3DTexture node, you see what I mean?

0 Likes

ronnyhatteland
Contributor
Contributor

I'm looking for something like this:

 

render.png

Which is possible freezing the scale transformations, however I have some objects where the scale is animated so I would need to be able to achieve this in some other way

0 Likes

hamsterHamster
Advisor
Advisor

Yes, those get squished-stretched, if you are using anything but cube or quad, and the local axis orientation matter too. This would have been ok for the Wood textured planks or beams, not so much for other textures.. Local makes it almost like UV-based, deforms with scale. Besides, every object with that tex will have the same pattern.

For non-uniform scaling I'd still suggest using several versions of non-Local textures for various aspect ratios, which you can convert to 2D textures.

All said, not completely clear what you are after - in your image I see what happens, but I might only guess what it should look like. Still, I suspect it is impossible that easy, unless you are ready to write own shader. Might be tempting to apply one shader/texture to everything and expect to do all the dirty job. 😉 Here it sounds something to do with shading switches, yet there is no shading switch for the placement matrices.

I haven't used those, but you might be possibly after Texture References. Try, succeed.

Also consult Arnold's documentation, as it might have own tricks and limitations.

 

 

 


,,,_°(O__O)°_,,,
Maya2019.1 @ Windows10 & GeForce GTX1080Ti

If the post was helpful, click the
 ACCEPT SOLUTION  button, so others might find it much more easily.

0 Likes

hamsterHamster
Advisor
Advisor
while I was writing my previous answer I wasn't aware of your next image. For that, you would simply use 3D texture as is, and for animated pieces, yeah, previously mentioned Texture References; see the link.


,,,_°(O__O)°_,,,
Maya2019.1 @ Windows10 & GeForce GTX1080Ti

If the post was helpful, click the
 ACCEPT SOLUTION  button, so others might find it much more easily.

0 Likes

ronnyhatteland
Contributor
Contributor

Thanks for the quick replies, actually it looks like I was just confused by the viewport renderer, as the 3d mapped textures are stretched with scale but they actually show up as expected in the final render regardless of the scaling of the walls :walls.png

Also what confused me initially was that I use my 3D texture as a bump texture, and it seems like the amount of bump is affected by the scaling. So I guess my real question is how can I prevent the bump depth to be influenced by scaling?

 

Below is an example where the scale X and Z of the pillar is 1 but scale Y is 24 so there is extra bump on top of the pillar :

bump.png

0 Likes

mspeer
Consultant
Consultant
Accepted solution

Hi!

As pointed out by @hamsterHamster  in the last response, there is nothing special to be done.

Just apply the material to all your objects and scale them as you want.

However the Viewport may not update properly, so you might want to do this manually, but the rendered result should show the same scale for the texture on every object.

0 Likes

ronnyhatteland
Contributor
Contributor
Yes you are right, I just realized that the combination of my 3D bump map and viewport tricked me as I didn't expect the 3D bump map to be affected by the scaling
0 Likes