notJustCode.it
 
\\ Home : Articoli
Normal Mapping
Di RobyDx (del 02/08/2007 @ 17:58:51, in Shader Library, linkato 3107 volte)

Il normal mapping è una tecnica ormai di uso comune in computer grafica. La logica dietro è abbastanza semplice. Invece di utilizzare le normali che si trovano nei triangoli, si utilizzano particolari texture (le normal map) i cui colori RGB rappresentano la direzione della normale in quel pixel. In questo modo l'illuminazione non è uniforme in tutto il triangolo ma dipenderà dalla normal map. Un esempio immediato è quello di un muro. Invece di utilizzare migliaia di mattoni si può utilizzare una normal map per simulare il rilievo. Invece di migliaia di mattoni e quindi migliaia di triangoli, basterà un rettangolo con una normal map appropriata per dare un effetto di rilievo (nei limiti ovviamente del possibile).

 

C'è solo un problema. La normal map è una texture che può trovarsi in un punto qualsiasi del modello. Di conseguenza una normal map che darà direzioni verso l'alto, le continuerà a dare sempre verso l'alto anche se orientata verso il basso. La texture infatti non può sapere dove si trova. Di consequenza utilizzare la normale direzione della luce sarebbe errato. Quello che si fa è di trasformare la luce in modo che sia orientata correttamente rispetto alla texture che si troverà in una posizione neutra. Per fare questo si utilizzano 2 vettori speciali: il vettore tangente (come dice la parola tangente alla faccia) e binormale, che forma 90 gradi in ogni direzione tra normale e tangente. Tangente, binormale e normale formano una matrice 3x3. Moltiplicando un vettore per questa matrice lo si trasforma in spazio tangente. Il vettore trasformato può essere usato nel pixel shader per calcolare la luce usando come normale il valore estratto dalla texture. Si può migliorare l'effetto applicando la tecnica nota come parallax, in cui la texture viene spostata di un offset in base alla telecamera ed al valore alpha che viene usato come profondità. Il senso è che più è profonda e più sarà intenso lo spostamento della texture a simulare appunto l'altezza.

Vi lascio al demo

Articolo Articolo  Storico Storico Stampa Stampa
I commenti sono disabilitati.
"Il vero problema non è se le macchine pensano, ma se gli uomini lo fanno."

B. F. Skinner


Cerca per parola chiave
 

Titolo
Articoli (4)
C++ (4)
Direct3D10 (30)
Direct3D11 (20)
DirectX9 (82)
DotNet (10)
English (9)
FanGames (22)
ManagedDX11 (2)
Materiale Utile (4)
News (39)
Shader Library (12)
SharpDX (1)
Software (25)
Tecnologia (19)
Varie (9)

Gli interventi più cliccati

Ultimi commenti:
If you wish to retai...
23/05/2013 @ 13:07:45
Di chanel outlet
You deficit of self-...
23/05/2013 @ 13:07:13
Di cartier watches uk
Reinforce your own l...
23/05/2013 @ 13:06:37
Di replica watches
Whenever you"re shiv...
23/05/2013 @ 13:06:11
Di swiss replica watches
It's likely you have...
23/05/2013 @ 13:05:02
Di chanel handbags
Cheap automobile ins...
23/05/2013 @ 13:04:28
Di replica watches

Titolo
Con quale tecnologia state realizzando o avete intenzione di realizzare i vostri progetti?

 DirectX11
 DirectX10
 DirectX9
 XNA
 DirectX8 o Precedenti
 OpenGL
 Motori grafici già pronti
 Altro

Titolo
Umorismo (17)

Le fotografie più cliccate



Ci sono 496 persone collegate
Sono state visualizzate  pagine

22/11/2024 @ 10:38:39
script eseguito in 47 ms