photon mapping

41
Photon Mapping Photon Mapping Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko Projektpraktikum: Augmentierte Bildsynthese mit Photon Mapping

Upload: finn

Post on 27-Jan-2016

73 views

Category:

Documents


0 download

DESCRIPTION

Photon Mapping. Projektpraktikum: Augmentierte Bildsynthese mit Photon Mapping. Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko. Photon Mapping. Inhalt. 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Photon Mapping

Photon Mapping Photon Mapping

Jörg HedrichLena KohlRuth ReckerAnke SchneiderPascal SproedtBenjamin Zapilko

Projektpraktikum:

Augmentierte Bildsynthese mitPhoton Mapping

Page 2: Photon Mapping

Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Inhalt Photon Mapping

Page 3: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Mapping Algorithmus wurde 1995 vonHENRIK WANN JENSEN

zum ersten Mal veröffentlicht.

Einleitung

Kurzbiographie:1996-1998 arbeitete er an einer

kommerziellen Rendering- Software

1998-1999 Massachusetts Institute of Technology

1999-2002 forschte er an der University Stanford

seit 2002 ist er Prof. an der University of California in San Diego

Für seinen Photon Mapping Algorithmus erhielt er von der technische Uni Dänemarks seinen M.Sc. und Dr. Inf.

Auszeichnungen:- 2004 Academy Award- 2003 Best Paper Award- einer von der ersten 10 Wissenschaftlern

2004- Sloan Fellow Auszeichnung

Page 4: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Warum Photon Mapping?

Photon Mapping ist eine Erweiterung des Ray Tracings.

Einleitung

Ray Tracing ist einfach und elegant, aber

diffuse Intereflections und Kaustiken

können damit nicht gut oder gar nicht

dargestellt werden.

Page 5: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Mapping

Photon Mapping ist eine praktikable Technik, die

fähig ist globale Beleuchtung einschließlich Color

Bleeding, Motion Blur, Cautics,… zu simulieren.

Und stellt die gleiche Flexibilität wie Monte Carlo zur

Verfügung, braucht aber nur ein Bruchteil der

Berechnungszeit.

Heutzutage wird Photon Mapping meist in high- end

Rendering Software eingesetzt und für

architektonische Simulationen, Computerspiele und

Filme verwendet.

Einleitung

Page 6: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Mapping

2 Pass Methode:

1. - Photon Emission

- Photon Scattering

- Photon Storing in Photon Maps

Photon Map: + können in Szenen von Mio

von Objekten und

komplexen Materialien

verwendet werden

+ Unabhängig von der

Geometrie der Szene

+ Speichern pro Photon den Lichtstrom, den

Einfallswinkel und die

Treffer-Position

+ Organisiert als kd-trees

SCHLÜSSELCHARAKTERISTIK

2. - Rendering

Einleitung

Page 7: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Aussenden von Photonen

● Gewinn der photometrischen Energie aus HDRI

● Möglichst homogene Energieverteilung

Page 8: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● HDRI als beleuchtende Umgebung

● Projektion der Bounding-Sphere des Objekts

● Setzen der Photonen

Page 9: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● LatLong-2D-Mapping

● Bestimmen der Beleuchtung

● Energiehomogenität

● Gleichverteilung der Photonen eines Pixels auf projizierter Kreisscheibe

Page 10: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● HDR-Shop

● Mappen des Light-Probe-HDRI auf eine Latitude/ Longitude-2D-Repräsentation

Page 11: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Ges.: Pixelspezifische Anzahl an Photonen

● Lichtstrom/Pixel= Leuchtdichte * Raumwinkel * Empfängerfläche

Page 12: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Farbiger Lichtstrom/Pixel aus Lichtstrom und Leuchdichte des Pixels sowie Leuchtdichte der einzelnen Kanäle

● Skalieren der Pixel-Farbe durch Photonenanzahl auf Photonen-Farbe

Page 13: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Richtung entlang z˜-Achse

● Achsen x˜, y˜ in Tangentialebene an Einheitskugel

Page 14: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Position

● Energie

● Herkunftsrichtung

● kd-Tree-Flag

Page 15: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Projektion der Szene aus Sicht des beleuchtenden Pixels

● Rückprojektion der Photonen auf BS des Objekts

Page 16: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● “Zielen” des Photons an tatsächlicher Pixelposition auf Objektzentrum

