Post on 01-May-2015
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