← All guides

Guide

Normal Maps: DirectX vs OpenGL (Y Flip) Explained

The only practical difference is the green channel: OpenGL stores +Y, DirectX stores −Y. Pick the right format — or an engine export preset — so bumps do not turn into dents.

Steps

  1. Identify your engine: Unreal → DirectX; Unity, Godot, Blender → OpenGL.
  2. In the Normal panel, select that format (or choose the matching export preset).
  3. Light the mesh from the side in the 3D preview. Raised features should catch light on the correct side.
  4. If lighting looks inverted after import, flip Y in the engine or re-export with the other format.

The only difference is green

Both formats store X in red and Z in blue. Green points up in OpenGL (+Y) and down in DirectX (−Y). Everything else about authoring stays the same.

Which engine uses which

Unreal Engine: DirectX. Unity, Godot and Blender: OpenGL. A wrong format makes bumps look like dents under side lighting.

Fixing it quickly

Switch the format in the Normal panel, or pick an engine preset when exporting — the preset sets the right Y orientation for you.

FAQ

Can I convert after export?

Yes. Invert the green channel in an image editor, or toggle the engine’s flip-green option if it has one.

Does the 3D preview match my engine?

Set the same normal format in the editor that your engine expects, then compare under similar lighting.

Is one format higher quality?

No. Quality is the same; only the Y convention differs.