photon mapping davide gadia davide selmo. global illumination necessità di simulare effetti di...

25
Photon Mapping Davide Gadia Davide Selmo

Upload: venceslao-tarantino

Post on 02-May-2015

219 views

Category:

Documents


3 download

TRANSCRIPT

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