Normál térkép konvenciók: OpenGL vs DirectX magyarázat
Miért fordított a normál térképed az Unreal-ben, de jó az Unity-ben — egyszerű magyarázat a tangent-space Y tengely konvenciókról, konkrét megoldásokkal.
Bedugod a normál térképet az Unreal-be és a felület úgy világít, mintha a nap alulról sütne. Ugyanezt a fájlt bedugod az Unity-be vagy a Blenderbe — remekül néz ki. A mesh azonos. A textúra azonos. Mi történik itt?
Két iparág, egy tengely ellentéte
A normál térképek RGB csatornáikban tárolják a felület irányát. Piros = X, zöld = Y, kék = Z. Minden PBR engine ugyanúgy dekódolja őket egy kivétellel: az Y előjele.
OpenGL konvenció (Y+): egy világosabb zöld csatorna azt jelenti, hogy a felület felfelé mutat. Az Unity, Godot, Blender (Cycles és Eevee), a Substance Painter alapértelmezett exportja, és minden WebGL-alapú engine használja.
DirectX konvenció (Y−): világosabb zöld azt jelenti, hogy a felület lefelé mutat. Az Unreal Engine, a korábbi Direct3D eszközlánc, és néhány CryEngine/Xbox-korszakbeli asset használja.
Ugyanazok a bájtok a PNG-ben. Ellentétes fizikai jelentés.
Megismerés első pillantásra
Nézz meg egy félgömb alakú dudort (például egy gomb vagy kupola) a normál térképeden. OpenGL konvenció szerint a dudor alja sötétebb zöld lesz, mert a felület az Y− felé forog, el a fénytől. DirectX konvenció szerint az alja világosabb zöld.
Ha az освещение visszafelé működik az engine-ben — fények ahol árnyékok kellene legyenek — konvenció eltérésed van.
A megoldás 5 másodperc
Az Unreal-ben a textúra importálási párbeszédnek van egy Flip Green Channel jelölőnégyzete. Kapcsold be és az engine invertálja a G csatornát a mintavételkor. Nem kell újra exportálnod a forrásod.
Az Unity-ben állítsd a textúra típusát Normal map-re és az importer kezeli mindent — az Unity az OpenGL-t várja, de figyelmeztet, ha a fájl rossznak tűnik. A Blenderben használj egy Separate Color → Invert G → Combine Color csomópontláncot, vagy közvetlenül válassz DirectX-stílusú bemenetet a Normal Map csomópontban.
Miért két szabvány az elején?
Az 1990-es években az OpenGL és a DirectX ellentétes textúra koordináta tereket definiáltak — az OpenGL-ben az Y felfelé nőtt, a DirectX-ben lefelé. Amikor a normál térképek a 2000-es évek közepén váltak közössé, minden eszközlánc a saját terét sütötte be az outputjaiba. Az eltérés rögzült, mert egy etablált pipeline megfordítása költséges.
Normál térképek generálása zavar nélkül
Az aukimi normál térkép generátor lehetővé teszi a konvenció explicit kiválasztását az exportkor. Sobel gradienst futtat a magasságtérképed luminanciáján, majd (−dx·s, −dy·s, 1) RGB-be csomagol — az Y megfordításával DirectX választásakor. Az Y komponens előjelét alkalmazzuk mielőtt a zöld csatornát írjuk. Az előjelét az Y komponensre alkalmazzuk mielőtt a zöld csatornát írjuk. A konvenció megfordítása után újra letöltöd anélkül, hogy újra feltöltened kellene.
Belsőleg a képlet azonos. Az egyetlen különbség az az előjel, amit az Y komponensre alkalmazunk a zöld csatorna írása előtt. Ezt tudva konvertálhatsz egy fájlt konvenciók között bármely képszerkesztővel: nyisd meg a PNG-t, válaszd ki a zöld csatornát, invertáld, mentsd. Ez az egész, amit az "Flip Green Channel" tesz az Unreal-ben.
Gyors referencia
- Unity, Godot, Blender, Substance Painter (alapértelmezett): OpenGL (Y+).
- Unreal Engine, korábbi Direct3D: DirectX (Y−).
- Rossz az Unreal-ben? Kapcsold be a Flip Green Channel opciót az import beállításokban.
- Rossz az Unity-ben? Valószínűleg DirectX-konvenció eszközből exportáltál — invertáld a zöld csatornát vagy exportálj újra.
Miután internalizálod a konvenciót, a megoldás triviális. A legnehezebb része az első felismerés.
Tetszett a cikk?
Kapcsolódó Cikkek
A kreatív stack összeomlott: Egy hét AI eszközök, április vége 2026
2026. április 27. és május 4. között az Adobe, Luma, Novi, fal, Figma, Canva, HeyGen és Anthropic nyolc nap alatt ugyanazt a küszöböt lépte át. Íme, mit adtak ki, mit jelent ez, és hova kerültek a böngészőalapú kreatív suitek, amelyek mindent összpontosítani próbálnak.
AI zene és hangeffektek 2026-ban: Mi működik valójában az indie játékaudio-ban
Három évvel ezelőtt az indie játékaudio két helyről származott: royalty-free könyvtárakból (olcsó, generikus, minden játék egyforma) vagy zeneszerzőtől (jó, drága). 2026-ban az AI generál olyan partitúrákat, amelyeket szállítani lehet. Íme, mely eszközök működnek — és hol nyer még egy emberi zeneszerző.
AI Mesh Generálás 2026-ban: Mi Szállítanak Valóban a Game Pipelineokba
Az Image-to-3D tizennyolc hónap alatt "kísértetiesről" "indie projektek szállítási szintjére" fejlődött. Íme, amit a Tripo, Meshy, Rodin és Hyper3D valóban csinál a produkciós munkafolyamatban — és hol veri meg őket az igazi 3D művész minden alkalommal.