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

Post on 02-May-2015

219 views 3 download

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

Photon Mapping

Davide Gadia

Davide Selmo

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)

Photon Mapping

• Ideato da Henrik Wann Jensen

• Sviluppato sui modelli statistici Montecarlo

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

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

Algoritmo

• Passo 1:photon tracing

• Passo 2:rendering

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

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

Passo 1: Scattering

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

– Trasmesso

– Assorbito

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

Passo 1: Storage

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

• Serve una struttura dati adeguata

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)

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

Passo 1: Storage

Scena Photon Map

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

Passo 2: Rendering

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

Photon Mapping

• Equazione del rendering

wdnwwxLwwxfwxLwxL irer

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

x

w

w’

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

Equazione del rendering

wdnwwxLwwxfwxLwxL irer

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

wdnwwxLwwxf

wdnwwxLwwxf

wdnwwxLwxLwwxf

wdnwwxLwwxfwxL

diDr

ciDr

diciSr

lire

))(,(),,(

))(,(),,(

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

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

,,

,,

,,,

,Illuminazionediretta

Riflessionispeculari

Caustiche

Illuminazioneindiretta

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

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

Stima della radianza

Esempi Rendering

Ray tracing

Esempi Rendering

Ray tracing + ombre sfumate

Esempi Rendering

+ caustiche

Esempi Rendering

+ global illumination