Präsentation herunterladen
Die Präsentation wird geladen. Bitte warten
Veröffentlicht von:Hinrich Feld Geändert vor über 8 Jahren
1
Photon Mapping Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko Projektpraktikum: Augmentierte Bildsynthese mit Photon Mapping
2
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Inhalt Photon Mapping
3
1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Photon Mapping Algorithmus wurde 1995 von HENRIK 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
4
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.
5
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
6
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
7
Photon Mapping 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
8
Photon Mapping 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
9
Photon Mapping 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
10
Photon Mapping 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
11
Photon Mapping 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
12
Photon Mapping 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
13
Photon Mapping 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
14
Photon Mapping 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
15
Photon Mapping 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
16
Photon Mapping 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
17
Photon Mapping 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
18
Photon Mapping 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 2.3. Klassendiagramm 3. Photon Scattering 4. Kd-Tree 5. Rendering Photon Emission Emission Photon Lighting Projection BSProjectionBackProjection float x,y,z; char p[4]; char theta, phi; short flag; Photon *ph; HDRI env; BVH bs; Photon *ph; BVH bs; Photon *ph;
19
Photon 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
20
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
21
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
22
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
23
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
24
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
25
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
26
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
27
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
28
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
29
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
30
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
31
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Photon Scattering Klassendiagramm:
32
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Kd-Tree PMkdTree PMkdTree(PhotonMap: array) search(x: int, d²: int): heap h getRadianceEstimateAt(x: int, w: vector): Lr getfilteredREAt(x: int, w: vector): Lrf PhotonMap m_Photons: Photon* Klassendiagramm:
33
Photon 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
34
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering Rendering Klassendiagramme:
35
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering Rendering Klassendiagramme:
36
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
37
● 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 Bildschirmpixel virtuell Fallunterscheidung je nach Schnittpunkt
38
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 real virtuell real
39
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Rendering real virtuell real Virtuell: Diffus – Radiance Estimate darstellen Photon Mapping
40
1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Rendering Photon Mapping 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
41
Photon Mapping 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering Rendering Superklasse:
Ähnliche Präsentationen
© 2024 SlidePlayer.org Inc.
All rights reserved.