Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

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

Ähnliche Präsentationen


Präsentation zum Thema: "Photon Mapping Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko Projektpraktikum: Augmentierte Bildsynthese mit Photon."—  Präsentation transkript:

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:


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

Ähnliche Präsentationen


Google-Anzeigen