1
Modelli Globali: Ray Tracing
Daniele Marini, Maurizio Rossi
2
Limiti deiLimiti dei modelli di illuminazione localemodelli 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 luceda dove proviene la luce?
3
Modelli globaliModelli globali
• La luce che giunge in un punto può originare da:
1. Sorgenti luminose (illuminazione diretta)
2. Riflessa e/o rifratta da altri oggetti (illuminazione indiretta, può contribuire dal 40 al 100% della illuminazione di un interno)
3. Diffusa dall’atmosfera (illuminazione diffusa, generalmente ininfluente negli interni, importante negli esterni: luce del cielo)
4
Il renderingIl 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
5
Modelli globaliModelli 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!
6
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)
7
Dipendente dalla vista:Ray tracing
• Simula il percorso dei raggi luminosi
• Modello di illuminazione:Whitted = Phong + Estensioni
ricorsive
8
Indipendente dalla vista: Radiosity
• Simula il bilancio energetico in un ambiente chiuso
• Modello locale Lambertiano + Estensioni
9
Equazione fondamentaledel rendering
• Kajia 1986
superficie
x versox'da riflessa x"da eprovenient luce
:alebidirezionta riflettivi )",',(
xa x'da emittanza )',(
x' ex à tra visibilitdi geometrica funzione )',(
xa x'da radiazionedella intensità )',(
:
")'','()",',()',()',()',(
S
xxx
xx
xxg
xxI
dove
dxxxIxxxxxxxgxxIs
ρε
ρε ⎥⎦
⎤⎢⎣
⎡+= ∫
10
Equazione fondamentaledel rendering
distanza piano focale:
Vp =Fpp−F
per p>F
x
x’
x’’
11
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
12
Il rendering: Ray tracingIl rendering: Ray tracing
• Nel Ray tracing l’immagine viene ricostruita punto per punto partendo dal piano immagine
13
Ray tracingRay 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
14
Ray casting Raggi ombra (shadow)
Specchi (mirror) Raggi trasmessi e riflessi
15
scena Albero corrispondente
16
Ray tracingRay tracing
• Quando un raggio incontra un oggetto si applica il modello di illuminazione locale e il raggio viene propagato ricorsivamente in:
1. Un raggio riflesso specularmente (se ks > 0), è così possibile vedere oggetti riflessi su altri
2. Un raggio rifratto specularmente (se kt > 0), è così possibile vedere oggetti attraverso altri
3. Tanti raggi diretti verso le sorgenti luminose per determinare se sono visibile direttamente, è così possibile calcolare le ombre
17
Ray tracingRay tracing• Il processo ricorsivo termina:
1. Se un raggio non colpisce nulla
2. 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
18
Ray tracingRay tracing
• 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)
∑ =+++=
ls
j jjjdssttaar IgkIkIkIkI1
]cos[ θ∑ =+++=
ls
j jjjdssttaar IgkIkIkIkI1
]cos[ θ
luceambiente
componentetrasmessaricorsiva
componenteriflessa
ricorsiva
modello di illuminazione applicato a ls sorgenti di illuminazione
19
Ray TracingRay Tracing
• Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione
solo Phong Phong + Ray tracing
20
Ray TracingRay Tracing• Il modello di illuminazione globale aumenta il
realismo nel calcolo della illuminazione
21
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
22
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
Rorigine= x0,y0,z0[ ]
Rdirezione= xd,yd,zd[ ]
R(t) =Rorigine+Rdirezione* t con t>0
23
Intersezione raggio/sfera
• Equazione sfera:
• Sostituire equazione raggio in equazione sfera e si risolve l’eq. Di secondo grado rispetto a t
[ ]
[ ] ( ) ( ) ( )( )superficie sulla punti sono
che tali,,
sfera raggio
sfera centro ,,
2222rcscscssss
r
cccc
Szzyyxxzyx
S
zyx
=−+−+−
=S
24
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 è:
[ ]tzztyytxx dddi *,*,* 000 +++=P
Pnormale=xi −xcSr
,yi −ycSr
,zi −zcSr
⎡
⎣ ⎢ ⎢
⎤
⎦ ⎥ ⎥
25
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=
26
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
orig
origt
t
27
Intersezione raggio/sfera: soluzione geometrica
– Se la distanza retta-centro è minore del raggio della sfera calcola intersezione
– Numero operazioni totale: 16+ o -13*1 sqrt3=
28
29
Altri effetti
• Ray tracing distribuito: • 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)
30
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
31
Jitteringpixelsovracampioni
Se i campioni sono prevalentemente al centro si harumore minimo ma alto aliasingSe i campioni sono meno concentrati al centro siha meno aliasing e più rumoreSi può predisporre una matrice di jitter con una distribuzione Gaussiana
32
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
33
distanza piano focale:
Vp =Fpp−F
per p>F
punti fuori fuoco sono proiettati :
Vd =Fdd−F
per d>F
cerchio di confusione:
C=Vd −VpFnVd
34
Profondità di campo
Cook, Porter, Carpenter - 1984
Cook, Porter, Carpenter - 1984
35
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
36
37
38
Ray tracing distribuito e jittering
• Può essere usato anche per Simulare di soft shadows e soft reflections
Cook, Porter, Carpenter - 1984
39
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
40
Motion blur
Cook, Porter, Carpenter - 1984
Top Related