Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di...

25
Photon Mapping Davide Gadia Davide Selmo

Transcript of Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di...

Page 1: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Photon Mapping

Davide Gadia

Davide Selmo

Page 2: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Global Illumination

• Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo

• Principali approcci:– Elementi finiti (es. radiosity)– Campionamento puntiforme (es. ray tracing)

Page 3: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Photon Mapping

• Ideato da Henrik Wann Jensen

• Sviluppato sui modelli statistici Montecarlo

• Algoritmo in due passi– Emissione fotoni dalle sorgenti– Rendering

Page 4: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Algoritmo

• Passo 1:– Emissione di fotoni dalle sorgenti di luce e

tracciamento all’interno della scena– Creazione della mappa 3D di fotoni

• Passo 2:– Rendering della scena utilizzando le

informazioni contenute nella mappa di fotoni per la stima della radianza riflessa sulle superfici

Page 5: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Algoritmo

• Passo 1:photon tracing

• Passo 2:rendering

Page 6: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Algoritmo: Passo 1

• Emissione– Emissione dei fotoni dalla sorgenti di luce

– Solitamente bisogna emettere più di 10.000 fotoni

• Scattering– Determinare come i fotoni vengono dispersi,

all’interno della scena

• Storing– Salvataggio delle informazioni sui fotoni assorbiti dalle

superfici diffusive

Page 7: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Emissione

• L’energia associata alla sorgente viene divisa sui fotoni emessi

• Possono essere simulate diverse tipologie di luci

Puntiforme Sferica Quadrata Forma generica

Page 8: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Scattering

• Quando un fotone colpisce una superficie può essere:– Riflesso

– Trasmesso

– Assorbito

Page 9: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Scattering

• Il tipo di scattering può essere deciso tramite il metodo della Roulette russa:

toassorbimen ]1,[

speculare eriflession ],[

diffusa eriflession ],0[

:regolala secondo Scelgo

1

speculare eriflession di probabiltà ]1,0[

diffusa eriflession di probabiltà ]1,0[

casuale e variabil]1,0[

sd

sdd

d

sd

s

d

pp

ppp

p

pp

p

p

Page 10: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Storage

• I fotoni assorbiti vengono salvati nella Photon map– Potenza– Posizione – Direzione incidente

• Serve una struttura dati adeguata

Page 11: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Storage

• Per memorizzare la mappa dei fotoni si utilizza un kd-tree (suddivisione spaziale 3D della scena)

• A ogni nodo corrisponde un piano di suddivisione ortogonale agli assi– il sottoalbero sinistro contiene fotoni al di sotto del

piano, il destro al di sopra

• Il kd-tree può essere bilanciato, considerata la coerenza della luce nella scena

• Il kd-tree può essere esplorato in O(logN)

Page 12: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Storage

• Vengono utilizzate diverse mappe– Global map

• Riflessioni diffuse

– Caustics map• Generate lanciando fotoni direttamente su superfici

lucide e riflettenti

• Molti campioni in una piccola area

– Mezzi partecipanti

Page 13: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 1: Storage

Scena Photon Map

Page 14: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 2: Rendering

• L’informazione contenuta nella mappa viene usata per stimare la radianza riflessa

• Un numero N di fotoni viene considerato per la stima nel punto x

Page 15: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Passo 2: Rendering

• L’integrale dell’equazione del rendering viene diviso in 4 componenti– Illuminazione diretta– Speculare– Indiretta– Caustiche

Page 16: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Photon Mapping

• Equazione del rendering

wdnwwxLwwxfwxLwxL irer

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

x

w

w’

Page 17: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Equazione del rendering

• Suddivido le componenti speculare e diffusiva della BRDF

• Suddivido il termine di radianza incidente tenendo conto dei contributi di:– Luce diretta

– Caustiche

– Luce indiretta

),,(),,(),,( ,, wwxfwwxfwwxf DrSrr

),(),(),(),( ,,, wxLwxLwxLwxL dicilii

Page 18: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Equazione del rendering

wdnwwxLwwxfwxLwxL irer

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

wdnwwxLwwxf

wdnwwxLwwxf

wdnwwxLwxLwwxf

wdnwwxLwwxfwxL

diDr

ciDr

diciSr

lire

))(,(),,(

))(,(),,(

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

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

,,

,,

,,,

,Illuminazionediretta

Riflessionispeculari

Caustiche

Illuminazioneindiretta

Page 19: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Calcolo della radianza

Illuminazione diretta

Riflessioni speculari

Illuminazione indiretta

Caustiche

Ray tracing

Monte Carlo Ray tracingcon importance samplingbasato su fr,S

Caustics Photon Map

Global Photon Map

Page 20: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Stima della radianza

• Ad ogni fotone viene associato un flusso

• La stima della radianza in un punto avviene considerando N campioni selezionati nell’intorno di raggio r del punto x

),(),,(1

),(1

2p

N

p

pprr wxwwxfr

wxL

)( pp w

Page 21: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Stima della radianza

Page 22: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Esempi Rendering

Ray tracing

Page 23: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Esempi Rendering

Ray tracing + ombre sfumate

Page 24: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Esempi Rendering

+ caustiche

Page 25: Photon Mapping Davide Gadia Davide Selmo. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di.

Esempi Rendering

+ global illumination