1 modelli globali: ray tracing daniele marini, maurizio rossi
TRANSCRIPT
![Page 1: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/1.jpg)
1
Modelli Globali: Ray Tracing
Daniele Marini, Maurizio Rossi
![Page 2: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/2.jpg)
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?
![Page 3: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/3.jpg)
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)
![Page 4: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/4.jpg)
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
![Page 5: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/5.jpg)
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!
![Page 6: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/6.jpg)
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)
![Page 7: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/7.jpg)
7
Dipendente dalla vista:Ray tracing
• Simula il percorso dei raggi luminosi
• Modello di illuminazione:Whitted = Phong + Estensioni
ricorsive
![Page 8: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/8.jpg)
8
Indipendente dalla vista: Radiosity
• Simula il bilancio energetico in un ambiente chiuso
• Modello locale Lambertiano + Estensioni
![Page 9: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/9.jpg)
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
ρε
ρε ⎥⎦
⎤⎢⎣
⎡+= ∫
![Page 10: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/10.jpg)
10
Equazione fondamentaledel rendering
distanza piano focale:
Vp =Fpp−F
per p>F
x
x’
x’’
![Page 11: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/11.jpg)
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
![Page 12: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/12.jpg)
12
Il rendering: Ray tracingIl rendering: Ray tracing
• Nel Ray tracing l’immagine viene ricostruita punto per punto partendo dal piano immagine
![Page 13: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/13.jpg)
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
![Page 14: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/14.jpg)
14
Ray casting Raggi ombra (shadow)
Specchi (mirror) Raggi trasmessi e riflessi
![Page 15: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/15.jpg)
15
scena Albero corrispondente
![Page 16: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/16.jpg)
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
![Page 17: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/17.jpg)
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
![Page 18: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/18.jpg)
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
![Page 19: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/19.jpg)
19
Ray TracingRay Tracing
• Il modello di illuminazione globale aumenta il realismo nel calcolo della illuminazione
solo Phong Phong + Ray tracing
![Page 20: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/20.jpg)
20
Ray TracingRay Tracing• Il modello di illuminazione globale aumenta il
realismo nel calcolo della illuminazione
![Page 21: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/21.jpg)
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
![Page 22: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/22.jpg)
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
![Page 23: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/23.jpg)
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
![Page 24: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/24.jpg)
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
⎡
⎣ ⎢ ⎢
⎤
⎦ ⎥ ⎥
![Page 25: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/25.jpg)
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=
![Page 26: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/26.jpg)
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
![Page 27: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/27.jpg)
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=
![Page 28: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/28.jpg)
28
![Page 29: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/29.jpg)
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)
![Page 30: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/30.jpg)
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
![Page 31: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/31.jpg)
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
![Page 32: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/32.jpg)
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
![Page 33: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/33.jpg)
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
![Page 34: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/34.jpg)
34
Profondità di campo
Cook, Porter, Carpenter - 1984
Cook, Porter, Carpenter - 1984
![Page 35: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/35.jpg)
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
![Page 36: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/36.jpg)
36
![Page 37: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/37.jpg)
37
![Page 38: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/38.jpg)
38
Ray tracing distribuito e jittering
• Può essere usato anche per Simulare di soft shadows e soft reflections
Cook, Porter, Carpenter - 1984
![Page 39: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/39.jpg)
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
![Page 40: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi](https://reader036.vdocuments.pub/reader036/viewer/2022062404/5542eb67497959361e8d325b/html5/thumbnails/40.jpg)
40
Motion blur
Cook, Porter, Carpenter - 1984