What's up with all these different Normal map formats?

I recently baked a normal map in Substance painter, and when i loaded it into Blender, i was surprised that it seemed inverted, even though i thought that selecting “OpenGL” in substance was the right option, but apparently i was wrong about this. That made me wonder, why is there not a universal standard for this, do each have to be different for the sake of beeing different? is there a way to configure Blender to use another format by default?

Blender is +Y. Did you remember to rebake normals after switching in Painter?

Blender’s OpenGL viewport uses, well, OpenGL, so it naturally evaluates normal maps in OpenGL. It makes sense for Cycles to use the same as the OpenGL viewport.

There are fortunately only two common formats, which isn’t that hard to keep track of. I agree it would be nice to have only one, but with two major engines, Unity and UE both using different formats, it’s easier to learn the distinction.

You just need a node chain like this. Ctrl + G to make it a group, then call this group through the Add menu every time you feed a DirectX normal map in the node editor.

1 Like