Convention converter

OpenGL vs DirectX Normal Maps

The practical difference between Y+ and Y− tangent-space maps is usually the green channel. Names and defaults help, but a known directional light test is safer than guessing from the purple image.

Convention converterChoose a PNG, JPEG, WebP, or BMP (up to 50 MB).
Local image processing
Drop an image hereChoose a PNG, JPEG, WebP, or BMP (up to 50 MB).Local image processing

A reliable workflow

The practical difference is tangent Y

Y+ and Y− describe the sign assigned to the tangent Y component; the practical file conversion usually flips green.

Y convention green-channel comparisonThe same encoded surface direction uses opposite green channel orientation for Y plus and Y minus.Y+ · green upY− · green down
1

Engine names are clues, not guarantees

Engine names are shorthand, not proof. Plugins, import toggles, render pipelines, and baker settings can change the expected direction.

2

Confirm the sign with asymmetric relief

Validate with an asymmetric known shape and a light moving vertically, then record the convention in filenames and material documentation.

3

The convention difference lives in tangent Y

OpenGL vs DirectX normal maps usually refers to the sign assigned to the tangent-space Y component. Both formats encode X in red and commonly encode the outward Z component in blue. In a Y+ convention, one stored green direction represents positive tangent Y; in Y−, that direction is reversed. Converting between the two normally means decoding the vector, negating Y, and renormalizing—or equivalently reflecting the stored green value around its midpoint. It does not require inverting red, swapping arbitrary channels, or changing a height interpretation.

4

Why software names are not proof

The labels in OpenGL vs DirectX normal maps are useful shorthand, but they do not prove what any individual file contains. A baker can export either convention; an importer may flip green; a plugin can use a different tangent basis; and an asset may already have been converted. Both conventions can produce similar purple thumbnails and green-channel histograms. Read export settings and import metadata first. When those are unavailable, use an asymmetric feature with a known raised side and compare its response as a light travels vertically.

5

Run a conversion test that isolates one variable

To resolve OpenGL vs DirectX normal maps, keep the red and blue operations unchanged and create one green-flipped candidate. View the original and candidate on the same mesh, UVs, material, strength, and light. The correct version should make the known feature respond consistently both horizontally and vertically. If neither works, inspect color-space decoding, tangent generation, mirrored islands, source bake, and compression rather than repeatedly flipping channels. A one-variable test produces evidence; cycling presets until one image looks busier does not.

6

Document the result at the asset boundary

After deciding OpenGL vs DirectX normal maps, export lossless PNG and include Y+ or Y− in the filename or asset metadata. Record whether the destination importer also uses a green-channel toggle, so the conversion is not accidentally applied twice. Check mip levels and the target platform because compression can change normalized directions even after the convention is correct. The objective is not to declare one convention better: it is to keep the stored vectors, tangent basis, and shader expectation in explicit agreement.