Convenzioni delle Mappe Normali: OpenGL vs DirectX Spiegate
Perché la tua mappa normale appare invertita in Unreal ma perfetta in Unity — una spiegazione in linguaggio semplice delle convenzioni dell'asse Y nello spazio tangente, con correzioni concrete.
Inserisci una mappa normale in Unreal e la superficie si illumina come se il sole provenisse da sotto. Inserisci lo stesso file in Unity o Blender — sembra perfetto. La mesh è identica. La texture è identica. Cosa sta succedendo?
Due Industrie, Un Asse in Disaccordo
Le mappe normali memorizzano una direzione di superficie nei loro canali RGB. Rosso = X, verde = Y, blu = Z. Ogni motore PBR le decodifica nello stesso modo con un'eccezione: il segno di Y.
Convenzione OpenGL (Y+): un canale verde più luminoso significa che la superficie punta verso l'alto. Utilizzato da Unity, Godot, Blender (Cycles ed Eevee), esportazione predefinita di Substance Painter, e ogni motore basato su WebGL.
Convenzione DirectX (Y−): il verde più luminoso significa che la superficie punta verso il basso. Utilizzato da Unreal Engine, la toolchain legacy Direct3D, e alcuni asset di CryEngine/era Xbox.
Gli stessi byte nel PNG. Significato fisico opposto.
Come Capirlo a Colpo d'Occhio
Guarda una sporgenza emisferica (come un bottone o una cupola) nella tua mappa normale. Nella convenzione OpenGL, il fondo della sporgenza sarà verde più scuro perché la superficie sta ruotando verso Y−, allontanandosi dalla luce. Nella convenzione DirectX, il fondo è verde più luminoso.
Se l'illuminazione sembra invertita nel motore — i riflessi dove dovrebbero esserci le ombre — hai un disallineamento di convenzioni.
La Correzione Richiede 5 Secondi
In Unreal, il dialogo di importazione della texture ha una casella Flip Green Channel. Attivala e il motore inverte il canale G al momento del campionamento. Non è necessario ri-esportare l'origine.
In Unity, imposta il tipo di texture su Normal map e l'importatore gestisce tutto — Unity si aspetta OpenGL, ma ti avvertirà se il file sembra sbagliato. In Blender, usa una catena di nodi Separate Color → Invert G → Combine Color, oppure seleziona direttamente l'input in stile DirectX nel nodo Normal Map.
Perché Due Standard in Primo Luogo?
Negli anni '90, OpenGL e DirectX definirono spazi di coordinate di texture opposti — OpenGL aveva Y crescente verso l'alto, DirectX aveva Y crescente verso il basso. Quando le mappe normali divennero comuni a metà degli anni 2000, ogni toolchain incorporò il suo spazio nei suoi output. La divergenza rimase perché capovolgere una pipeline consolidata è costoso.
Generazione di Mappe Normali Senza Confusione
Il Generatore di Mappe Normali aukimi ti consente di scegliere esplicitamente la convenzione quando esporti. Esegue un gradiente Sobel sulla luminanza della tua mappa di altezza, quindi impacchetta (−dx·s, −dy·s, 1) in RGB — con Y capovolto quando scegli DirectX. Puoi alternare la convenzione dopo la generazione e scaricare di nuovo senza ricaricare nulla.
Internamente la formula è identica. L'unica differenza è il segno che applichiamo al componente Y prima di scrivere il canale verde. Sapendo questo, puoi convertire un file tra convenzioni con qualsiasi editor di immagini: apri il PNG, seleziona il canale verde, invertilo, salva. Questo è tutto ciò che fa "Flip Green Channel" in Unreal.
Riferimento Rapido
- Unity, Godot, Blender, Substance Painter (predefinito): OpenGL (Y+).
- Unreal Engine, legacy Direct3D: DirectX (Y−).
- Sembra sbagliato in Unreal? Abilita Flip Green Channel nelle impostazioni di importazione.
- Sembra sbagliato in Unity? Probabilmente hai esportato da uno strumento con convenzione DirectX — inverti il canale verde o ri-esporta.
Una volta compresa la convenzione, la correzione è banale. La parte più difficile è riconoscerla la prima volta.
Ti è piaciuto questo articolo?
Articoli Correlati
Lo stack creativo è appena crollato: una settimana di strumenti AI, fine aprile 2026
Tra il 27 aprile e il 4 maggio 2026, Adobe, Luma, Novi, fal, Figma, Canva, HeyGen e Anthropic hanno tutti superato la stessa soglia in otto giorni. Ecco cosa è stato lanciato, cosa significa, e dove lascia le suite creative basate su browser che cercano di consolidare il tutto.
AI Music e SFX nel 2026: Cosa Funziona Davvero nell'Audio dei Giochi Indie
Tre anni fa, l'audio dei giochi indie significava o utilizzare librerie royalty-free (economiche, generiche, ogni gioco suonava uguale) o assumere un compositore (ottimo, caro). Nel 2026, l'AI genera musica che shippa. Ecco quali strumenti funzionano — e dove un compositore umano vince ancora.
Generazione di mesh AI nel 2026: cosa effettivamente arriva nelle pipeline di gioco
Image-to-3D è passato da "demo inquietante" a "shipping in indie projects" in diciotto mesi. Ecco cosa fanno effettivamente Tripo, Meshy, Rodin e Hyper3D in produzione — e dove l'artista 3D batte ancora il modello ogni volta.