photon mapping daniele marini. global illumination necessità di simulare effetti di illuminazione...

27
Photon Mapping Daniele Marini

Upload: loris-alfieri

Post on 02-May-2015

214 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Photon Mapping

Daniele Marini

Page 2: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Algoritmo

• Passo 1:photon tracing

• Passo 2:rendering

Page 6: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Passo 1: Scattering

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

– Trasmesso

– Assorbito

Page 9: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Passo 1: Storage

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

• Serve una struttura dati adeguata

Page 11: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 nel semispazio negativo rispetto al piano, il destro conteine fotoni nel ssemispazio positivo

• 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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Caustiche

Page 14: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Caustiche

• Inviluppo di una famiglia di raggi di luce

QuickTime™ e undecompressore

sono necessari per visualizzare quest'immagine.

Page 15: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Passo 1: Storage

Scena Photon Map

Page 16: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 17: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Passo 2: Rendering

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

Page 18: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Photon Mapping

• Equazione del rendering

∫Ω

′⋅′′′+= wdnwwxLwwxfwxLwxL irer

rrrrrrrr))(,(),,(),(),(

x

w

w’

Page 19: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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

rrrrrr ′+′=′

),(),(),(),( ,,, wxLwxLwxLwxL dicilii ′+′+′=′ rrrr

Page 20: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Equazione del rendering

=′⋅′′′+= ∫Ω

wdnwwxLwwxfwxLwxL irerrrrrrrrr

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

Ω

Ω

Ω

Ω

′⋅′′′

+′⋅′′′

+′⋅′′+′′

+′⋅′′′+

wdnwwxLwwxf

wdnwwxLwwxf

wdnwwxLwxLwwxf

wdnwwxLwwxfwxL

diDr

ciDr

diciSr

lire

rrrrrr

rrrrrr

rrrrrrr

rrrrrrr

))(,(),,(

))(,(),,(

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

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

,,

,,

,,,

,Illuminazionediretta

Riflessionispeculari

Caustiche

Illuminazioneindiretta

Page 21: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 22: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

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 23: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Stima della radianza

Page 24: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Esempi Rendering

Ray tracing

Page 25: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Esempi Rendering

Ray tracing + ombre sfumate

Page 26: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Esempi Rendering

+ caustiche

Page 27: Photon Mapping Daniele Marini. Global Illumination Necessità di simulare effetti di illuminazione globali per ottenere un maggior grado di realismo Principali

Esempi Rendering

+ global illumination