Normal Map -konventiot: OpenGL vs DirectX selitetty
Miksi normaalikartastasi näyttää käänteinen Unrealissa mutta näyttää hyvältä Unityssä — selkeä selitys tangent-space Y-akselin konventioista ja konkreettiset ratkaisut.
Liität normaalikartaa Unrealiin ja pinta valaistuu ikään kuin aurinko loistaisi alapuolelta. Liität saman tiedoston Unityyn tai Blenderiin — näyttää hyvältä. Mesh on identtinen. Tekstuuri on identtinen. Mitä täällä tapahtuu?
Kaksi teollisuutta, yksi akseli erimielisyydessä
Normaalikartastot tallentavat pinnan suunnan RGB-kanaviihinsa. Red = X, green = Y, blue = Z. Jokainen PBR-moottori dekoodaa ne samalla tavalla yhdellä poikkeuksella: Y:n merkki.
OpenGL-konventio (Y+): kirkkaampi vihreä kanava tarkoittaa, että pinta osoittaa ylös. Käytetään Unityssa, Godotissa, Blenderissa (Cycles ja Eevee), Substance Painterissa olevan oletusvientiä ja kaikissa WebGL-pohjaisissa moottoreissa.
DirectX-konventio (Y−): kirkkaampi vihreä tarkoittaa, että pinta osoittaa alas. Käytetään Unreal Enginessa, vanhan Direct3D-työkaluketjun ja joidenkin CryEngine/Xbox-aikakauden omaisuuksien välillä.
Samat tavut PNG:ssä. Vastakkainen fyysinen merkitys.
Kuinka tunnistaa silmäyksellä
Katso puolipallonmuotoista kolhua (kuten nappia tai kupolia) normaalikartassasi. OpenGL-konventiossa kolhun pohja on tummemman vihreä koska pinta kiertää kohti Y−, poispäin valosta. DirectX-konventiossa pohja on kirkkaamman vihreä.
Jos valaistus tuntuu käänteiseltä moottorissa — korostetut kohdat missä varjot pitäisi olla — sinulla on konventioiden väärinsovitus.
Korjaus kestää 5 sekuntia
Unrealissa tekstuurin tuontidialogissa on Flip Green Channel -valintaruutu. Kytke se päälle ja moottori kääntää G-kanavan näytteenottovaiheessa. Ei tarvitse viedä lähdetiedostoa uudelleen.
Unityssa aseta tekstuurin tyyppi arvoon Normal map ja tuoja hoitaa kaiken — Unity odottaa OpenGL-konventiota, mutta se varoittaa sinua jos tiedosto näyttää väärältä. Blenderissa käytä Separate Color → Invert G → Combine Color -solmuketjua, tai valitse vain DirectX-tyyppinen syöte suoraan Normal Map -solmussa.
Miksi kaksi standardia alun perin?
1990-luvulla OpenGL ja DirectX määrittelivät vastakkaiset tekstuurikoordinaattiavaruudet — OpenGL:ssä Y kasvoi ylöspäin, DirectX:ssä Y kasvoi alaspäin. Kun normaalikartastot tulivat yleisiksi 2000-luvun puolivälissä, jokainen työkaluketju paalutti avaruutensa lähtöihinsä. Eriytyminen jäi pystyväksi koska vakiintuneen putkiston kääntäminen on kallista.
Normaalikarttojen luominen ilman sekaannusta
aukimi Normal Map Generator antaa sinulle mahdollisuuden valita konventio selkeästi kun viet. Se ajaa Sobel-gradientin korkeuskartastosi luminanssissa, sitten paketoi (−dx·s, −dy·s, 1) RGB:hen — Y:n kääntäen kun valitset DirectX:n. Voit kytkeä konvention viennin jälkeen ja ladata uudelleen ilman uudelleen latausta.
Sisäisesti kaava on identtinen. Ainoa ero on merkki jota sovellamme Y-komponenttiin ennen vihreän kanavan kirjoittamista. Tietäen sen, voit muuntaa tiedoston konventioiden välillä millä tahansa kuvaeditorilla: avaa PNG, valitse vihreä kanava, käännä se, tallenna. Se on kaikki mitä "Flip Green Channel" tekee Unrealissa.
Nopea viiteopas
- Unity, Godot, Blender, Substance Painter (oletus): OpenGL (Y+).
- Unreal Engine, vanhamuotoinen Direct3D: DirectX (Y−).
- Näyttää väärältä Unrealissa? Ota käyttöön Flip Green Channel tuontiasetuksissa.
- Näyttää väärältä Unityssa? Olet todennäköisesti vienyt DirectX-konvention työkalusta — käännä vihreä kanava tai vie uudelleen.
Kun olet sisäistänyt konvention, korjaus on triviaali. Vaikein osa on tunnistaa se ensimmäisen kerran.
Piditkö tästä artikkelista?
Aiheeseen liittyvät artikkelit
Luova pino romahti: Yksi viikko AI-työkaluista, huhtikuun loppu 2026
27. huhtikuuta – 4. toukokuuta 2026 välisenä aikana Adobe, Luma, Novi, fal, Figma, Canva, HeyGen ja Anthropic ylittivät saman kynnyksen kahdeksassa päivässä. Tässä on mitä julkaistiin, mitä se tarkoittaa, ja mihin se jättää selainpohjaiset luovien sovellusten paketit, jotka yrittävät integroida kaiken.
AI-musiikki ja SFX vuonna 2026: Mikä todella toimii indie-pelien äänityössä
Kolme vuotta sitten indie-pelien ääni tuli joko rojaltivapaista kirjastoista (halpa, generik, jokainen peli kuulostaa samalta) tai palkatussa säveltäjältä (hyvä, kallis). Vuonna 2026 tekoäly tuottaa julkaisukelpoista musiikkia. Tässä on mitkä työkalut toimivat — ja missä ihmissäveltäjä voittaa.
AI-pohjainen mesh-generointi 2026: Mitä todellisuudessa toimitetaan peliputkiin
Image-to-3D siirtyi "kammottavasta demosta" "indie-projekteihin toimitetuksi" 18 kuukaudessa. Tässä on, mitä Tripo, Meshy, Rodin ja Hyper3D todella tekevät tuotannossa — ja missä 3D-taiteilija voittaa mallin joka kerta.