Skip to main content

OpenGL to DirectX Normal Map Converter

Convert normal maps from OpenGL to DirectX or back. Drop one map or a whole texture set: each map’s format is detected, the green channel is flipped at full resolution and nothing else changes. Check the result by eye in the lit previews before you download.

Your normal map
Cobblestone normal map in OpenGL format, the sample
As OpenGL
The normal map read as OpenGL: stones raised and lit from the top left
As DirectX
The same map read as DirectX: stones lit from below, as if dented

The map lit from the top left, read both ways. With the right format the stones look raised; with the wrong one they look lit from below.

    Full resolution, only the green channel changes. PNGs keep their alpha, bit depth and color profile exactly. Runs in your browser; your maps are never uploaded.

    How to Tell OpenGL from DirectX Normal Maps

    Look at the colors: in an OpenGL normal map, the top edge of every bump is light green and the bottom edge purple; in DirectX it is the other way round. Or light it: lit from above, the right format looks raised and the wrong one dented. The OpenGL to DirectX normal map converter does both and also checks how the slopes fit together.

    • Normal map of a dome, green at the top

      The test sphere

      A dome saved as an OpenGL normal map: green on top.

    • The dome read as OpenGL, raised and lit from above

      Read as OpenGL

      Lit from the top left, it bulges out. Right format.

    • The dome read as DirectX, lit from below as if dented

      Read as DirectX

      The light seems to come from below. Wrong format.

    Which Normal Map Format Each Engine Uses

    The two formats differ only in the green channel: OpenGL points it up (Y+), DirectX down (Y-). That channel is all the OpenGL to DirectX normal map converter changes.

    • Blender

      Format
      OpenGL
      Green
      Y+
    • Unity

      Format
      OpenGL
      Green
      Y+
    • Godot

      Format
      OpenGL
      Green
      Y+
    • Maya

      Format
      OpenGL
      Green
      Y+
    • three.js and glTF

      Format
      OpenGL
      Green
      Y+
    • Unreal Engine

      Format
      DirectX
      Green
      Y-
    • 3ds Max

      Format
      DirectX
      Green
      Y-
    • CryEngine

      Format
      DirectX
      Green
      Y-
    • Substance 3D Painter

      Format
      Set per project, DirectX by default
      Green
      Either

    Convert DirectX to OpenGL Inside Blender

    No file to convert? Blender can do what the OpenGL to DirectX normal map converter does inside the material itself, with four nodes.

    1. 1

      Split the channels

      Image Texture (Non-Color) into a Separate Color node set to RGB.

    2. 2

      Invert green

      Add a Math node set to Subtract: 1 in the first value, the Green output in the second.

    3. 3

      Join them again

      Red, the inverted green and blue into a Combine Color node.

    4. 4

      Into the Normal Map node

      Combine Color into a Normal Map node, and that into the Normal input of the Principled BSDF.

    How to Use the OpenGL to DirectX Normal Map Converter

    Four steps for one map or a hundred. The cobblestone sample is already in the converter.

    1. 1

      Drop your normal maps

      One or many PNG, JPG or WebP files at once, any size your device can open.

    2. 2

      Check what was detected

      Each map shows the format it reads as and how sure the converter is. The lit previews let you confirm it by eye, and Map is sets it by hand.

    3. 3

      Pick the direction

      Swap each map to the other format, or send them all to DirectX for Unreal or all to OpenGL for Unity and Blender. Maps already in that format are saved as they are.

    4. 4

      Download

      Save one PNG or the whole set as a ZIP, named with the new format.

    OpenGL to DirectX Converter FAQ

    Cobblestone material ballBrick material ballRusty metal material ballWood planks material ballBurlap fabric material ball

    Convert OpenGL to DirectX Normal Maps Now

    Drop in one normal map or a whole set and download them in the other format, full size. Free, in your browser.

    Upload normal maps