Increase normal intensity without artifacts

Hello guys,

a while ago I created a node material to blend two normal maps. The model’s material is fabric so I try to use baseColor, metallicRoughness & normal for the cover and in addition to that a normal and ao map for shadows and wrinkles.

Unfortunately the wrinkles are not strong enough. I tried to increase the intensity of the normal map by lerping it with a high value before blending it. That leads to artifacts. Is there another option to increase the intensity of the normal map to make the wrinkles stronger?

You can see it in this pg. By adjusting the “Model Normal Strength” block you can play around with the normal intensity. As you can see that setting the value to 1 doesn’t lead to artifacts but the wrinkles are barely to see.

https://playground.babylonjs.com/#HT115R#7

Best

EDIT:

I achieved a way better result by decreasing the environmentIntensity and adding a directionalLight: https://playground.babylonjs.com/#HT115R#8

I am happy with that result but still curious to know it it is possible to use normal maps with a higher intensity than 1 without getting artifacts.

Scaling normals can be done by doing something like this (as it is in the glTF specification).

scaledNormal = normalize((<sampled normal texture value> * 2.0 - 1.0) * vec3(<normal scale>, <normal scale>, 1.0))

Maybe try something like that?

1 Like