Sei sulla pagina 1di 36

Grafica al calcolatore 2011/12

Tecniche di mappatura

02/05/12

TIM 11/12

Il modello di illuminazione di Phong abbastanza versatile: con una scelta opportuna dei vari parametri si possono imitare diversi materiali in modo abbastanza realistico (per esempio la plastica) * E' comunque limitato: non si possono simulare i dettagli di un materiale, a meno di non introdurli nella geometria (ovvero aumentare il numero dei poligoni). * Invece di incrementare la complessit del modello, si aggiungono particolari come parte del processo di rendering. * !e tecniche di mappatura (te"ture mapping) interagiscono con lo shading usando una mappa bidimensionale o te"ture (tessitura) come tabella di loo#up, in modo da aggiungere dettagli alla super$icie. * %i possono ottenere risultati ottimi dal punto di vista del $otorealismo con un limitato carico computazionale. * Il te"ture mapping ampliamente sopportato dalle schede gra$iche. TIM 11/12 02/05/12 2

Introduzione

Il te"ture mappping, nella sua $orma pi& semplice (color mapping) consiste nellapplicare una immagine su una super$icie, come una decalcomania. * Esempi: una etichetta su una lattina, una $oto su un cartellone pubblicitario, oppure tessiture regolari come legno o marmo su una super$icie. * 'na te"ture map una matrice bidimensionale di dati indirizzati da due coordinate s e t comprese tra ( ed ). Il dato contenuto tipicamente un colore (la mappa una immagine), ma potrebbe essere qualcosaltro. * Pi& in generale una te"ture map pu* contenere qualunque tipo di in$ormazione che incide sullapparenza di una super$icie: la te"ture map una tabella ed il te"ture mapping consiste nel recuperare dalla tabella (loo#up) lin$ormazione che serve per e$$ettuare il rendering di unTIM certo punto. 11/12 02/05/12 3

Texture mapping

Texture mapping
*

+a ,ngel

parametrizzazione

proiezione

schermo superficie
02/05/12 TIM 11/12

schermo

Texture mapping
*

* *

!a te"ture pu* essere applicata dopo il calcolo della illuminazione con Phong (per modi$icare attributi come colore, luminosit o trasparenza) oppure pu* modi$icare i parametri (come le normali) che entrano nel modello di Phong. 'n passaggio chiave stabilire una corrispondenza univoca tra super$icie delloggetto e te"ture. -ccorre de$inire la $unzione di parametrizzazione W() che associa un punto (s; t) della te"ture ad un punto P della super$icie delloggetto .+ ( una $unzione che spalma la te"ture sulla super$icie). Il punto P viene poi mappato dalla proiezione in un punto (xs; ys) dello schermo. Il rendering della te"ture si occupa poi di stabilitre il valore di te"ture da associare a ciascun pi"el.
02/05/12 TIM 11/12

* * * * *

/ella mappatura in un passo si de$inisce (in $orma analitica) la $unzione W che de$inisce la corrispondenza tra i pi"el della te"ture ed i punti della super$icie. 0uesto si pu* $are quando si ha la descrizione parametrica della super$icie soggiacente alla maglia poligonale. ,ltrimenti si speci$ica tabularmente la corrispondenza W-1 tra vertici della maglia e punti della te"ture. %e la super$icie data in $orma parametrica, ad ogni suo punto P sono associate due coordinate (parametri) (u; v). Per ottenere W basta speci$icare la mappa che va da (u; v) sulla super$icie a (s; t) nella te"ture. E' opportuno che W sia invertibile. %pesso lidentit (con qualche $attore di normalizzazione).
02/05/12 TIM 11/12 6

Parametrizzazione

Parametrizzazione
*

,d esempio si consideri un cilindro di altezza h. per il quale si de$inisce la $unzione

dove (m; n) sono le dimensioni della te"ture map.


TIM 11/12 7

02/05/12

S/O - Mapping
* *

'na tecnica pi& generale, che si pu* usare senza conoscere lequazione parametrica della super$icie, la mappatura in due passi %i mappa la te"ture su una super$icie intermedia semplice, in modo che la parametrizzazione (corrispondenza punti1 super$icie con pi"el1te"ture) sia immediata2 questa prende il nome di %1mapping 0uindi si mappa ogni punto della super$icie intermedia in un punto della super$icie in esame2 questa prende il nome di -1 mapping !a concatenazione dei due mapping genera la corrispondenza 3 tra i pi"el della te"ture ed i punti delloggetto

