Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi
Limiti dei modelli di illuminazione locale I modelli di illuminazione Flat, Gouraud, Phong, Cook-Torrance e He-Torrance forniscono una risposta approssimata al seguente quesito: nota la luce che arriva in un punto di una superficie quanto vale la luce che riflette sulla superficie? Il problema è analizzato a livello locale sulla superficie del materiale considerato e per questa ragione sono detti modelli di illuminazione locale Ma… da dove proviene la luce?
Modelli globali La luce che giunge in un punto può originare da: Sorgenti luminose (illuminazione diretta) Riflessa e/o rifratta da altri oggetti (illuminazione indiretta, può contribuire dal 40 al 100% della illuminazione di un interno) Diffusa dall’atmosfera (illuminazione diffusa, generalmente ininfluente negli interni, importante negli esterni: luce del cielo)
Il rendering Osservazione: come può il modello di illuminazione locale quantificare la luce che arriva in un punto della superficie di altri oggetti? Lambert: considera solo la luce che arriva direttamente dalle sorgenti Gouraud e Phong oltre alla illuminazione diretta introduce un temine di luce ambientale costante che approssima sia l’illuminazione indiretta che quella diffusa
Modelli globali Un calcolo corretto delle componenti di illuminazione diretta e indiretta comporta una analisi della geometria e degli oggetti dell’ambiente considerato La soluzione a questo problema è data dai modelli di illuminazione globale: Ray tracing, Radiosity Rifrazione (Snell) e immagine riflessa nello specchio sono due esempi di effetti ottenibili grazie al calcolo del modello globale (ray tracing) Il calcolo del modello globale richiede tempo!
Modelli e metodi di rendering Nei metodi locali: modello di illuminazione + shading (+ smoothing) Metodi globali: modelli di illuminazione più accurati + rendering 2 metodi principali View dependent (Ray Tracing) View independent (Radiosity)
Dipendente dalla vista: Ray tracing Simula il percorso dei raggi luminosi Modello di illuminazione: Whitted = Phong + Estensioni ricorsive
Indipendente dalla vista: Radiosity Simula il bilancio energetico in un ambiente chiuso Modello locale Lambertiano + Estensioni
Equazione fondamentale del rendering Kajia 1986
Equazione fondamentale del rendering x’’ x x’
Modello di Whitted: Ray Tracing È un modello ibrido, unisce aspetti locali (Phong) e globali (ricorsione) Il raggio che giunge al pixel nella direzione di COP è il risultato di: Raggio iniziale+ Raggio trasmesso ricorsivamente + Raggio riflesso ricorsivamente Metodo ricorsivo, albero delle riflessioni e trasmissioni multiple
Il rendering: Ray tracing Nel Ray tracing l’immagine viene ricostruita punto per punto partendo dal piano immagine
Ray tracing Nel Ray tracing l’immagine viene ricostruita punto per punto partendo dal piano immagine e percorrendo i raggi di luce a ritroso seguendo le regole dell’ottica geometrica
Ray casting Raggi ombra (shadow) Specchi (mirror) Raggi trasmessi e riflessi
scena Albero corrispondente
Ray tracing Quando un raggio incontra un oggetto si applica il modello di illuminazione locale e il raggio viene propagato ricorsivamente in: Un raggio riflesso specularmente (se ks > 0), è così possibile vedere oggetti riflessi su altri Un raggio rifratto specularmente (se kt > 0), è così possibile vedere oggetti attraverso altri Tanti raggi diretti verso le sorgenti luminose per determinare se sono visibile direttamente, è così possibile calcolare le ombre
Ray tracing Il processo ricorsivo termina: Se un raggio non colpisce nulla Dopo un certo numero massimo prestabilito di riflessioni/rifrazioni Limite del modello: non viene calcolata la luce che proviene per riflessione/trasmissione diffusa da altri oggetti e questa componente viene approssimata con un termine costante di luce ambientale
Ray tracing kt: coefficiente di trasmissione 0 kt 1 luce ambiente componente trasmessa ricorsiva componente riflessa ricorsiva modello di illuminazione applicato a ls sorgenti di illuminazione kt: coefficiente di trasmissione 0 kt 1 gj: funzione di occlusione rispetto alla j-esima sorgente di luce; gj=0 (ombra) gj=1 (non in ombra)
Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione solo Phong Phong + Ray tracing
Ray Tracing Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione
Problemi I raggi sono tracciati da COP in direzione opposta alla propagazione della luce (backward Ray Tracing) La complessità dipende dall’efficienza della ricerca dell’intersezione (problema di search) Calcolo intersezioni critico !! Ottimizzazioni possibili: Bounding volumes Suddivisione uniforme dello spazio Parallelizzazione
Il calcolo delle intersezioni: esempio Intersezione raggio/sfera - soluzione algebrica Definiamo un raggio da COP al pixel sul piano immagine con l’equazione parametrica: Per t<0 i punti sul raggio sono dietro COP, t=0 va evitato per problemi numerici
Intersezione raggio/sfera Equazione sfera: Sostituire equazione raggio in equazione sfera e si risolve l’eq. Di secondo grado rispetto a t
Intersezione raggio/sfera Equazione quadratica, 2 soluzioni: Se complesse non c’è intersezione Se reali ordinare le soluzioni t0 e t1: il minimo rappresenta la prima intersezione Il punto intersezione (xi,yi,zi) è: La normale alla superficie è:
Complessità del calcolo intersezione raggio/sfera Passi: Calcolare coefficiente eq. II grado: 8 + e -, 7 * Calcolo discriminante: 1-, 2*, 1= Determinazione intersezione minima, eventuale calcolo della seconda: 1-, 1*, 1 sqrt, 1=; eventuale seconda: 1-,1*, 1= Calcolo punto intersezione: 3+, 3* Calcolo normale al punto: 3-, 3* Totale: 17 + o – 17*, 1 sqrt, 3=
Intersezione raggio/sfera: soluzione geometrica Origine retta interna alla sfera? Calcola intersezione Se l’origine è esterna verifica direzione retta, se t è negativo la retta si allontana: no intersezione Trova distanza retta da centro t orig t orig
Intersezione raggio/sfera: soluzione geometrica Se la distanza retta-centro è minore del raggio della sfera calcola intersezione Numero operazioni totale: 16+ o - 13* 1 sqrt 3=
Altri effetti Ray tracing distribuito: Ray tracing a due passate: Motion blur Profondità di campo Ray tracing a due passate: Simula scattering della luce attraverso un mezzo (acqua, vetro) I passo: nella direzione della luce (forward ray tracing) II passo: dalla posizione occhio (backward ray tracing) Definizione spettrale delle sorgenti di luce Tessiture (superficiali e volumetriche)
Ray tracing distribuito Ogni pixel viene sovracampionato, ad es. 3x3 volte Le posizioni dei pixel sovracampionati possono essere regolari o casuali (jittering) Il pixel assume un valore come media dei campioni Jittering consiste nel perturbare la posizione dei sovracampioni rispetto a una loro distribuzione regolare
Jittering Se i campioni sono prevalentemente al centro si ha rumore minimo ma alto aliasing Se i campioni sono meno concentrati al centro si ha meno aliasing e più rumore Si può predisporre una matrice di jitter con una distribuzione Gaussiana
Profondità di campo Occhio e lente fotografica hanno un’apertura finita; ogni punto appare come un piccolo cerchio sul piano immagine: cerchio di confusione L’immagine prodotta dal foro stenopeico è perfettamente a fuoco
Profondità di campo Cook, Porter, Carpenter - 1984
Jittering per profondità di campo Se il punto campionato è sul piano focale, i punti jittered sono assai vicini e la loro media non si scosta troppo dal valore del punto centrale Se il punto campionato è lontano dal piano focale i punti jittered sono distanti e la loro media crea un effetto di sfocatura
Ray tracing distribuito e jittering Può essere usato anche per Simulare di soft shadows e soft reflections Cook, Porter, Carpenter - 1984
Jittering per motion blur Si può sovracampionare l’immagine temporalmente, usando matrice di jitter a istanti di tempo distinti La maggiore velocità di un oggetto esalta l’effetto mosso
Motion blur Cook, Porter, Carpenter - 1984