BUMP MAPPING dott.ing.jun Alex Zupan – zualex@gmail.com Corso: Elementi di grafica digitale Università degli studi di Trieste Laurea Specialistica in Ingegneria Informatica BUMP MAPPING [ PER-PIXEL LIGHTING ] dott.ing.jun Alex Zupan – zualex@gmail.com
Cos’è? Tecnica di ombreggiatura che utilizza texture multiple ed effetti di luce: aggiunge dettagli ad oggetti formati da pochi poligoni simula superfici corrugate o dissestate.
Esempio 3840 facce – Bump Mapped 8589 faces
Tipi di Bump Ne esistono 3 tipi principali: Emboss Bump Mapping Environment Map Bump Mapping Dot3 Mapping In comune utilizzano: Texture principale Texture aggiuntiva detta Bump Map.
Tipi: Emboss Bump Mapping La bump map è una texture monocromatica che è la mappatura luminosa della texture principale . Riapplicandola sulla texture principale mediante il canale alfa, che gestisce la trasparenza dei pixel, si ottiene la texture finale. Questo metodo di bump mapping è stato il primo realizzato. La resa qualitativa non è eccellente.
Tipi: Emboss Bump Mapping Texture principale Bump map – mappa della luminosità Esempio
Tipi: Environment Map Bump Mapping Utilizza 3 texture diverse: La texture di base una bump map – mappa delle altezze una environment map - riflessi L'environment map è la matrice che contiene una semplice mappa di illuminazione, ma può contenere anche altri effetti da applicare. Alla fine, quando le 3 texture sono combinate insieme.
Tipi: Environment Map Bump Mapping Bump map – mappa delle altezze Texture principale
Tipi: Dot3 Bump Mapping Dot3 Mapping o Dot Product Perturbed Bump Mapping o Per-pixel lighting. Bump map - normal map, mappa vettori 3D, o normali (rette perpendicolari). Si esegue il prodotto scalare tra la normale ed il vettore della luce per ogni pixel. Il risultato indica l'intensità di riflessione della luce per quel pixel. È la tecnica più efficace.
Tipi: Dot3 Bump Mapping Texture principale Bump map – Normal map - mappa delle normali Esempio 2
Dot3 Bump Mapping In dettaglio… Esegue il prodotto scalare tra la normale ed il vettore della luce per ogni pixel.
luminosità = N dot L = N·L Lighting 1/2 Calcolo luminosità di un punto, necessita: N: vettore direzione della normale di quel punto. L: light vector (tra il punto sulla superfice e la fonte di luce) Formula matematica essenziale: luminosità = N dot L = N·L
Lighting 2/2 Gouraud shading Dot3 Bump Mapping
Dot3 Bump Mapping I due vettori : Light Vector Normal Vector Devono esere definiti nello sesso spazio di coordinate! View space World space Model space …
Tangent Space 1/2 Spazio di coordinate locali. Semplifica le operazioni. Definito per ogni vertice di un set di geometrie. L’asse Z del Texture Space è parallelo alla normale di quel vertice . X e Y arbitrari. Utilizzando ad es. Il world space, dovremmo rigenerare la bump map ogni volta che l’oggetto viene mosso!
Tangent Space 2/2 SxT S T Per eseguire il prodotto scalare: necessario esprimere il Light Vector in questo spazio di coordinate.
Matrice TBN Le tangenti S e T e la normale SxT formano una base. Definiscono lo spazio di coordinate "tangent space". La matrice TBN permette (Tangent Binorm Normal): ( Sx Sy Sz ) ( Tx Ty Tz ) ( Nx Ny Nz ) Moltiplicando un vettore definito in object space con questa matrice, si ottiene il vettore espresso in tangent space.
Normal Map È una mappa (texture) a colori, dove: Il rosso codifica l’asse “sinistra-destra” della normale Il verde codifica l’asse “su-giù” Il blu codifica l’ altezza
Conclusioni personali Dopo un attento studio di fattibilità: ho capito la teoria Futuri sviluppi: esame: realizzazione esempio.
GRAZIE PER L’ATTENZIONE. Fine GRAZIE PER L’ATTENZIONE.