Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...
-
Upload
roberto-carnevale -
Category
Documents
-
view
236 -
download
13
Transcript of Informatica Grafica a.a. 2010-2011 DICGIM – University of Palermo Dipartimento di Ingegneria...
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Dipartimento di Ingegneria Chimica, Gestionale, Informatica e Meccanica
Effetti fotorealistici
Prof. Roberto Pirrone
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Sommario
Generalità
Texture mappingAlgoritmo di Fleibush-Levoy-Cook
Mip-map
Summed area table
Bump mapping
Ombre proiettateAlgoritmo scan-line
Algoritmo di Atherton-Wieler-Greenberg
Volumi d’ombra
Z-buffer shadow
Determinazione delle aree di penombra
TrasparenzaBlending
Screen-door
Algoritmo di Mammen
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Generalità
Una scena resa solamente attraverso lo shading presenta un grado di realismo modesto.
Per ottenere un elevato grado di realismo si può:
Applicare delle trame o tessiture alle superficiCreare rugosità sulla superficieApplicare le ombre tra gli oggettiTenere conto della trasparenza delle superficiTener conto delle riflessioni tra oggetti
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Texture mapping
Il processo di texture mapping consiste nell’applicare un’immagine (texture map) definita in un proprio spazio di coordinate (u,v) sui poligoni della superficie, eventualmente ripetendola su tutta la superficie.
Per diminuire l’onere computazionale si effettua il mapping inverso dai pixel dell’immagine a quelli dello spazio della texture map.
La trasformazione complessiva tiene conto della proiezione sullo schermo e di una legge di mappatura della tetxure su un singolo poligono (definizione esplicita delle texture coordinates di ogni vertice).
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Texture mapping9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Texture mapping
Il procedimento di mapping inverso è analogo a quello visto per le tecniche di warping.
L’interpolazione è basata sul filtraggio spaziale dell’immagine di ingresso scegliendo un’opportuna maschera di convoluzione per pesare i pixel della texture che ricadono nel quadrilatero in cui il pixel viene trasformato.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Algoritmo di Fleibush-Levoy-Cook9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Algoritmo di Fleibush-Levoy-Cook
Si sceglie una maschera di convoluzione, tipicamente molto piccola: di solito si usa una gaussiana con supporto circolare e raggio 2 pixel.
Ripeti per ogni pixel dello spazio destinazione interno all’immagine trasformata
Mappa nello spazio sorgente tutto il rettangolo includente il supporto del filtro centrato sul pixelConsidera il minimo rettangolo che include il quadrilatero ottenuto nello spazio sorgenteIl rettangolo viene sottoposto a clipping con gli estremi dell’immagine sorgente // textureTrasforma i pixel dell’immagine sorgente interni al rettangolo clippato, usando la trasformazione diretta, verso l’immagine nello spazio destinazione ottenendo un quadrilateroScarta i pixel che ricadono all’esterno del rettangolo includente il supporto del filtro centrato sul pixel destinazioneSe il rettangolo includente il supporto del filtro ha intersezione non vuota con l’immagine stessa, allora
il valore del pixel si otterrà da quello calcolato, in proporzione al volume del filtro che è sotteso dall’area di
intersezione tra l’immagine ed il rettangolo includenteFine Ripeti
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Mip map
Una mip-map è una struttura dati che conserva la mappa di tessitura scalata a vari livelli.
Williams modifica l’algoritmo di Fleibush-Levoy-Cook ed individua la zona della mip map (e quindi scelta l'immagine da utilizzare) che più corrisponde al numero dei pixel della texture che ricadono nella trasformazione inversa del rettangolo includente, il filtro centrato nel pixel.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Mip map
Williams usa un parametro D per definire la dimensione della mappa di da usare in corrispondenza ad un pixel che si mappa in un rettangolo di dimensioni ∂u x ∂v.
D=max{ [(∂u/∂x)2+(∂v/∂x)2]1/2, [(∂u/∂y)2+(∂v/∂y)2]1/2 }
∂x e ∂y sono le dimensioni del pixel, in genere unitarie.
Poiché D è continuo e le mip-maps sono discrete, si interpola linearmente tra una risoluzione e l’altra.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Summed area table
Metodo sviluppato da Crow per effettuare un filtraggio veloce.
Il valore filtrato è uguale alla somma dei valori della texture che ricadono nel rettangolo includente il filtro.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Metodi di texture mapping a confronto9 giugno 2011
(a) Campionamento diretto della texture; (b) mip-map;(c) Summed area table; (b) (d) mip-map e filtro gaussiano a supporto ellittico
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Bump mappingIl bump mapping è una tecnica per ottenere delle rugosità sulla superficie e consiste nel perturbare la distribuzione delle normali secondo una mappa di scostamenti verticali (bump map) B(u,v).
Blinn propone un metodo di ricalcolo delle normali perturbate a partire dalle derivate parziali Bu e Bv dello scostamento applicato.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Ombre
L’inserimento di un’ombra nell’equazioni di illuminamento consiste nel porre dei coefficienti Si che possono valere 1 o 0 per ogni sorgente luminosa.
Si=1 implica che il punto è illuminato dalla i-esima sorgente, altrimenti no.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Algoritmi per le ombre
Gli algoritmi per le ombre sono algoritmi di DSV eseguiti in relazione alla posizione della sorgente luminosa.
Principali approcciAlgoritmo scan-line Bouknight e KellyAlgoritmo di Atherton Wieler e GreenbergAlgoritmo di Crow dei volumi d’ombraZ-buffer shadow
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Algoritmo scan-line
Tutti i poligoni sono proiettati, per ogni sorgente, su una sfera centrata nella sorgente stessa e si eliminano le coppie di proiezioni non sovrapposte.
Si proiettano i poligoni rimasti a coppie gli uni sugli altri a partire dalla sorgente.
Considerando gli pseudo-poligoni costituiti dalle proiezioni si applica l’algoritmo scan-line di visibilità.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Algoritmo scan-line9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Atherton Wieler Greenberg9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Volumi d’ombra
Per ogni poligono viene definito un volume d’ombra determinato dai raggi proiettori dei suoi vertici emanati dalla sorgente luminosa.
Si contano le facce back-facing e front-facing dei volumi d’ombra attraversati da un raggio proiettore emanato dalla posizione dell’osservatore per raggiungere un punto della scena.
Se queste si eguagliano allora il punto è illuminato, altrimenti è in ombra. Nel caso di osservatore in ombra bisogna aggiungere 1 al conteggio degli attraversamenti.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Volumi d’ombra9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Z-buffer shadow
Si calcola lo z-buffer classico.
Per ogni sorgente luminosa si calcola lo z-buffer ZLi(x’,y’) visto dalla sorgente i-esima e si applica la roto-traslazione osservatore sorgente per i punti visibili.
Se un punto dello z-buffer trasformato Z’(x’,y’) risulta essere tale che Z’(x’,y’)<ZLi(x’,y’) allora il punto originale P(x,y,z) è in ombra per la sorgente Li.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Z-buffer shadow9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Penombra
La penombra si ha quando un oggetto è illuminato da una sorgente luminosa non puntiforme, ma con un’estensione finita.
Ogni punto ha un livello di ombra dipendente dalla porzione di superficie occlusa dalla sorgente.
Un approccio computazionalmente costoso sarebbe quello di modellare una superficie emissiva come un insieme di sorgenti puntiformi.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Penombra
Nishita e Nakamae (1985) hanno determinato un approccio per sorgenti lineari, poligonali o poliedriche convesse e per oggetti poliedrici.
Per ogni vertice della sorgente si determina il volume d’ombra che genera un oggetto della scena proiettando i suoi vertici.
Il volume d’ombra globale è l’intersezione di tutti i volumi d’ombra, mentre il volume di penombra è la chiusura convessa di tutti i volumi d’ombra.
I punti all’interno del volume di penombra sono colorati proporzionalmente alla parte di sorgente visibile: si può usare un approccio BSP-tree.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Penombra9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasparenza
Le tecniche di trasparenza possono essere di tipo rifrattivo e non rifrattivo. Le tecniche di tipo rifrattivo calcolano la direzione di un raggio luminoso trasmesso attraverso una superficie e sono utilizzate come parte del processo di ray-tracing.
Le tecniche non rifrattive sono dette anche tecniche di blending e riconducono il problema della trasparenza al calcolo del colore di un pixel che appartiene alla proiezione di due o più poligoni sovrapposti e non opachi, ciascuno avente un colore proprio.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasparenza non rifrattiva
Nello scenario più semplice abbiamo due poligoni P1 e P2 e sia P1 trasparente e posto davanti a P2, opaco, rispetto alla linea di vista.
Il calcolo del colore di un pixel che ricade nell’intersezione delle proiezioni dei due poligoni sul piano dell’immagine si ottiene per combinazione dei colori originari di P1 e P2.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasparenza non rifrattiva
Blending tra i due colori.
Il poligono trasparente filtra la luce che lo attraversa in maniera separata sui tre canali.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Screen door
La tecnica di trasparenza screen-door è semplice ed efficiente.
Per simulare un effetto di trasparenza, basta disporre spazialmente mescolati pixel con il colore di P1 e pixel con il colore di P2 secondo un pattern ripetitivo binario m(u,v) {0,1}∈ .
Il grado di prevalenza dell’uno o dell’altro colore in ogni areola elementare dell’immagine determinerà il livello di trasparenza simulato.
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasparenza con z-buffer (alg. di Mammen)Esegui il DSV di tutti i poligoni opachi con lo z-buffer classico O=[o(x,y)]: o(x,y)={col, z} per ogni (x,y)Crea il buffer degli oggetti trasparenti T=[t(x,y)]:
t(x,y)={trasp, flag, col, z} per ogni (x,y)
Ripeti Ripeti per ogni (x,y) t(x,y).flag=0Ripeti per ogni y
Ripeti per ogni xSe esiste un poligono trasparente P tale che
o(x,y).z < zP(x,y) < t(x,y).z allora
t(x,y).trasp=traspP
t(x,y).flag=1 t(x,y).col=colP
t(x,y).z=zP
Fine RipetiFine RipetiRipeti per ogni (x,y)
Se t(x,y).flag=1 allorao(x,y).col=t(x,y).col*(1-t(x,y).trasp)
+o(x,y).col*t(x,y).trasp o(x,y).z=t(x,y).zt(x,y).flag=0
Fine Ripeti finché t(x,y).flag=0 per ogni (x,y)
9 giugno 2011
Informatica Grafica a.a. 2010-2011
DICGIM – University of Palermo
Trasparenza rifrattiva9 giugno 2011