Drop anywhere
| Software / Renderer | Normal Map Standard |
|---|---|
| Unreal Engine (4 & 5) | DirectX (-Y) |
| Unity | OpenGL (+Y) |
| Blender (Cycles / Eevee) | OpenGL (+Y) |
| Autodesk Maya | OpenGL (+Y) |
| Autodesk 3ds Max | DirectX (-Y) |
| Substance Painter | Selectable (Both) |
| Marmoset Toolbag | Selectable (Both) |
| ZBrush | OpenGL (+Y) |
| Cinema 4D | OpenGL (+Y) |
| Houdini | OpenGL (+Y) |
| Godot Engine | OpenGL (+Y) |
| CryEngine | DirectX (-Y) |
| Arnold Renderer | OpenGL (+Y) |
| V-Ray | OpenGL (+Y) |
| Corona Renderer | OpenGL (+Y) |
| OctaneRender | OpenGL (+Y) |
| Redshift | OpenGL (+Y) |
| Source Engine 2 | DirectX (-Y) |
| KeyShot | OpenGL (+Y) |
| ArmorPaint | OpenGL (+Y) |
| XNormal | OpenGL (+Y) |
| Sketchfab Viewer | OpenGL (+Y) |
| O3DE (Open 3D Engine) | DirectX (-Y) |
| Mode | What it does |
|---|---|
| As stored | Use the blue channel exactly as it is in the file. Default -- correct for ordinary RGB tangent-space normal maps. |
| RG → RGB | Convert an RG/BC5 (ATI2/3Dc) map to RGB: ignore stored blue and compute Z = sqrt(1 - R² - G²) instead, the same way a shader reconstructs it at runtime. X/Y are left untouched. |
| RGB → RG | Convert an RGB map to RG/BC5-style: force blue to black without touching X/Y, so it round-trips cleanly back through "RG → RGB". Useful to preview/export what this map looks like before compressing it to BC5. |
tga-js, UTIF + pako, ag-psd).
Pick the flattened image, or check layers to merge.
[ or drop/paste normal map ]