1 Modelli Globali Daniele Marini. 2 Calcolare interazione-luci materiali non solo su singoli oggetti...

Post on 01-May-2015

214 views 0 download

transcript

1

Modelli Globali

Daniele Marini

2

• Calcolare interazione-luci materiali non solo su singoli oggetti

• Tenere conto della interazione della luce che viene riflessa dagli oggetti

3

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– View independent

4

Dipendente dalla vista: Ray tracing

• Simula il percorso dei raggi luminosi

• Modello di illuminazione: Whitted + estensioni

5

Indipendente dalla vista: Radiosity

• Simula il bilancio energetico in un ambiente chiuso

• Modello Lambertiano + estensioni

6

Equazione fondamentale del rendering

• Kajia 1986

I(x,x') =g(x,x' ) ε(x,x' )+ ρ(x,x',x")I(x,x')dx"s∫

⎣ ⎢ ⎢

⎦ ⎥ ⎥

dove:

I(x,x') intensità della radiazione da x a x'

g(x,x') funzione geometrica di visibilità tra x e x'

ε(x,x' ) emittanza da x a x'

ρ(x,x',x") riflettivita bidirezionale:

luce proveniente da x" riflessa da x verso x'

s superficie

7

Modello di Whitted

• E’ un modello ibrido, unisce aspetti locali e globali

• Il raggio che giunge al pixel nella direzione di COP è il risultato di:– Raggio iniziale+

– Raggio trasmesso+

– Raggio riflesso

• Metodo ricorsivo, albero delle riflessioni e trasmissioni multiple

8

Ray casting Raggi ombra (shadow)

Specchi (mirror) Raggi trasmessi e riflessi

9

scena Albero corrispondente

10

Problemi

• Dipende da “search”

• Calcolo intersezioni critico

• Ottimizzazione:• Bounding volumes

• Parallelizzazione

11

Il calcolo delle intersezioni• 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

12

Intersezione raggio/sfera

• Equazione sfera:

• Sostituire equazione raggio in equazione sfera e si risolve rispetto a t

Sc = xc ,yc,zc[ ] centro sfera

Sr raggio sfera

xs,ys,zs[ ] tali che xs −xc( )2

+ ys −yc( )2+ zs −zc( )

2=Sr

2( )

sono punti sulla superficie

13

Intersezione raggio/sfera

• Equazione quadratica, 2 soluzioni:– Se complesse non c’e’ intersezione

– Se reali ordinare le soluzioni t0 e t1: il minimo rappresenta la prima interesezione

– Il punto intersezione è:

– La normale alla superficie è:

Pintersezione=Pi = x0 +xd * t,y0 +yd * t,z0 +zd *t[ ]

Pnormale=xi −xcSr

,yi −ycSr

,zi −zcSr

⎣ ⎢ ⎢

⎦ ⎥ ⎥

14

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=; event. 1-,1*, 1=• Calcolo punto intersezione: 3+, 3*• Calcolo normale al punto: 3-, 3*

– Totale 17 + o - 17*, 1 sqrt, 3=

15

Intersezione raggio/sfera: soluzione geometrica

– Origine raggio interna alla sfera? Calcola lunghezza vettore centro-origine e controlla con raggio sfera

– Se il raggio è esterno e punto lontano dalla sfera no intersezione (verifica direzione raggio)

– Trova distanza retta raggio da centro, valuta segno:

orig

origt

t

16

Intersezione raggio/sfera: soluzione geometrica

– Se esiste calcola interesezione, sfruttando distanza retta da centro

– Numero operazioni totale: 16+ o -, 13*,1 sqrt, 3=

17

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: luce• II passo: occhio

• Modellazione spettrale delle sorgenti di luce• Tessiture

18

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 socracampioni rispetto a una loro distribuzione regolare

19

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

20

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

21

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

22

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

23

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

24

25

26

27

Modelli di illuminazione avanzati

ρ λ;φi,θi;φr,θr( ) =Lr λ;φi,θi;φr,θr( )Li λ;φi,θi( )cosφidω

dω angolo solido infinitesimo

φi,θi angoli della direzione incidente

φr,θr angoli della direzione di riflessione

Riflettività bidirezionale

28

Funzioni di Fresnel

• indica il rapporto tra l'intensità della radiazione incidente e quella della radiazione trasmessa all'interno del materiale

• radiazione polarizzata trasmessa da un dielettrico, dipende dall’angolo di incidenza e di trasmissione:

F(λ) =12sin2(θi −θt)sin2(θi +θt)

1+cos2(θi +θt)cos2(θi −θt)

⎝ ⎜ ⎜

⎠ ⎟ ⎟

29

Funzione di Fresnel per dielettrico

• l’intensità della radiazione trasmessa dipende sia dalla direzione della radiazione incidente sia dalla direzione della radiazione trasmessa;

• Le due direzioni sono coplanari

30

Funzione di Fresnel per conduttore

• n2 è l'indice di rifrazione del mezzo conduttore (quello dell'aria è pari a 1) e k2 è il coefficiente di attenuazione del conduttore

• L’intensità della luce trasmessa nel conduttore dipende solo dalla direzione della luce incidente:

F(λ) =12

(n2 cosθi −1)2 +(k2 cosθi)2

(n2 cosθi +1)2 +(k2 cosθi)2 +

(n2 −cosθi)2 +k2

2

(n2 +cosθi)2 +k2

2

⎝ ⎜ ⎜

⎠ ⎟ ⎟

31

Funzioni di Fresnel

Con le funzioni di Fresnel si controlla l’attenuazione dell'energia luminosa nella riflessione o trasmissione con conduttori e dielettrici

32

Trattamento superficiale

33

Modello di Cook e Torrance• luminanza riflessa da un superficie come funzione della riflettività bidirezionale• riflettività espressa come somma di una componente diffusiva e di una speculare

• se il materiale è un dielettrico puro kd=1 e ks=0

• se il materiale è un conduttore puro kd=0 e ks=1

ρ≅kdρd +ksρskd +ks =1

34

Modello di Cook e Torrance

• La riflettività diffusiva d viene considerata puramente lambertiana

• la riflettività speculare è approssimata con l'equazione:

ρs =F.D.G

πcosθi cosθr

35

Modello di Cook e Torrance

• F rappresenta la funzione di Fresnel descrive la componente parzialmente trasmessa nel materiale e successivamente riflessa

36

• D funzione di rugosità, indica la percentuale di microfacce orientate come la direzione di osservazione– modello gaussiano:

• con angolo tra L e H, c costante arbitrara, m indice di rugosità normalizzato, quando prossimo a 0 superficie liscia, prossimo a 1 molto rugosa

– modello di Beckmann:

D(m,c,α ) = ce− α / m( )2

D(m,α ) =1

m2 cos4 (α )e− tan(α( ) / m[ ]

2

37

• G parametro geometrico tiene conto dell'orientamento delle microfaccette superficiali, che possono proiettare un'ombra su faccette vicine (shadowing) o produrre una riflessione speculare verso la direzione di osservazione o infine la luce riflessa può essere parzialmente bloccata da altre faccette (masking).

G(N,V,L) = min 1,γ(N.V),γ(N.L)[ ]

γ =2(N.H)

V.H

38

39

40

41