Normal Map Konventioner: OpenGL vs DirectX Forklaret
Hvorfor dit normal map ser inverteret ud i Unreal, men fint ud i Unity — en simpel forklaring af tangent-space Y-akse konventioner, med konkrete løsninger.
Du plugger et normal map ind i Unreal, og overfladen lyser som om solen skinner oppefra. Du plugger samme fil ind i Unity eller Blender — ser fantastisk ud. Meshen er identisk. Teksturen er identisk. Hvad foregår der?
To Industrier, En Akse Uenighed
Normal maps lagrer en overfladeretning i deres RGB-kanaler. Rød = X, grøn = Y, blå = Z. Hver PBR-engine dekoder dem på samme måde med én undtagelse: tegnet på Y.
OpenGL konvention (Y+): en lysere grøn kanal betyder at overfladen peger op. Brugt af Unity, Godot, Blender (Cycles og Eevee), Substance Painters standardeksport, og enhver WebGL-baseret engine.
DirectX konvention (Y−): lysere grøn betyder at overfladen peger ned. Brugt af Unreal Engine, det ældre Direct3D-værktøjssæt, og nogle CryEngine/Xbox-era assets.
Samme bytes i PNG-filen. Modsat fysisk betydning.
Sådan Genkender Du Det Med Øjeblikket
Se på en hemisfarisk bump (som en knap eller en kuppel) i dit normal map. I OpenGL konvention vil bunden af bumpen være mørkere grøn, fordi overfladen roterer mod Y−, væk fra lyset. I DirectX konvention er bunden lysere grøn.
Hvis din belysning føles omvendt i-engine — highlights hvor skygger skal være — har du en konventions mismatch.
Fiksen Tager 5 Sekunder
I Unreal har tekstur-import dialogen en Flip Green Channel checkbox. Slå den til, og engineen inverterer G-kanalen ved sample-tid. Ingen grund til at re-eksportere din kilde.
I Unity skal du sætte teksturtypen til Normal map, og importeren håndterer alt — Unity forventer OpenGL, men det vil advare dig hvis filen ser forkert ud. I Blender skal du bruge en Separate Color → Invert G → Combine Color node-kæde, eller bare vælg DirectX-stil input direkte i Normal Map-noden.
Hvorfor To Standarder I Første Omgang?
I 1990'erne definerede OpenGL og DirectX modsatrettede teksturkoordinatrum — OpenGL havde Y stigende op, DirectX havde Y stigende ned. Da normal maps blev almindelige i mid-2000'erne, baked hvert værktøjssæt sit rum ind i sine outputs. Divergensen holdt sig fordi at flippe en etableret pipeline er dyr.
Generering af Normal Maps Uden Forvirringen
aukimi Normal Map Generator lader dig vælge konventionen eksplicit når du eksporterer. Den kører en Sobel gradient på luminansen af dit heightmap, og pakker derefter (−dx·s, −dy·s, 1) ind i RGB — med Y fliplet når du vælger DirectX. Du kan toggle konventionen efter generering og re-download uden at re-uploade noget.
Internt er formlen identisk. Den eneste forskel er tegnet vi anvender på Y-komponenten før vi skriver den grønne kanal. Når du ved det, kan du konvertere en fil mellem konventioner med ethvert billedredigeringsprogram: åbn PNG-filen, vælg den grønne kanal, invertér den, gem. Det er alt hvad "Flip Green Channel" gør i Unreal.
Hurtig Referenceliste
- Unity, Godot, Blender, Substance Painter (standard): OpenGL (Y+).
- Unreal Engine, legacy Direct3D: DirectX (Y−).
- Ser forkert ud i Unreal? Aktivér Flip Green Channel i import-indstillingerne.
- Ser forkert ud i Unity? Du eksporterede sandsynligvis fra et DirectX-konvention værktøj — invertér den grønne kanal eller re-eksportér.
Når du først har internaliseret konventionen, er fiksen triviel. Det sværeste er at genkende det første gang.
Kunne du lide denne artikel?
Relaterede Artikler
Det kreative stack kollapsede lige: En uge med AI-værktøjer, sen april 2026
Mellem 27. april og 4. maj 2026 krydsede Adobe, Luma, Novi, fal, Figma, Canva, HeyGen og Anthropic samme tærskel på otte dage. Her er hvad der blev lanceret, hvad det betyder, og hvor det efterlader de browserbaserede kreative suites, der forsøger at konsolidere det hele.
AI-musik og SFX i 2026: Hvad der faktisk virker i indie-gameslyd
For tre år siden betød indie-gameslyd enten licensering af royalty-free biblioteker (billigt, generisk, alle spil lyder ens) eller at ansætte en komponist (godt, dyrt). I 2026 genererer AI musikker, der sendes live. Her er hvilke værktøjer, der leverer — og hvor en menneskelig komponist stadig vinder.
AI Mesh-generering i 2026: Hvad der faktisk bliver leveret i game pipelines
Image-to-3D gik fra "uhyggelig demo" til "skib i indie-projekter" på 18 måneder. Her er hvad Tripo, Meshy, Rodin og Hyper3D faktisk gør i produktion — og hvor 3D-kunstneren stadig slår modellen hver gang.