Kalle is right, scaling the blue channel to be smaller or the RG channels to be bigger are both the exact same operation after normalization.
Really? Wow. The more you know. Thanks!
Sorry to bring this one up again, but I noticed that both “append way” leave some traces of the NM when the intensity is at 0.
Where I’m messing it up?
Thank you!
Try using the material function “Safe Normalize” afterwards.
This happens because the blue channel was actually 0 at those pixels (ie, the normal was completely perpendicular to the geometry), and normalization was not able to make it bigger with a divide. Safe normalize IIRC does some checks for that.
Sweet ! THX
Not sure I understand all of the explanations, in the end which option is the best one to intensify normals? Should I stick to the append method linked by RI3DVIZ, or will FlattenNormals also do?
Multiply by a Scalar appended to itself, then append to a 1
Multiply by a Vec3 but only modifying RG, while keeping B 1
Multiply by a Vec3, but instead adjust B and keep RG at 1
Literally all 3 return identical results. The last option doesn’t make much sense to me when thinking about artists that would use my material, so I opt for the first one since I also can’t assume artists would leave the Blue channel alone if I gave them just a single Vec3.
I can’t believe there are 2 pages of responses when the first answer was correct. This is my setup and the benefit is that you can actually scale it to Zero if you want it to have no influence. It’s basically what Sean was describing but using a mask instead of multiplying by Vector 3.
Rather than using vector multiplication, you can simplify your material by using the ‘FlattenNormal’ node as shown in the image. Positive parameter values flatten the normal whereas negative values increase the it.
It seems these don’t work in UE 5.1, setting negative value to FlattenNormal or using over 1 in other methods have no effect :o
Here’s the code I’m using, its working in any unreal (I bet even in UDK):
For constant bias scale use this:
Values greater than 1 will make it stronger. Values lower than 1 will make it more flat. 0 is 100% flat. Minus 1 will invert the normal map.
Here’s some examples:
Pay attention that in this example im derivering normal z from two texture channels if you have just a regular normal map skip this part:
Also you probably dont want to use this method on fully baked normals. Such as normals for props. Because it will break it and probably will produce seams along uv borders. Use it only on tiled textues and texture trims.
Good luck.
But why it is so complicated again and again here?
Hey, Epic, it’s so hard to you to make just one node or parameter to make normal map stronger?
There already is one, it’s the Flatten Normal node, give it a negative value and it will make the normal map stronger.