● Verteilen der Photonen über gleichverteilten Wert

● Simulation eines entfernten directional Lights

Page 17: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS

3. Photon Scattering

4. Kd-Tree

5. Rendering

● Zu verhindern: Direktes Treffen realer Objekte

● Vorraussetzung: keine realen Objekte in der BS

● Projektion des Kreispunktes p auf die BS

Page 18: Photon Mapping

Photon Mapping Photon Mapping

Photon Emission Photon Mapping

1. Einleitung

2. Photon Emission2.1. HDRI-Environment2.1.1. LatLong-Mapping2.1.2. Beleuchtung2.1.3. Photonenfarbe2.1.4. Photonenkoordinaten2.1.5. Photon-Datenstruktur2.2. Projektion der BS2.2.1. Verteilung auf Scheibe2.2.2. Rückprojektion auf BS2.3. Klassendiagramm

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Emission

Emission

Photon Lighting

Projection

BSProjection BackProjection

float x,y,z;

char p[4];

char theta, phi;

short flag;

Photon *ph;

HDRI env;

BVH bs;

BVH bs;

Photon *ph;

BVH bs;

Photon *ph;

Page 19: Photon Mapping

Photon MappingPhoton Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Scattering:

Nach der Emission werden die Photonen durch die

Szene geschickt. --> Photonenpfade

Wenn ein Photon auf ein Objekt trifft, kann es

reflektieren, absorbieren, oder transmittieren.

--> Verwendung von Russian Roulette

Page 20: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Photonenpfade:

Photonen werden gleichverteilt von der

'Kreisscheibe' in Richtung der Bounding Sphere

geschickt

real virtuell

Vorsicht vor eventuellen Schnittpunkten mit realer Szene, bevor Photon auf Bounding Sphere trifft

Page 21: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Photonenpfade (1.Schnittpunkt):

- Photon trifft auf virtuelles Objekt:

- Objekt hat diffuse Oberfläche:

- Photon speichern

- Zufälliges Photon weiterverfolgen

- Schattenphoton speichern

- Objekt hat spekulare Oberfläche:

- Photon nicht speichern

- reflektiertes/gebrochenes Photon

weiterverfolgen (Fresnel Reflexion)

- Schattenphoton speichern

Page 22: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Photonenpfade:

Schattenphotonen:

Wenn ein Photon auf ein virtuelles Objekt

trifft, wird

berechnet, wo es auftreffen würde, wenn

das virtuelle

Objekt nicht da wäre. Der negative

Lichtstrom wird für diese Stelle

gespeichert.real virtuell

Page 23: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Photonenpfade (1.Schnittpunkt):

- Photon trifft auf reales Objekt:

- Photon wird verworfen

- Photon trifft auf gar kein Objekt:

- Photon wird verworfen

Page 24: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Photonenpfade nach dem 1. Schnittpunkt:

- Photon trifft auf virtuelles Objekt:

- Diffuse Oberfläche:

- Photon speichern

- Strahl weiterverfolgen

- Spekulare Oberfläche:

- Reflektieren oder transmittieren

- Strahl weiterverfolgen

- Photon trifft auf gar kein Objekt:

- Photon wird ignoriert

- Photon trifft auf reales Objekt:

- Photon speichern

- Color Bleeding berücksichtigen

Page 25: Photon Mapping

Photon Mapping

Russisches Roulette

● Stochastische Technik

● Entscheidung, ob ein Photon diffus oder

spekular reflektiert oder absorbiert wird

● Nur „wichtige“ Photonen werden

weitergeleitet

● Dadurch: Alle Photonen tragen ungefähr den

gleichen Anteil vom Lichtstrom

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Page 26: Photon Mapping

Photon Mapping

Zunächst für monochromatisches Licht:

● Gegeben: Oberfläche mit sowohl diffuser als

auch spekularer Reflexion

● Ob ein Photon nun diffus oder spekular

reflektiert oder absorbiert wird, hängt von

den Materialeigenschaften ab:

● Diffuser Reflexionskoeffizient:

● Spekularer Reflexionskoeffizient:

Photon Scattering

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

d

s

Page 27: Photon Mapping

Photon Mapping

Trifft ein Photon auf eine Oberfläche, so

verwenden wir eine gleichmäßig verteilte

Zufallsvariable und treffen so

