Parallax Mapping in Computer Grafica 3D
La tecnica del Parallax Mapping è una tecnica migliorata di Bump o Normal Mapping, ossia consente di aggiungere profondità e realismo alle scene senza dover modificare le geometrie presenti nelle stesse, ma elaborando informazioni di profondità associate alle textures delle superfici.
L'effetto è particolarmente evidente se applicato a superfici che, in natura, sono abbastanza irregolari (ad es.: muri di mattoni a secco, rocce, terra, ...) ma che, a causa della complessità che una loro implementazione geometricamente fedele richiederebbe (soprattutto nei videogiochi, o comunque in tempo reale in generale), vengono rappresentate con geometrie semplici, piatte.
Come nelle tecniche di Bump e Normal mapping, partendo dal poligono renderizzato, quindi, vengono aggiunti dei valori per spostarne i pixel (valori di offset, per cui la tecnica è detta anche offset mapping o virtual displacement mapping) e simulare la profondità, ma nel caso del Parallax Mapping viene preso in considerazione anche il punto di vista dell'osservatore e l'angolo che questo forma con le normali alle superfici; l'entità del displacement dei pixel, quindi, dipenderà dall'angolo con il quale si osserva la superficie, ottenendo così un realismo maggiore.
Nella sua versione base, il Parallax Mapping viene applicato con una sola "passata", non tenendo conto dell'occlusione ambientale dei poligoni o dei vertici; una versione che tiene conto dell'ambient occlusion per modificare l'illuminazione delle superfici (self-shadowing: auto-ombreggiatura) è detta invece Parallax Occlusion Mapping.
Parallax Occlusion Mapping può essere implementata direttamente nella pipeline di rendering (come ad esempio nella pipeline OpenGL), effettuando tutti i calcoli del displacement sulle textures, utilizzando solo la GPU ed evitando di modificare le geometrie, la cui gestione -a livello di "informazione strutturale" delle mesh- è affidata alla CPU, che così può dedicarsi ad altri lavori (stato del gioco, connessione di rete, ricezione e invio messaggi, gestione dell'input, ecc...).
Parallax Occlusion Mapping trova impiego non solo nei videogiochi (vista la possibilità di implementarla in tempo reale), ma anche nella realizzazione di immagini stereoscopiche a partire da fotogrammi singoli.
|