1 Modelli Globali: il metodo di Radiosity Daniele Marini.

52
1 Modelli Globali: il metodo di Radiosity Daniele Marini

Transcript of 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

Page 1: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

1

Modelli Globali: il metodo diRadiosity

Daniele Marini

Page 2: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

2

Radiosity

• Bilancio radiativo in un ambiente chiuso (senza scambio di energia con l’esterno)

• Indipendente al punto di vista

Page 3: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

3

Esempio

Page 4: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

4

Come funziona1. Tutta la scena, un ambiente chiuso, viene

rappresentata con delle patch2. Ciascuna patch ha un valore iniziale di energia

luminosa, nullo per le patch che non corrispondono a sorgenti di luce

3. In modo iterativo viene determinata quanta energia luminosa passa da una patch all’altra fino a che il sistema converge a valori stabili

Page 5: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

5

Radiosity

• Basata su un bilancio energetico: l’energia che entra nel sistema chiuso deriva dalle superfici che agiscono come emettitori

• Le sorgenti di luce sono trattate come le altre superfici, tranne che per il fatto che hanno una radiosity iniziale non nulla

Page 6: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

6

Radianza

• Esprime la radianza emessa in una direzione come integrale della radianza riflessa in tutte le direzioni

iiiiirriirrrr d dLfL ωθλφθλφθφθλφθ cos),,,(),,,,,(),,,( ppp ∫Ω

=

),( ii φθ),( rr φθ

iLrL

p

Page 7: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

7

Radiosità

• Considera anche le superfici emissive (sorgenti di illuminazione)

• ed è applicata in modo ricorsivo: la radianza incidente proviene da altre superfici che a loro volta riflettono la luce incidente su di esse...

iiiiirriirrre

rrr

d dLfL

L

ωθλφθλφθφθλφθ

λφθ

cos),,,(),,,,,(),,,(

),,,(

ppp

p

∫Ω

+

=

Page 8: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

8

Radiosità• Riscriviamo in forma differente:

)(),()()(),(

),(

),(

pppppppppp

pp

pp

′′→′′′′↔′′↔′→→′′

+′→=′→

∫ dALVGf

LL

sS

r

e

r

λλ

λλ

p

rLp′

p ′′

Page 9: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

9

Equazione del rendering• Termine che rappresenta le sorgenti di luce:

dALVGfL

L

s

S

re

r

),(),(),(),,(),(

),(

ppppppppppp

pp

′′′′′′′′′+′

=′

p

rLp′Radianza emessa in

direzione p’ dal punto p

Page 10: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

10

Equazione del rendering• Contributo di S superfici:

dsLVGfL

L

s

S

re

r

),(),(),(),,(),(

),(

ppppppppppp

pp

′′′′′′′′′+′

=′

p

sLrL

p′

p ′′

BRDF in p

Page 11: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

11

Equazione del rendering

Fattore di visibilità: nullo se c’è occlusione, 1 altrimentiDescrive la relazione geometrica tra le superfici

),( pp ′′G

),( pp ′′V

p

p'

p’’

p'

p’’

p

Page 12: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

12

Radiosity• Abbiamo definito l’uscita radiante (detta

anche radiosity) [Watt/m2] come l’energia per unità di tempo che lascia una superficie (in tutte le direzioni)

∫Ω

= ωθω dpLpB r cos),()(

dA

dB rΦ=

Page 13: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

13

Ipotesi principali

• superfici opache (che non trasmettono all'esterno l’energia incidente, per qualunque lunghezza d’onda e qualsiasi angolo d’incidenza),

• grigie (le caratteristiche radiative delle superfici sono indipendenti dalla lunghezza d’onda su tutto lo spettro),

• lambertiane (l’energia emessa e riflessa è uniforme in tutte le direzioni),

• la radiosità e l'emissività propria sono uniformi su ogni superficie,

• ogni superficie ha caratteristiche omogenee, che non variano da un punto all'altro

• il mezzo presente nella scena (atmosfera) è trasparente.

Page 14: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

14

Superfici Lambertiane

• Albedo• Per ogni angolo di incidenza la riflettanza

emisferica di una superficie diffondente è uguale a volte la riflettanza spettrale bidirezionale

ρωθρ

ωθφθ

)()(cos)()(

cos),,()(

pEpd pEp

d pLpB

rr

rrrrr

=

==

Ω

Ω

φθθθωθ

φ

θ

== ∫ ∫∫= =Ω

2

0

2

0

sincoscos ddd φθθω ddd sin=

ρρ )()( ppd =

Page 15: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

15

Radiosity• Con le ipotesi fatte scriviamo l’equazione

del rendering in termini di radiosity

∫Ω

′′′′′′′′+= ppppppppp dBVGBB de )(),(),()()()( ρ

p

p′

p ′′

Page 16: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

16

Radiosity

P’’

pDurand and Cutler

∫Ω

′′′′′′′′+= ppppppppp dBVGBB de )(),(),()()()( ρ

Dovremmo calcolare la radiosity di ogni punto di ogni superficie della scena

Troppo complesso!

Page 17: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

17

Forma discreta

A

iA

j

Supponiamo di suddividere gli oggetti nella scena in patch (facce) perfettamente diffusive (Lambertiane)

Consideriamo n facce, ciascuna di radiosity Bi e di area Ai

Page 18: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

18

Radiosity• Scriviamo il bilancio energetico in forma

discreta

Radiosity*area = energia emessa + energia riflessa

jj

n

jjiidiiii ABFAEAB ∑

=

+=1

∫Ω

′′′′′′′′+= ppppppppp dBVGBB de )(),(),()()()( ρ

Page 19: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

19

Equazione della radiosity

• Fij è il fattore di forma che indica la frazione di energia che lascia la faccia j ed incide sulla faccia i

• Reciprocità: Fij Ai = Fji Aj

j

n

jijidii BFEB ∑

=

+=1

Page 20: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

20

Radiosity: i fattori di formaRadiosity: i fattori di forma

• Il fattore di forma tra due patch rappresenta la frazione di energia che lasciando una patch i raggiunge l’altra j

• Dipende:- dalla presenza di ostacoli tra le patch- dalle dimensioni delle due patch- dal loro orientamento- dalla loro distanza- dalla loro forma

ijij

A A

ji

iij dAdAv

rAF

i j

∫∫ ⋅⋅

= 2

coscos1

θθ

Page 21: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

21

Fattori di forma• Vanno determinati in base alla geometria

ijij

A A

ji

iij dAdAv

rAF

i j

∫∫ ⋅⋅

= 2

coscos1

θθ

⎩⎨⎧

=vedono sinon A e A se

vedono siA e A se v

A e A tra visibilità di funzione la è v

ji

jiij

jiij

0

1

Page 22: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

22

Equazione della radiosity• L’equazione della radiosity deve essere

risolta per tutte le facce

• Sistema di equazioni lineari con n incognite

j

n

jijiii BFEB ∑

=

+=1

ρ EBFI =− )( ρ

Page 23: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

23

Soluzione del sistema

• I termini Ei sono non nulli solo per le superfici che emettono luce e rappresentano l’input nel sistema

• Il sistema deve essere scritto per ciascuna lunghezza d’onda o canale cromatico (Ei e ρ dipendono da λ

Page 24: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

24

Soluzione del sistema

• I fattori di forma vanno calcolati una sola volta

• La soluzione del sistema fornisce un solo valore per ciascuna faccia, devo poi applicare una interpolazione tipo Gouraud:– Interpolazione delle normali ai vertici– Interpolazione del colore ai vertici nella patch

Page 25: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

25

Esempio

Alan Watt

Colore costante applicato a tutta la patch

Interpolazione Gouraud

Page 26: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

26

Fattore di forma

emisfera una su direzioni le tutte in A lascia che radiante flusso

tedirettamen A colpisce A lascia che radiante flussoF

i

jiij =

ij

A A

ji

i

ijij dAdA

rA

vF

i j

∫∫ ⋅⋅

= 2

coscos

θθ

Page 27: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

27

Determinazione dei fattori di formaDeterminazione dei fattori di forma• La determinazione del fattore di forma presuppone il

calcolo di due integrali superficiali per ogni coppia di patch dell’ambiente

• La soluzione analitica può essere fatta solo per superfici elementari

• Nel caso di superfici generiche si utilizzano tecniche numeriche come quella dell’emicubo o dell’emisfera applicate sulla patch che,con un metodo di campionamento,determinano la frazione dell’emisfera o dell’emicubo su cuirisulta proiettata l’altra patch

Page 28: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

28

Calcolo fattore di forma: emisferaAnalogia di Nusselt (1981): il form factor è dato dal rapporto tra l’area della superficie proiettata sulla base dell’emisfera di raggio unitario e l’area totale della base circolare dell’emisfera

Page 29: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

29

Calcolo del fattore di forma: emisfera• Posizionare un’emisfera di raggio unitario sulla

superficie di area differenziale,• Suddividere la base dell’emisfera in porzioni di area

uguali e abbastanza piccole per ottenere una adeguata precisione,

• Calcolare la proiezione di ogni superficie della scena sull’emisfera,

• Calcolarne la proiezione ortogonale sulla base dell’emisfera,

• Valutare l’area occupata da ciascuna superficie, con un test di profondità per determinare la parte visibile di ogni superficie,

• Calcolare i fattori di forma come somma dei settori coperti da ciascuna superficie pesati con la rispettiva area, diviso l’area della base della semisfera.

Page 30: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

30

Metodo emicubo approssima emisfera

Il calcolo della visibilità sfrutta z-buffer!Ogni locazione sulle facce dell’emicubo può essere considerata come un pixel

Page 31: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

31

EmicuboDelta form factor di ciascuno degli R pixel coperti dalla proiezione di Aj sulla superficie dell’emicubo; si calcolano una sola volta; la precisione dipende dalla discretizzazione dell’emicubo; es: pixel sulla faccia top

x

y

Z

X

Y

AΔ = pixel area

∑=

Δ=Rq

qij FF..1

ΔFq =1

π (x 2 + y 2 +1)ΔA

Page 32: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

32

z

y

r

Z

X

Y

AΔ = pixel area

θi

θj

Pixel su faccialaterale

ΔFq =z

π (y 2 + z2 +1)ΔA

Page 33: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

33

Emicubo: passi

• Calcolo dei delta form-factors di ogni cella dell’emicubo

• Inizializzazione dell’emicubo

• Proiezione di tutta la scena sull’emicubo

• Calcolo dei form factors in funzione dei delta form-factors

Page 34: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

34

Form factor: tecnica di Malley• È una tecnica di ray tracing Monte Carlo• Rapporto tra numero dei colpi che hanno

intersecato Aj e il numero totale dei colpi

tot

jij N

NF =

Page 35: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

35

Confronto ray tracing - radiosity

• Il ray tracing opera sul piano immagine, dipendente dalla posizione dell’osservatore

•La radiosity sullo spazio mondo: se geometria e sorgenti di luce non cambiano, il risultato si può utilizzare per ambienti navigabili

Page 36: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

36

RadiosityDiscretizzazione dell’ambiente

1.Calcolo dei fattori di forma2.Soluzione del sistema

3.Rendering

Immagine

Modifica alla geometria della scena

Modifica alle informazioni dipendenti dalla lunghezza d’onda (colore e illuminazione)

Cambio di vista

Page 37: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

37

Applicazione

1. I fattori di forma sono calcolati una sola volta e possono poi essere usati per diverse riflettanze e sorgenti di luce

2. La soluzione è indipendente dal punto di vista. Per ciascuna faccia viene definito un valore di radiosity. Da questi valori vengono calcolati i valori ai vertici e utilizzati in uno schema interpolante di rendering

Page 38: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

38

Esempio

E. Angel

Page 39: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

39

Facce

Page 40: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

40

Fasi del metodo

• Modellazione: attenzione ai T-vertici

• Attenzione alle fessure

fessura

Page 41: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

41

Suddivisione adattativa

Page 42: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

42

Suddivisione adattiva (gerarchica) delle patch

• Le patch possono essere suddivise in sotto-patch nelle zone di superfici dove ci sono grandi variazioni di radiosity

• Quando una patch i è suddivisa in m sotto-patch s, devono essere calcolati tutti gli m nuovi form-factor Fsj ma non rispetto a i.

• La radiosity di ogni sottopatch s della patch i è calcolata con:

• La somma pesata dei form-factor delle sotto-patch s deve inoltre essere uguale a quella della patch suddivisa i:

∑=

+=nj

sjjieEis FMMM

..1,ρ

∑=

=ms

ssji

ij AFA

F..1

1

Page 43: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

43

Meshatura gerarchica• Importante per ridurre gli effetti di “light leak”

Page 44: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

44

Meshatura gerarchica

Page 45: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

45

Meshatura gerarchica

Page 46: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

46

Radiosity: soluzione numerica del sistemaRadiosity: soluzione numerica del sistema

• La soluzione del sistema può essere fatta con metodi numerici iterativi:-Metodo di Jacobi-Metodo di Gauss-Seidel-Metodo di Southwell

• Vari test hanno mostrato che il metodo di Gauss-Seidel è quello che minimizza l’errore a parità di passi di calcolo

Page 47: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

47

Metodo progressivo (shooting)

• Metodo dei raffinamenti progressivi (Cohen 1988) è una variante nella quale si procede iterativamente considerando prima le patch con maggior quantità di energia non ancora distribuita, per ottenere immagini rappresentabili già dopo un numero ridotto di passi di iterazione

Page 48: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

48

Metodo progressivo (shooting)• Il primo metodo di soluzione numerica del sistema di radiosity si

basa sul seguente principio: nella soluzione ogni patch raccoglie (gather) i contributi di radiazione riflessa/emessa dalle altre patch dell’ambiente

• Il metodo progressivo invece spara (shoot) la radiosity dalle patch verso l’ambiente, iniziando dalle patch sorgenti di luce e procedendo poi con le altre.

• Ad ogni iterazione successiva viene calcolato il contributo dato da ogni patch Mi a tutte le altre patch

• Per ogni patch viene tenuto conto di quanta radiosity è stata distribuita e quanta deve ancora essere distribuita ΔMi .

ΔMi di ogni patch aumenta ad ogni iterazione grazie ai nuovi contributi portati da altre patch

Page 49: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

49

Shooting

Fji = Fij AiAj

ΔMi = radiosity della patch i-esima non ancora distribuita.

I valori di radiosity Mi e ΔMi sono inizializzati a zero per le superfici non emissive e posti uguali al valore di emissività Mi

E per le sorgenti di luce.

⎥⎥⎥⎥

⎢⎢⎢⎢

Δ+

⎥⎥⎥⎥

⎢⎢⎢⎢

=

⎥⎥⎥⎥

⎢⎢⎢⎢

nin

i

i

i

old

n

new

n F

F

F

M

M

M

M

M

M

M

ρ

ρ

ρ

MMM22

11

2

1

2

1

Page 50: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

50

Altri effetti: mezzo partecipante

Page 51: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

51

Page 52: 1 Modelli Globali: il metodo di Radiosity Daniele Marini.

52

Modelli globali• Metodo a due passi di Wallace 1987

– I fase: con la radiosity si calcola la distribuzione della luce per interriflessioni diffuse

– II fase: con il ray tracing si calcolano aspetti di apparenza visiva come le riflessioni speculari, le trasparenze, il bump-mapping…..

– L’illuminamento diretto può essere calcolato nella I o II fase, ma non entrambe. Se è calcolato nella I le ombre sono diffuse, se è calcolato nella II le ombre sono nette (eccetto che per le sorgenti geometricamente estese)

• Altri metodi più avanzati:– Bidirectional ray tracing, Ray tracing Monte Carlo, Photon

mapping….