02/05/12

TIM 11/12

Il primo passaggio (%1mapping) in genere semplice2 basta scegliere super$ici $acili da parametrizzare * ,d esempio si pu* prendere come super$icie intermedia un cilindro (vedi slide precedente) * -ltre al cilindro $acile $are l%1mapping con cubi, piani e s$ere. * In genere si considera la super$icie intermedia come esterna alloggetto da tessiturare.
*

02/05/12

TIM 11/12

Per l-1mapping ci sono varie scelte

%i considera la normale uscente da un punto delloggetto2 il raggio che passa per tale punto e con direzione tale normale intersecher la super$icie intermedia in un punto, stabilendo cos4 l-1mapping ,nzich5 usare la normale si pu* usare la retta che congiunge il centroide delloggetto con il punto considerato %i pu* considerare la normale in un punto della super$icie intermedia e la retta che passa per tale punto e con direzione questa normale, intersecher la super$icie delloggetto in un punto, stabilendo un altro possibile -1mapping

Esempi di O-mapping. (a) Usando la normale alla superficie intermedia. (b) Usando la normale dalla superficie delloggetto. (c) Usando i raggi dal centro delloggetto. (Angel)
R

02/05/12

TIM 11/12

10

endering
*

0uello che serve per il rendering la corrispondenza tra te"ture (s; t) e pi"el dellimmagine (xs; ys). 6i sono tipicamente due strategie per poter mappare una te"ture: 7appatura in avanti: ($or8ard mapping) dato un pi"el (s; t) nella te"ture si trova il punto (x; y; z) delloggetto su cui tale pi"el viene mappato da 3 e quindi, con la normale proiezione che abbiamo studiato, si trova il suo corrispondente (xs; ys).

7appatura all'indietro: (inverse mapping) Per ogni pi"el (xs; ys) si trova nella te"ture la corrispondente coordinata (s; t). %i usa la retroproiezione del pi"el sulla super$icie e la $unzione W-1
TIM 11/12 11

02/05/12

endering
*

Per evitare $enomeni di aliasing, nellassegnare un valore di te"ture ad un pi"el dellimmagine bisogna tenere presente che la pre1immagine di un pi"el nello spazio te"ture non un punto, ma un quadrilatero curvilineo (in generale), il quale pu* comprendere al suo interno molti pi"el della te"ture. %i usa quasi sempre linverse mapping.
02/05/12 TIM 11/12 12

!"empio per "up# parametric$e


* *

%upponiamo che siano date la $unzione 3 e lequazione parametrica della super$icie. +ato il pi"el che vogliamo disegnare, lo si (retro)proietta sulla super$icie (%i usano i quattro vertici). !a sua impronta sulla super$icie un patch quadrangolare.

02/05/12

TIM 11/12

13

!"empio per "up# parametric$e


*

Patch descritta da due parametri (u; v) che, mappati con W-1 in (s; t), de$iniscono una quadrilatero nella te"ture. * In realt limmagine di un pi"el (quadrato) secondo il la mappatura allindietro un quadrilatero curvilineo nello spazio te"ture. * Integrando sul quadrilatero si ottiene il valore per il pi"el. * 0uesta pu* essere presa anche come descrizione del processo ideale di te"ture mapping.
02/05/12 TIM 11/12 14

!"# per maglie poligonali


%i de$inisce mappatura W-1 che associa una coordinata te"ture (s; t) ad ogni vertice della maglia2 a ciascun vertice di un triangolo proiettato associata una coordinata te"ture (s; t). * +urante la scan conversion del triangolo si determinano le coordinate te"ture di ciascun pi"el interno conlinterpolazione scan1line (come abbiamo gi usato per la pro$ondit e per lo shading di 9ouraud). * %i determina quindi il valore di te"ture da associare al pi"el arrotondando le coordinate te"ture allintero pi& vicino. In questo modo ogni pi"el riceve contributo da un solo te"el (te"ture element). * %e la risoluzione della te"ture molto diversa da quella del displa: (ovvero la corrispondenza pi"el1te"el molti a uno o uno a molti) si incorre nell aliasing TIM 11/12 02/05/12 15
*

