Rotating Normal Maps

Is there an easy way to rotate normal maps in material editor ?

are you talking about 90° increments or gradual rotation? 90° could possibly be done somewhat fast, even though i’d recommend doing it in an image editor if at all possible. inbetween steps probably not as that is a fairly complicated calculation…

Gradual rotation.
I guess it will be complicated calculation.
I probably wont use expensive stuff but if anyone knows the answer, extra information is just no harm, right ?

I’ve came up with this material setup:

Make sure that the ‘RotationAngle’ matches the ‘Speed’ value of the rotator node but with the opposite sign.

2 Likes

Yeah that wont work, because the way normal maps are made up of RGB (horizontal / vertical / depth) as soon as you start to rotate it, it changes the normal angle information.

Thanks mate, it seems to work flawlessly.
That value should be pi * 2, right ?
Notice how perspective stays same when rotation occurs and it seems cheap, I love UE4. :slight_smile:

nice one malkavian :slight_smile:

6 years later, time to make a relevant post
(just because it’s the first Thread I came across on my search)

You can do it easier and more stable this way:


Just use the same Rotator node and in the details panel, make sure that the second rotate node has it’s rotation center at [ 0.0 , 0.0 ] and plugin your rotation value multiplied by -1.0. Also the rotation speed of both Rotator nodes should be the same.

2 Likes

Thank you!

You can use just TransformVector instead of second rotator.

Hey i know its pretty late but i did not find anything about that online so i thought i post it here: when you go to the location of the material function for the texture variation there is another MF that is called “TextureVariation_RotateNormals” right beside it. Just drag that in the shader and put it after the normal map and plug the “Random Offset” Output from the texture variation node into the “Vector” input. That should correct the normals perfectly. if you also have a custom rotator in the UVs before the texture variation node you can add another “NormalCorrection” node behind that (if you want to rotate your whole textures). Here is a screen:

1 Like