Download

How to create material that stays the same size when you scale a mesh?

Hi All,

I am trying to create a material that does not scale with a mesh when you increase its’ size. I have had success with water materials in the past using the AbsoluteWorldPosition-Divide-Mask(RG)- method but the material was applied to a 2D plane. When I apply it to a 3D mesh there is stretching on all the sides, except top and bottom:

dbf4678a37251d575298063e28708e0cd25c35bb.jpeg

I feel like this has to be reasonably simple but I can’t make it work or find an example. Bad search terms maybe? If anyone has a link or methodology I would greatly appreciate it.

Thanks in advance!

See Having some world constant UV scaling - Rendering - Unreal Engine Forums .
Your current method probably won’t be able to scale into a 3D implementation well (if at all, haven’t used that node myself yet), so the node giving you the Object radius should help.
Sadly Object Radius will not keep the UV size universal across multiple objects with different UV layouts so you’re gonna need some tweaking on either the models UVs or the material if you intend to use it on multiple meshes and keep displayed texture at the exact same size.

Make your Texture coordinates based on world coordinates, let me see if I can find a tutorial I’ve seen for udk in the past that might help you with this.

edit: ah yes, here it is. credits to Chris Abeluhn.

http://www.chrisalbeluhn.com/UDK_Asset_Position_Offsets_Texturet_Tutorial.html

you might want to give the “WorldAlignedTexture” node a try.