die Entscheidung über die Art der Reflexion:

diffuse Reflexion

spekulare

Reflexion

Absorption

Photon Scattering

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

0,1

0, d

d , s d

s d ,1

Page 28: Photon Mapping

Photon Mapping

Farbiges Licht:

● Wahrscheinlichkeit für Reflexion wird z.B. anhängig von der totalen reflektierten Energie berechnet

● Wahrscheinlichkeit für diffuse Reflexion

● Mit = als Reflexionskoeffizient für den roten Farbkanal usw.

● Die durchschnittliche Wahrscheinlichkeit für spekulare Reflexion kann analog berechnet werden

Photon Scattering

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering d , avgd , r d , g d ,b

3

d , r

Page 29: Photon Mapping

Photon Mapping

● Wahrscheinlichkeit für Absorption:

Entscheidung wird getroffen über:

diffuse Reflexion

spekulare

Reflexion

Absorption

Photon Scattering

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

a , avg 1 d , avg s , avg

0, d , avg

d ,avg , s , avg d , avg

s ,avg d , avg ,1

Page 30: Photon Mapping

Photon Mapping

● Die Energie des reflektierten Photons muss jetzt noch skaliert werden:

● Bei spekularer Reflexion erhalten wir:

● Wobei die Energie des

reflektierten Photons und die

Energie des eintreffenden Photons ist

Photon Scattering

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

s , r i ,r s ,r s , avg

s , g i , g s , g s , avg

s , b i , b s ,b s , avg

s , r , s , g , s ,b

i ,r , i , g , i , b

Page 31: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Photon Scattering

Klassendiagramm:

Page 32: Photon Mapping

Photon MappingPhoton Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Kd-Tree

PMkdTreePMkdTree(PhotonMap: array)search(x: int, d²: int): heap hgetRadianceEstimateAt(x: int, w: vector): LrgetfilteredREAt(x: int, w: vector): Lrf

PhotonMapm_Photons: Photon*

Klassendiagramm:

Page 33: Photon Mapping

Photon MappingPhoton Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Kd-Tree

Radiance Estimate:

• Berechnung der reflektierten Leuchtdichte an Schnittpunkt x

• Zu Punkt x werden in Radius r die maximal n nächsten Photonen gesucht

• Durch Aufspannung einer Kugel können evtl. in Ecken und an Kanten Fehler auftreten

Verwendung eines Filters

Page 34: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4.. Kd-Tree

5. Rendering

Rendering

Klassendiagramme:

Page 35: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4.. Kd-Tree

5. Rendering

Rendering

Klassendiagramme:

Page 36: Photon Mapping

Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Rendering

● Erweiterung des Raytracers

● überschreiben der entsprechenden Methoden

– Raytracer::renderToFile( scene : Scene*,

filename : char*)

– Raytracer::trace(ray : const Ray&, depth : int)

– Raytracer::shade(hit : Intersection&, depth int)

● radiance estimate aus kd-Tree

Photon Mapping

Page 37: Photon Mapping

Photon Mapping

● Für jedes Pixel Strahl aus Kameraursprung und Pixel bilden und weiterverfolgen

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Rendering Photon Mapping

real

real

Bildschirmpixel

virtuell

• Fallunterscheidung je nach Schnittpunkt

Page 38: Photon Mapping

Photon Mapping

Real:

– Radiance Estimate auf Pixel von Bild aufrechnen

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Rendering Photon Mapping

realvirtuell

real

Page 39: Photon Mapping

Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Rendering

realvirtuell

real

Virtuell: Diffus

– Radiance Estimate darstellen

Photon Mapping

Page 40: Photon Mapping

Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4. Kd-Tree

5. Rendering

Rendering Photon Mapping

real

real

virtuell

Virtuell: Spiegelnd/Transparent

– Rekursive Strahlverfolgung bis diffuses Objekt oder maximale Rekursionstiefe:

● Kein Schnittpunkt: Pixel aus EnvMap darstellen

● Real: Radiance Estimate Foto Pixel aufrechenen und Ergebins darstellen

● Virtuell: Radiance Estimate darstellen

Page 41: Photon Mapping

Photon Mapping Photon Mapping

1. Einleitung

2. Photon Emission

3. Photon Scattering

4.. Kd-Tree

5. Rendering

Rendering

Superklasse: