Risposta breve
Le mappe normali e le normali sono due cose diverse: le normali sono una proprietà geometrica di qualsiasi mesh / superficie il cui uso non è esclusivo per i calcoli di ombreggiatura e illuminazione, ma in realtà hanno molti altri usi, ad esempio in fisica. Le mappe normali sono trame che codificano vettori normali alternativi utilizzati nella computer grafica per simulare i dossi.
Risposta lunga
Normali nella geometria una normale è un vettore o una linea che è perpendicolare a un determinato oggetto (ad esempio piano normale, vertice normale). Le normali nella grafica vengono generalmente utilizzate per i calcoli della luce, come il calcolo della riflessione diffusa su una superficie prendendo il prodotto punto tra la direzione della luce e le normali della superficie. Le normali vengono solitamente calcolate in base alle proprietà geometriche della mesh (Volti / Vertici), prendendo il prodotto incrociato di due bordi non paralleli che si trovano sullo stesso piano.
In OpenGL le normali sono specificate per vertice (quindi chiamate attributi di vertice) anche se potrebbero essere calcolate solo per ciascuna faccia in questo caso, è necessario specificare la stessa normale per ogni vertice in una faccia. Le normali possono essere interpolate da OpenGL attraverso ogni vertice di una faccia (triangolo) in modo da poter calcolare la luce riflessa per pixel non per vertice, dando così un risultato più accurato .
Mappatura normale : d'altra parte è una tecnica in computer grafica che codifica i normali in una mappa di trama, quindi ogni normale è codificato per texel. Di solito viene utilizzato per simulare l'illuminazione di protuberanze e ammaccature (ad es. Mappatura di protuberanze, mappatura di parallasse).
Poiché le normali vengono calcolate in base alle proprietà geometriche della mesh / superficie, le Mappe normali offrono alternative normali che possono simulare i dossi per aggiungere dettagli alla superficie senza aggiungere più poligoni.
Le mappe normali vengono generalmente generate utilizzando un modello 3D molto più dettagliato, quindi calcolando le normali sulla base di questo modello e codificandolo in una Mappa normale.
Perché abbiamo bisogno di entrambi?
Beh, parlando solo di rendering, le normali e le normali mappe vengono solitamente utilizzate insieme per ottenere l'effetto di illuminazione finale, un buon esempio potrebbe essere un bump shader, in cui è necessario che le normali normali siano in grado di ottenere l'effetto di illuminazione di bump, e sarà comunque necessario geometrico normale per calcolare quello che viene chiamato spazio tangente . Lo spazio tangente viene solitamente utilizzato per fornire riutilizzabilità per le mappe normali.
Tieni presente che un normale è considerato un attributo geometrico della superficie e ha molti più usi rispetto ai soli calcoli della luce. D'altra parte, le mappe normali vengono generalmente utilizzate per effetti superficiali.
Estendere la risposta per spiegare perché gli spazi tangenti sono importanti:
Risposta breve: gli
spazi tangenti vengono utilizzati per rendere le mappe normali indipendenti dalla geometria sottostante.
[EDIT] Aggiunta immagine per rappresentare la mappa normale nello spazio tangente e la mappa normale nello spazio mondiale.
Risposta lunga:
L'immagine seguente mostra il piano UV e il normale che definisce lo spazio tangente, quando si genera una mappa normale sapremo già che lo spazio utilizzato avrà sempre il puntamento Normale nella direzione Z (ecco perché le mappe normali sembrano bluastre) , questo ci aiuterà a ignorare la curvatura superficiale **,.
Lo spazio tangente ci dà il vantaggio che la nostra codifica normale delle mappe non è vincolata a normali normali mesh. Supponiamo che codifichiamo la nostra normale mappa nel mondo o nello spazio degli oggetti, quindi ogni normale che codificheremo avrà una direzione basata sul modo in cui le normali normali della mesh variano nello spazio del mondo, per non parlare della trasformazione della tua normale mappa.
Nelle due immagini sopra è abbastanza chiaro che lo spazio delle tangenti rende le mappe normali (a destra), indipendenti dalla geometria sottostante perché tutte le normali sono codificate nella stessa direzione con una piccola variazione per simulare l'effetto dei dossi.
** la curvatura della superficie è definita dalla quantità che un oggetto geometrico devia dall'essere piatto, o dritto nel caso di una linea, ma questo è definito in modi diversi a seconda del contesto.