Photon Mapping

Werbung
Photon Mapping
Projektpraktikum:
Augmentierte Bildsynthese mit
Photon Mapping
Jörg Hedrich
Lena Kohl
Ruth Recker
Anke Schneider
Pascal Sproedt
Benjamin Zapilko
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Inhalt
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Einleitung
Photon Mapping Algorithmus wurde 1995 von
HENRIK WANN JENSEN
zum ersten Mal veröffentlicht.
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
Einleitung
Photon Mapping
1. Einleitung
2. Photon Emission
Warum Photon Mapping?
Photon Mapping ist eine Erweiterung des Ray Tracings.
3. Photon Scattering
4. Kd-Tree
5. Rendering
Ray Tracing ist einfach und elegant, aber diffuse
Intereflections und Kaustiken können damit nicht gut
oder gar nicht dargestellt werden.
Einleitung
Photon Mapping
1. Einleitung
Photon Mapping
2. Photon Emission
Photon Mapping ist eine praktikable Technik, die fähig ist
3. Photon Scattering
globale Beleuchtung einschließlich Color Bleeding, Motion Blur,
Cautics,… zu simulieren.
4. Kd-Tree
Und stellt die gleiche Flexibilität wie Monte Carlo zur
5. Rendering
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
Photon Mapping
1. Einleitung
Photon Mapping
2. Photon Emission
2 Pass Methode:
3. Photon Scattering
4. Kd-Tree
1. - Photon Emission
- Photon Scattering
- Photon Storing in Photon Maps
5. Rendering
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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.2.2. Rückprojektion auf BS
3. Photon Scattering
4. Kd-Tree
5. Rendering
●
Position
●
Energie
●
Herkunftsrichtung
●
kd-Tree-Flag
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.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
Photon Emission
Photon Mapping
1. Einleitung
Emission
2. Photon Emission
2.1. HDRI-Environment
2.1.1. LatLong-Mapping
2.1.2. Beleuchtung
2.1.3. Photonenfarbe
2.1.4. Photonenkoordinaten
2.1.5. Photon-Datenstruktur
2.2. Projektion der BS
2.2.1. Verteilung auf Scheibe
2.2.2. Rückprojektion auf BS
2.3. Klassendiagramm
Photon
float x,y,z;
char p[4];
char theta, phi;
short flag;
5. Rendering
Photon *ph;
HDRI env;
BVH bs;
Projection
3. Photon Scattering
4. Kd-Tree
Lighting
BSProjection
BVH bs;
Photon *ph;
BackProjection
BVH bs;
Photon *ph;
Photon Scattering
Photon
PhotonMapping
Mapping
1. Einleitung
Scattering:
2. Photon Emission
Nach der Emission werden die Photonen durch die Szene
3. Photon Scattering
geschickt. --> Photonenpfade
4. Kd-Tree
5. Rendering
Wenn ein Photon auf ein Objekt trifft, kann es reflektieren,
absorbieren, oder transmittieren.
--> Verwendung von Russian Roulette
Photon Scattering
Photon Mapping
1. Einleitung
Photonenpfade:
2. Photon Emission
Photonen werden gleichverteilt von der 'Kreisscheibe' in
3. Photon Scattering
Richtung der Bounding Sphere geschickt
4. Kd-Tree
5. Rendering
real
virtuell
Vorsicht vor eventuellen Schnittpunkten mit realer Szene,
bevor Photon auf Bounding Sphere trifft
Photon Scattering
Photon Mapping
1. Einleitung
Photonenpfade (1.Schnittpunkt):
2. Photon Emission
- Photon trifft auf virtuelles Objekt:
3. Photon Scattering
4. Kd-Tree
5. Rendering
- 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
Photon Scattering
Photon Mapping
1. Einleitung
Photonenpfade:
2. Photon Emission
Schattenphotonen:
3. Photon Scattering
Wenn ein Photon auf ein virtuelles Objekt trifft, wird
4. Kd-Tree
berechnet, wo es auftreffen würde, wenn das virtuelle
5. Rendering
Objekt nicht da wäre. Der negative Lichtstrom wird
für diese Stelle gespeichert.
real
virtuell
Photon Scattering
Photon Mapping
1. Einleitung
Photonenpfade (1.Schnittpunkt):
2. Photon Emission
- Photon trifft auf reales Objekt:
3. Photon Scattering
- Photon wird verworfen
4. Kd-Tree
5. Rendering
- Photon trifft auf gar kein Objekt:
- Photon wird verworfen
Photon Scattering
Photon Mapping
1. Einleitung
2. Photon Emission
Photonenpfade nach dem 1. Schnittpunkt:
- Photon trifft auf virtuelles Objekt:
- Diffuse Oberfläche:
3. Photon Scattering
- Photon speichern
4. Kd-Tree
- Strahl weiterverfolgen
5. Rendering
- Spekulare Oberfläche:
- Reflektieren oder transmittieren
- Strahl weiterverfolgen
- Photon trifft auf reales Objekt:
- Photon speichern
- Color Bleeding berücksichtigen
- Photon trifft auf gar kein Objekt:
- Photon wird ignoriert
Photon Scattering
Photon Mapping
1. Einleitung
Russisches Roulette
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
●
Stochastische Technik
●
Entscheidung, ob ein Photon diffus oder spekular
reflektiert oder absorbiert wird
5. Rendering
●
Nur „wichtige“ Photonen werden weitergeleitet
●
Dadurch: Alle Photonen tragen ungefähr den gleichen
Anteil vom Lichtstrom
Photon Scattering
Photon Mapping
1. Einleitung
Zunächst für monochromatisches Licht:
2. Photon Emission
●
3. Photon Scattering
Gegeben: Oberfläche mit sowohl diffuser als auch
spekularer Reflexion
4. Kd-Tree
●
Ob ein Photon nun diffus oder spekular reflektiert oder
absorbiert wird, hängt von den Materialeigenschaften ab:
5. Rendering
●
Diffuser Reflexionskoeffizient:
●
Spekularer Reflexionskoeffizient:
d
s
Photon Scattering
Photon Mapping
1. Einleitung
Trifft ein Photon auf eine Oberfläche, so verwenden wir
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
eine gleichmäßig verteilte Zufallsvariable
0,1
und treffen so die Entscheidung über die Art der
Reflexion:
0,
d
d
,
s
diffuse Reflexion
s
d
d
,1
spekulare Reflexion
Absorption
Photon Scattering
Photon Mapping
1. Einleitung
Farbiges Licht:
2. Photon Emission
●
3. Photon Scattering
●
Wahrscheinlichkeit für Reflexion wird z.B. anhängig
von der totalen reflektierten Energie berechnet
Wahrscheinlichkeit für diffuse Reflexion
4. Kd-Tree
d,r
5. Rendering
d ,avg
●
●
d ,g
d ,b
3
Mit d , r = als Reflexionskoeffizient für den roten
Farbkanal usw.
Die durchschnittliche Wahrscheinlichkeit für spekulare
Reflexion kann analog berechnet werden
Photon Scattering
Photon Mapping
1. Einleitung
●
Wahrscheinlichkeit für Absorption:
2. Photon Emission
a,avg
1
d,avg
s,avg
3. Photon Scattering
4. Kd-Tree
5. Rendering
Entscheidung wird getroffen über:
0,
diffuse Reflexion
d ,avg
d ,avg
s ,avg
,
s, avg
d , avg
d , avg
,1
spekulare Reflexion
Absorption
Photon Scattering
Photon Mapping
1. Einleitung
●
2. Photon Emission
3. Photon Scattering
●
4. Kd-Tree
5. Rendering
●
Die Energie des reflektierten Photons muss jetzt noch
skaliert werden:
Bei spekularer Reflexion erhalten wir:
s, r
i ,r
s ,r
s, g
i, g
s ,g
s, avg
s, b
i, b
s ,b
s, avg
Wobei
s,r
,
Photons und
s ,g
s , avg
,
i ,r
die Energie des reflektierten
s ,b
,
i ,g
,
i,b
eintreffenden Photons ist
die Energie des
Photon Scattering
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Klassendiagramm:
Kd-Tree
Photon
PhotonMapping
Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
Klassendiagramm:
PMkdTree
PMkdTree(PhotonMap: array)
search(x: int, d²: int): heap h
getRadianceEstimateAt(x: int, w: vector): Lr
getfilteredREAt(x: int, w: vector): Lrf
5. Rendering
PhotonMap
m_Photons: Photon*
Kd-Tree
Photon
PhotonMapping
Mapping
1. Einleitung
Radiance Estimate:
2. Photon Emission
• Berechnung der reflektierten Leuchtdichte an Schnittpunkt x
3. Photon Scattering
4. Kd-Tree
• Zu Punkt x werden in Radius r die maximal n nächsten
Photonen gesucht
5. Rendering
• Durch Aufspannung einer Kugel können evtl. in Ecken und
an Kanten Fehler auftreten
Verwendung eines Filters
Rendering
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Klassendiagramme:
Rendering
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Klassendiagramme:
Rendering
Photon Mapping
1. Einleitung
2. Photon Emission
●
Erweiterung des Raytracers
●
überschreiben der entsprechenden Methoden
–
Raytracer::renderToFile(
–
Raytracer::trace(ray : const Ray&, depth : int)
–
Raytracer::shade(hit : Intersection&, depth int)
3. Photon Scattering
4. Kd-Tree
5. Rendering
●
radiance estimate aus kd-Tree
scene : Scene*,
filename : char*)
Rendering
Photon Mapping
1. Einleitung
2. Photon Emission
●
Für jedes Pixel Strahl aus Kameraursprung und Pixel
bilden und weiterverfolgen
• Fallunterscheidung je nach Schnittpunkt
3. Photon Scattering
4. Kd-Tree
5. Rendering
Bildschirmpixel
virtuell
real
real
Rendering
Photon Mapping
1. Einleitung
Real:
–
Radiance Estimate auf Pixel von Bild aufrechnen
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
virtuell
real
real
Rendering
Photon Mapping
1. Einleitung
Virtuell: Diffus
–
Radiance Estimate darstellen
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
virtuell
real
real
Rendering
Photon Mapping
1. Einleitung
Virtuell: Spiegelnd/Transparent
–
2. Photon Emission
Rekursive Strahlverfolgung bis diffuses Objekt oder
maximale Rekursionstiefe:
●
3. Photon Scattering
●
4. Kd-Tree
●
Kein Schnittpunkt: Pixel aus EnvMap darstellen
Real: Radiance Estimate Foto Pixel aufrechenen
und Ergebins darstellen
Virtuell: Radiance Estimate darstellen
5. Rendering
real
virtuell
real
Rendering
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Superklasse:
Herunterladen