1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

40
1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi

Transcript of 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

Page 1: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

1

Modelli Globali: Ray Tracing

Daniele Marini, Maurizio Rossi

Page 2: 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?

Page 3: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

14

Ray casting Raggi ombra (shadow)

Specchi (mirror) Raggi trasmessi e riflessi

Page 15: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

15

scena Albero corrispondente

Page 16: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

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.

28

Page 29: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

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.

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.

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.

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.

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.

34

Profondità di campo

Cook, Porter, Carpenter - 1984

Cook, Porter, Carpenter - 1984

Page 35: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

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.

36

Page 37: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

37

Page 38: 1 Modelli Globali: Ray Tracing Daniele Marini, Maurizio Rossi.

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.

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.

40

Motion blur

Cook, Porter, Carpenter - 1984