Convenții de Normal Map: OpenGL vs DirectX Explicate
De ce normal map-ul tău arată inversat în Unreal dar bine în Unity — o explicație în limba simplă a convenţiilor axei Y din tangent-space, cu remedii concrete.
Conectezi o hartă de normal în Unreal și suprafața se iluminează ca și cum soarele ar veni de jos. Conectezi același fișier în Unity sau Blender — arată bine. Mesh-ul este identic. Textura este identică. Ce se întâmplă?
Două Industrii, O Axă de Dezacord
Hărțile de normal stochează o direcție de suprafață în canalele RGB. Red = X, green = Y, blue = Z. Fiecare engine PBR le decodează la fel cu o singură excepție: semnul Y.
Convenția OpenGL (Y+): un canal verde mai luminos înseamnă că suprafața indică în sus. Folosit de Unity, Godot, Blender (Cycles și Eevee), exportul implicit al Substance Painter și fiecare engine bazat pe WebGL.
Convenția DirectX (Y−): verdele mai luminos înseamnă că suprafața indică în jos. Folosit de Unreal Engine, lanțul legacy Direct3D și unele active din CryEngine/Xbox-era.
Aceiași bytes în PNG. Sens fizic opus.
Cum să Identifici La Prima Vedere
Privește o protuberanță emisferică (ca un buton sau o cupolă) în harta ta de normal. În convenția OpenGL, partea de jos a protuberanței va fi verde mai întunecat pentru că suprafața se rotește către Y−, departe de lumină. În convenția DirectX, partea de jos este verde mai luminos.
Dacă iluminarea ți se pare inversată în-engine — evidențieri acolo unde ar trebui umbre — ai o nepotrivire de convenție.
Remedierea Durează 5 Secunde
În Unreal, dialogul de import al texturii are o casă de selectare Flip Green Channel. Activează-o și engine-ul inversează canalul G la momentul eșantionării. Nu trebuie să re-exporți sursa ta.
În Unity, setează tipul texturii la Normal map și importatorul se ocupă de totul — Unity așteaptă OpenGL, dar te va avertiza dacă fișierul arată greșit. În Blender, folosește un lanț de noduri Separate Color → Invert G → Combine Color, sau alege direct intrare în stil DirectX în nodul Normal Map.
De Ce Două Standarde De La Început?
În anii 1990, OpenGL și DirectX au definit spații de coordonate de textură opuse — OpenGL avea Y crescând în sus, DirectX avea Y crescând în jos. Când hărțile de normal au devenit comune la mijlocul anilor 2000, fiecare lanț de instrumente și-a copt spațiul în ieșirile sale. Divergența a rămas pentru că inversarea unui pipeline stabilit este scumpă.
Generarea Hărților de Normal Fără Confuzie
aukimi Normal Map Generator te lasă să alegi convenția explicit atunci când exporți. Execută un gradient Sobel pe luminanța heightmap-ului tău, apoi împachetează (−dx·s, −dy·s, 1) în RGB — cu Y inversat când alegi DirectX. Poți comuta convenția după generare și re-descărca fără a re-încărca nimic.
În mod intern formula este identică. Singura diferență este semnul pe care îl aplicăm componentei Y înainte de a scrie canalul verde. Știind asta, poți converti un fișier între convenții cu orice editor de imagini: deschide PNG-ul, selectează canalul verde, inversează-l, salvează. Asta face tot "Flip Green Channel" în Unreal.
Referință Rapidă
- Unity, Godot, Blender, Substance Painter (implicit): OpenGL (Y+).
- Unreal Engine, legacy Direct3D: DirectX (Y−).
- Arată greșit în Unreal? Activează Flip Green Channel în setările de import.
- Arată greșit în Unity? Probabil ai exportat din un instrument cu convenție DirectX — inversează canalul verde sau re-exportă.
Odată ce internalizezi convenția, remedierea este trivială. Partea cea mai dificilă este s-o recunoști prima dată.
Ți-a plăcut acest articol?
Articole Similare
Stack-ul creativ s-a prăbușit tocmai: O săptămână de AI tooling, sfârșitul aprilie 2026
Între 27 aprilie și 4 mai 2026, Adobe, Luma, Novi, fal, Figma, Canva, HeyGen și Anthropic au depășit aceeași limită în opt zile. Iată ce s-a lansat, ce înseamnă și unde lasă asta suita de design creativă bazată pe browser care încearcă să consolideze totul.
AI Music și SFX în 2026: Ce Funcționează Într-Adevăr în Audio pentru Jocuri Indie
Acum trei ani, audio pentru jocuri indie însemna fie licențierea bibliotecilor royalty-free (ieftin, generic, fiecare joc sună la fel) fie angajarea unui compozitor (excelent, scump). În 2026, AI generează muzică care ajunge în produs. Iată care instrumente funcționează — și unde compozitorul uman încă câștigă.
Generarea Mesh-urilor AI în 2026: Ce Se Lansează de Fapt în Pipeline-urile de Jocuri
Image-to-3D a evoluat de la "demo ciudată" la "lansare în proiecte indie" în optsprezece luni. Iată ce fac de fapt Tripo, Meshy, Rodin și Hyper3D în producție — și unde artistul 3D încă bate modelul în fiecare dată.