Normal Map Conventions: OpenGL vs DirectX erklärt
Warum deine Normal Map in Unreal invertiert aussieht, aber in Unity perfekt — eine verständliche Erklärung der Tangent-Space Y-Achsen-Konventionen mit konkreten Lösungen.
Du legst eine Normal Map in Unreal an und die Oberfläche wird beleuchtet, als würde die Sonne von unten scheinen. Du steckst dieselbe Datei in Unity oder Blender — sieht großartig aus. Das Mesh ist identisch. Die Textur ist identisch. Was ist hier los?
Zwei Industrien, eine Achsen-Uneinigkeit
Normal Maps speichern eine Oberflächenrichtung in ihren RGB-Kanälen. Rot = X, Grün = Y, Blau = Z. Jede PBR-Engine dekodiert sie auf die gleiche Weise mit einer Ausnahme: das Vorzeichen von Y.
OpenGL-Konvention (Y+): ein hellerer grüner Kanal bedeutet, die Oberfläche zeigt nach oben. Wird von Unity, Godot, Blender (Cycles und Eevee), Substance Painters Standard-Export und jedem WebGL-basierten Engine verwendet.
DirectX-Konvention (Y−): helleres Grün bedeutet, die Oberfläche zeigt nach unten. Wird von Unreal Engine, dem Legacy-Direct3D-Toolchain und einigen CryEngine-/Xbox-Ära-Assets verwendet.
Gleiche Bytes in der PNG. Entgegengesetzte physikalische Bedeutung.
Wie man es auf einen Blick erkennt
Schau dir einen hemispärischen Bump (wie einen Knopf oder eine Kuppel) in deiner Normal Map an. In der OpenGL-Konvention ist der Boden des Bumps dunkler grün, weil sich die Oberfläche in Richtung Y− dreht, weg vom Licht. In der DirectX-Konvention ist der Boden heller grün.
Wenn deine Beleuchtung in der Engine falsch aussieht — Highlights wo Schatten sein sollten — hast du einen Konventions-Konflikt.
Die Lösung dauert 5 Sekunden
In Unreal hat der Textur-Import-Dialog ein Flip Green Channel Kontrollkästchen. Schalte es ein und die Engine invertiert den G-Kanal bei Abtastzeit. Du musst deine Quelle nicht neu exportieren.
In Unity stelle den Texturtyp auf Normal map ein und der Importer kümmert sich um alles — Unity erwartet OpenGL, warnt dich aber, wenn die Datei falsch aussieht. In Blender verwende eine Separate Color → Invert G → Combine Color Node-Kette, oder wähle einfach direkt DirectX-förmige Eingabe im Normal Map Node.
Warum zwei Standards überhaupt?
In den 1990ern definierten OpenGL und DirectX entgegengesetzte Texturkoordinatenräume — OpenGL hatte Y erhöht sich nach oben, DirectX hatte Y erhöht sich nach unten. Als Normal Maps Mitte der 2000er Jahre verbreitet wurden, buk jede Toolchain seinen Raum in ihre Ausgaben. Die Divergenz blieb bestehen, weil das Umkehren einer etablierten Pipeline teuer ist.
Normal Maps generieren ohne die Verwirrung
Der aukimi Normal Map Generator lässt dich die Konvention beim Export explizit wählen. Er führt einen Sobel-Gradienten auf der Luminanz deiner Höhenkarte durch, packt dann (−dx·s, −dy·s, 1) in RGB — mit Y geflippt wenn du DirectX wählst. Du kannst die Konvention nach der Generierung umschalten und neu herunterladen, ohne etwas neu hochzuladen.
Intern ist die Formel identisch. Der einzige Unterschied ist das Vorzeichen, das wir auf die Y-Komponente vor dem Schreiben des grünen Kanals anwenden. Wenn du das weißt, kannst du eine Datei zwischen Konventionen mit jedem Bildeditor konvertieren: öffne die PNG, wähle den grünen Kanal, invertiere ihn, speichern. Das ist alles, was "Flip Green Channel" in Unreal macht.
Schnellreferenz
- Unity, Godot, Blender, Substance Painter (Standard): OpenGL (Y+).
- Unreal Engine, Legacy Direct3D: DirectX (Y−).
- Sieht in Unreal falsch aus? Aktiviere Flip Green Channel in den Import-Einstellungen.
- Sieht in Unity falsch aus? Du hast wahrscheinlich aus einem DirectX-Konventions-Tool exportiert — invertiere den grünen Kanal oder exportiere neu.
Wenn du die Konvention verinnerlicht hast, ist die Lösung trivial. Der schwierigste Teil ist, sie das erste Mal zu erkennen.
Hat dir dieser Artikel gefallen?
Verwandte Artikel
Der Creative Stack ist gerade zusammengebrochen: Eine Woche AI-Tools, Ende April 2026
Zwischen dem 27. April und 4. Mai 2026 haben Adobe, Luma, Novi, fal, Figma, Canva, HeyGen und Anthropic in acht Tagen alle die gleiche Schwelle überschritten. Hier ist, was veröffentlicht wurde, was es bedeutet und wo es die browserbasierten Creative Suites lässt, die alles konsolidieren wollen.
KI-Musik und SFX 2026: Was bei Indie-Game-Audio wirklich funktioniert
Vor drei Jahren bedeutete Indie-Game-Audio entweder lizenzfreie Bibliotheken (billig, generisch, jedes Spiel klingt gleich) oder einen Komponisten einstellen (großartig, teuer). 2026 generiert KI Scores, die ausgeliefert werden. Hier sind die Tools, die liefern — und wo ein menschlicher Komponist immer noch gewinnt.
AI-Mesh-Generierung 2026: Was tatsächlich in Game-Pipelines landet
Image-to-3D entwickelte sich in achtzehn Monaten von "verstörendem Demo" zu "läuft in Indie-Projekten". Hier ist, was Tripo, Meshy, Rodin und Hyper3D tatsächlich in der Produktion tun — und wo der 3D-Artist das Modell immer noch schlägt.