Blender uses the OpenGL format. You should always export your textures from the texturing tools you work with in OpenGL format. Using DirectX format normal maps in blender causes serious problems in shading.

If your primary app uses DirectX normal maps so exporting in OpenGL isn’t a logical choice for you, please apply this setup to convert the normal map.

This is an optimized version of the normal map conversion because it doesn’t transform between number and color, so it works faster with Cycles and EEVEE.


Recognizing exported normal maps

OpenGL normal maps can be recognized just by looking. Notice that on the OpenGL normal map it looks as if the light shining from top right, while on DirectX it’s from the bottom right direction.

Block image

But my renders look ok with DirectX normal maps.

Do they? Things can look good if the light comes from some angles, and really it's difficult to recognize sometimes. But if you check the animation, which was made with a DX map, you'll see how things are actually wrong. The arrow shows the direction of the sun. You can see in the holes that light that is cought by the surface seemingly rotates in the other direction. What happens is that with DirectX normal map in Blender, things can look either like bumps or like holes, depending on the direction of the light.

Block image