!interpolazione scan1line (lineare) di (s; t) crea delle distorsioni prospettiche nellimmagine risultante (viene a mancare la corretta distorsione prospettica, o $oreshortening). !a soluzione impiegare linterpolazione iperbolica, cio interpolare non coordinate proiettate ma le coordinate omogenee (u/z,v/z,1/z) e poi determinare il pi"el della te"ture dividendo per lultima componente. /ella $igura a seguire la $accia del quadrato composta da due triangoli, ai quali viene applicata la stessa te"ture. 'sando linterpolazione scan1line senza correzione prospettica (sinistra) si nota un e$$etto indesiderato lungo la diagonale, che invece scompare usando linterpolazione iperbolica (destra).

%i"tor"ione pro"pettica

02/05/12

TIM 11/12

16

&lia"ing
*

%i ha aliasing ogni qualvolta non ci sia corrispondenza uno1a1 uno tra elementi del displa: (pi"el) ed elementi della te"ture (te"el). +istinguiamo due casi: 7agni$ication: un te"el corrisponde a molti pi"el. 'n singolo te"el appare come un blocco di pi"el nellimmagine. %i vede una versione ingrandita a blocchi della te"ture. E' come ingrandire una immagine digitale: se i pi"el diventano troppo grossi si notano e$$etti a blocchi. 7ini$ication: (il peggiore): un pi"el corrisponde a molti te"el. %i dovrebbe vedere unaversione rimpicciolita della te"ture. 7a se si usa il metodo delineato prima, in cui ad ogni pi"el contribuisce un solo te"el, vuol dire che ci sono te"el che restano $uori.E' come quando si riduce unimmagine digitale: se si sottocampiona si possono perdere particolari. TIM 11/12 02/05/12 17

&lia"ing
*

(a) 7ini$ication. (b) 7agni$ication.

02/05/12

TIM 11/12

18

%opra: magni$ication interpolazione bilineare risolve * %otto: mini$ication: non serve


*

02/05/12

TIM 11/12

19

Soluzione' MipMapping
*

Per $attori di riduzione moderati, usare interpolazione bilineare nelle coordinate te"ture per determinare il valore (invece di arrotondare allintero) Per $attori di riduzione signi$icativi (maggiori di due) necessario tenere conto del valore di tutti i te"el che ricadono nella pre1immagine del pi"el (che grossomodo pi& grande di quattro te"el), $acendone la media. !operazione costosa da e$$ettuare on1line, per cui si pre$erisce immagazzinare una versione multi1risoluzione (piramide) della te"ture, che prende il nome di mipmap. 7IP sta per multum in parvo (latino)

02/05/12

TIM 11/12

20

Mipmapping
,l momento del rendering, dato un pi"el da colorare, si sceglie la te"ture nella mipmap al livello di dettaglio che minimizza la mini$icazione (area della pre1immagine del pi"el circa )), e si usa interpolazione bilineare.

02/05/12

TIM 11/12

21

+a ;ignoni<;orsini

02/05/12

TIM 11/12

22

Texture-color mapping
* *

* *

'na te"ture di colore una immagine digitale. /el determinare il colore di un punto il colore dellelemento della te"ture corrispondente interagisce con quello assegnato alla super$icie dal modello di Phong. 0uesta tecnica si chiama anche pi& propriamente color mapping. Il color mapping pi& semplice (modo decalcomania) consiste semplicemente nellassegnare ad un pi"el il colore speci$icato dalla te"ture, sovrascrivendo ogni altra in$ormazione (non serve $are shading, verrebbe sovrascritto).

02/05/12

TIM 11/12

23

Texture-color mapping
*

'na tecnica pi& avanzata quella di modulare il colore della te"ture moltiplicandolo per il valore risultante dallo shading. In questo modo, si ottiene di modulare il colore della te"ture con lintensit di illuminazione della super$icie calcolata dal modello di Phong. Il problema che si perdono gli highlights, che assumono il colore della te"ture. !a soluzione consiste nel modulare con la te"ture separatamente solo le componenti di$$usa, ambientale ed emissiva e sommare separatamente alla $ine la componente speculare.

02/05/12

TIM 11/12

24

!"empio

02/05/12

TIM 11/12

25

Scena con texture "ul pa(imento) porta e ta(olo#

02/05/12

TIM 11/12

26

&ltre applicazioni
che si possono ricondurre alluso di te"tures. * 7appa di ri$lessione: detta anche environment map usa una te"ture per darelimpressione che loggetto ri$letta lambiente circostante. * =ump map: questa tecnica perturba la normale in un punto con il valore corrispondente nella te"ture2 siccome il modello locale di illuminazione usa la normale per calcolare le intensit>a di colore, il risultato di un bump mapping e di alterare lo shading della super$icie (senza modi$icare ovviamente la geometria) * 7appa delle normali: estensione della precedente, speci$ica la normale in ogni punto.
02/05/12 TIM 11/12 27

&ltre applicazioni
* *

7appa della luce o light map serve a contenere il risultato del calcolo della illuminazione compiuto o$$1line (con modello solitamente globale, vie81independent). 7appa di trasparenza: si usa per modulare lopacit>a delloggetto2 in tal modo alcune parti possono essere rese trasparenti, altre opache. %pesso (-pen9!) tale in$ormazione viene accorpata ad una te"ture di colore2 la te"ture conterr quindi il colore ?9= ed un valore di opacit In generale tutte le caratteristiche che compaiono nel modello locale di illuminazione possono venire modulate dalla te"ture (mappa di emissione, mappa di specularit etc...)
TIM 11/12 28

02/05/12

02/05/12

TIM 11/12

29

*ump mapping
Il bump mapping viene usato per $are apparire corrugata (con rigon$iamenti e indentazioni) una super$icie liscia (es. arancia). * ;ambiare la geometria per aggiungere i particolari di piccola scala non in genere $attibile perch5 richiederebbe un numero troppo elevato di poligoni. * Invece il bump mapping modi$ica le normali alla super$icie (senza toccare la super$icie stessa), cos4 quando viene applicato il modello di illuminazione (Phong) lapparenze della super$icie (il suo shading) risulta quella della super$icie corrugata che si voleva ottenere. * Problema: si pu* $are nella pipeline standard open9!@
02/05/12 TIM 11/12 30

* *

* * * *

%ia P(u; v) un generico punto della super$icie (parametrizzata) da perturbare. %ia data la mappa B(u; v) che speci$ica la perturbazione (virtuale) da applicare alla super$icie, spostando il punto P(u, v) lungo la sua normale della quantit B(u; v). (assumiamo per semplicit s = u e t = v). !a normale in P (si suppone normalizzata) dove Pu e Pv sono le derivate parziali rispetto ai due parametri %e spostassimo P lungo n di un valore B(u, v) si otterrebbe Per calcolare la nuova normale n( devo derivare P0 (u, v) rispetto a u e v:
TIM 11/12 31

02/05/12

%upponendo che B(u, v) sia su$$icientemente piccola e la super$icie su$$icientemente regolare da poter trascurare lultimo termine si ottiene %e applicando il modello di illuminazione a P si usa n0 al posto di n si ottiene limpressione che il punto sia stato perturbato.

02/05/12

TIM 11/12

32

%i noti che il valore B(u; v) non viene usato se non per calcolarne le derivate parziali. %i possono memorizzare queste nella bump map, risparmiando tempo di calcolo on1line. * ,lcuni programmi possono perturbare geometricamente il punto P, non solo la sua normale, si parla di displacement map. 7olto pi& oneroso computazionalmente, anche se i risultati sono realistici se visti da vicino, non vero per il bump1mapping * 0uestultimo, modi$icando solo le normali della super$icie, non cambia le propriet geometriche di questa2 se liscia prima del bump1mapping, lo rimane anche dopo (si vede guardando la silhouette). * !a di$$erenza comunque piccola per la maggior parte delle situazioni (telecamera lontana dalloggetto, super$icie non vista di taglio). * Il bump mapping non supportato da -pen9!: la te"ture 11/12 02/05/12 33 viene applicata solo dopo il TIM calcolo della illuminazione.

*ump mapping

6isto da vicino non va bene...

+i$$erenza con displacement mapping

02/05/12

TIM 11/12

34

iferimenti
*

%cateni et al. ;ap A.B1A.C * ,ngel cap. D.B

02/05/12

TIM 11/12

35

%omande di (erifica
*

Perch5 il te"ture mapping si $a tipicamente con mappatura inversa@ * ;he di$$erenza c' tra gli arte$atti nella mappatura delle tessiture che possono veri$icarsi nel caso si usi la proiezione prospettica o quella ortogra$ica per creare la scena@ * %i indichino di$$erenti applicazioni del te"ture mapping * 0ual la di$$erenza tra bump mapping e displacement mapping@
02/05/12 TIM 11/12 36

Potrebbero piacerti anche