photon mapping jörg hedrich lena kohl ruth recker anke schneider pascal sproedt benjamin zapilko...
TRANSCRIPT
Photon Mapping Photon Mapping
Jörg HedrichLena KohlRuth ReckerAnke SchneiderPascal SproedtBenjamin Zapilko
Projektpraktikum:
Augmentierte Bildsynthese mitPhoton Mapping
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Inhalt Photon Mapping
Photon Mapping Photon Mapping1. 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
Photon Mapping Photon Mapping1. 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.
Photon Mapping Photon Mapping1. 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
Photon Mapping Photon Mapping1. 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
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
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
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
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
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
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
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
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
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
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
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
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;
Photon MappingPhoton Mapping1. 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
Photon Mapping Photon Mapping1. 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
Photon Mapping Photon Mapping1. 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
Photon Mapping Photon Mapping1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Photon Scattering
Photonenpfade:
Schattenphotonen:Wenn ein Photon auf ein virtuelles Objekt trifft, wirdberechnet, wo es auftreffen würde, wenn das virtuelleObjekt nicht da wäre. Der negative Lichtstrom wird für diese Stelle gespeichert.
real virtuell
Photon Mapping Photon Mapping1. 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
Photon Mapping Photon Mapping1. 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
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
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
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
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
3d , r
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
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
Photon Mapping Photon Mapping1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Photon Scattering
Klassendiagramm:
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:
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
Photon Mapping Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Rendering
Klassendiagramme:
Photon Mapping Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Rendering
Klassendiagramme:
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
Photon Mapping● Für jedes Pixel Strahl aus Kameraursprung
und Pixel bilden und weiterverfolgen1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Rendering Photon Mapping
realreal
Bildschirmpixel
virtuell
• Fallunterscheidung je nach Schnittpunkt
Photon MappingReal:
– 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
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
Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4. Kd-Tree
5. Rendering
Rendering Photon Mapping
realreal
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
Photon Mapping Photon Mapping
1. Einleitung
2. Photon Emission
3. Photon Scattering
4.. Kd-Tree
5. Rendering
Rendering
Superklasse: