DirectX vs OpenGL Normal Map
Which way the green channel points
Also known as: Flip green channel · Y+ vs Y- · OpenGL normal map · DirectX normal map · Inverted normal map green channel
Definition
DirectX and OpenGL normal maps are the two conventions for the green (Y) channel of a tangent-space normal map. OpenGL maps (Y+) treat green as pointing up, while DirectX maps (Y-) treat it as pointing down, so the green channel is inverted between them. Unreal Engine expects DirectX-style normals; Blender, Maya and Unity use OpenGL-style. A map in the wrong convention still loads, but its bumps look inverted under light.
In production
If a normal map looks lit from the wrong side, with dents reading as bumps and the effect strongest on top and bottom edges, the green channel is flipped. Fix it at the source by exporting the right format (Substance Painter and Marmoset Toolbag can both output either) or, in Unreal, by enabling Flip Green Channel in the texture's settings. Pick one convention per project, bake and export to it, and write it in your pipeline notes so every artist matches.
Learn DirectX vs OpenGL Normal Map in
Tools that use DirectX vs OpenGL Normal Map
See also
Normal Map
Per-pixel surface detail
Tangent Space
Local coordinate system for normal maps
TBN Matrix
Tangent, bitangent, normal — the basis for normal maps
Baking
High-poly detail → low-poly texture
Smoothing Groups
Per-face shading split
Normal Map Looks Wrong in Unity
Flat, noisy or inverted bumps in Unity
ZBrush Normal Map Looks Wrong
Inverted or odd shading on a ZBrush normal map