1 / 41

Photon Mapping

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.

finn
Download Presentation

Photon Mapping

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Photon Mapping Inhalt 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  3. Einleitung Photon Mapping Photon Mapping Algorithmus wurde 1995 von HENRIK WANN JENSEN zum ersten Mal veröffentlicht. 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering 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. Einleitung Photon Mapping Warum Photon Mapping? Photon Mapping ist eine Erweiterung des Ray Tracings. 1. Einleitung 2. Photon Emission 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 garnicht dargestellt werden.

  5. Einleitung Photon Mapping 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. 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  6. Einleitung Photon Mapping 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  7. Photon Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 undLeuchdichte des Pixels sowie Leuchtdichte der einzelnen Kanäle • Skalieren der Pixel-Farbe durch Photonenanzahl auf Photonen-Farbe

  13. Photon Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Mapping 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 Emission Photon Emission Photon Mapping 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 Emission Photon Lighting float x,y,z; char p[4]; char theta, phi; short flag; Photon *ph; HDRI env; BVH bs; Projection BSProjection BackProjection BVH bs; Photon *ph; BVH bs; Photon *ph;

  19. Photon Scattering Photon Mapping 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  20. Photon Scattering real virtuell Photon Mapping Photonenpfade: Photonen werden gleichverteilt von der 'Kreisscheibe' in Richtung der Bounding Sphere geschickt 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering Vorsicht vor eventuellen Schnittpunkten mit realer Szene, bevor Photon auf Bounding Sphere trifft

  21. Photon Scattering Photon Mapping 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  22. Photon Scattering real virtuell Photon Mapping 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ürdiese Stelle gespeichert. 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  23. Photon Scattering Photon Mapping Photonenpfade (1.Schnittpunkt): - Photon trifft auf reales Objekt: - Photon wird verworfen - Photon trifft auf gar kein Objekt: - Photon wird verworfen 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  24. Photon Scattering Photon Mapping 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering - Photon trifft auf reales Objekt: - Photon speichern - Color Bleeding berücksichtigen - Photon trifft auf gar kein Objekt: - Photon wird ignoriert

  25. Photon Scattering 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

  26. Photon Scattering 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: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  27. Photon Scattering 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  28. Photon Scattering 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  29. Photon Scattering • Wahrscheinlichkeit für Absorption: Entscheidung wird getroffen über: diffuse Reflexion spekulare Reflexion Absorption 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  30. Photon Scattering • 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  31. Photon Scattering Photon Mapping Klassendiagramm: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  32. Kd-Tree Photon Mapping Klassendiagramm: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering 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*

  33. Kd-Tree Photon Mapping Radiance Estimate: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering • 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. Rendering Photon Mapping Klassendiagramme: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering

  35. Rendering Photon Mapping Klassendiagramme: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering

  36. Rendering Photon Mapping • 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering

  37. real virtuell Rendering 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 • Fallunterscheidung je nach Schnittpunkt Bildschirmpixel real

  38. real virtuell Rendering Photon Mapping Real: • Radiance Estimate auf Pixel von Bild aufrechnen 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering real

  39. real Rendering Photon Mapping Virtuell: Diffus • Radiance Estimate darstellen 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering virtuell real

  40. real Rendering Photon Mapping 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 1. Einleitung 2. Photon Emission 3. Photon Scattering 4. Kd-Tree 5. Rendering virtuell real

  41. Rendering Photon Mapping Superklasse: 1. Einleitung 2. Photon Emission 3. Photon Scattering 4.. Kd-Tree 5. Rendering

More Related