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

Slides:



Advertisements
Ähnliche Präsentationen
Algorithmen und Datenstrukturen
Advertisements

Hauptseminar - Computer Graphics
Vorlesung Programmieren II
Polynomial Root Isolation
Gruppenwettbewerb. Gruppenwettbewerb Aufgabe G1 (8 Punkte)
• • • • • 3.2 Die projektive Erweiterung des E³
DIE HÜLLKURVE Beispiel aus dem Alltag:
Kollisionen erkennen Kollisions- und Schnittpunkttests auf Dreieckbasis Kollisions- und Schnittpunkttests auf Viereckbasis Einsatz von achsenausgerichteten.
Graphische Datenverarbeitung IV Dr. Markus Heitz.
FB Informatik Prof. Dr. R.Nitsch Programmieren 2 Future Car Projekt Reiner Nitsch
Licht und Schatten Richard Göbel.
FH-Hof Automatisches Erzeugen von Geometrie Richard Göbel.
5. Beleuchtung und Schattierung
Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung
Fernseher LCD- Bildschirme.
Universität Dortmund, Lehrstuhl Informatik 1 EINI II Einführung in die Informatik für Naturwissenschaftler und Ingenieure.
Java3d „Licht und Material“
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung In welcher Masche liegt der Punkt p?
Ein Seminar in Computer Grafik von Johannes Bochmann
Verteilte Algorithmen
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Special Effects Realistischeres Rendern einer Scene.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
Grundgrößen der Lichttechnik
Effiziente Algorithmen
Visualisieren von Licht
Universität zu Köln Institut für Historisch-Kulturwissenschaftliche Informationsverarbeitung Prof. Dr. Manfred Thaller AM 3 Übung: Softwaretechnologie.
Einführung in die Programmierung
LED-Beleuchtung von Innenräumen
Computergraphische Visualisierungs- verfahren für 3D-Stadtmodelle
Institut für Kartographie und Geoinformation Prof. Dr. Lutz Plümer Geoinformation II Vorlesung 7 SS 2000 Punkt-in-Polygon-Verfahren I (Trapezkarte)
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Black Box Algorithmen Hartmut Klauck Universität Frankfurt SS
Effiziente Algorithmen
Effiziente Algorithmen
Information und Kommunikation Hartmut Klauck Universität Frankfurt SS
Information und Kommunikation
How to make a Pixar Movie
Einführung in die Programmierung Wintersemester 2009/10 Prof. Dr. Günter Rudolph Lehrstuhl für Algorithm Engineering Fakultät für Informatik TU Dortmund.
4.3 Beleuchtung und Schattierung
4.7 Globale Beleuchtungsmodelle
§5-1 §5 Mapping-Techniken Computergrafik - SS Motivation Bisher sind alle Oberflächen (polygonale Objekte, später auch parametrisierte Freiformflächen)
Vom Umgang mit Daten. public void myProgram() { int[] saeulenWerte = new int[world.getSizeX()]; for (int i = 0; i < saeulenWerte.length; i++) { saeulenWerte[i]
Wahrscheinlichkeitsrechnung
Geradengleichung und Graph
Objekte und ihre Beschreibung
Helwig Hauser Teil 12: Zusammenfassung All CGR4 revisited.
Helwig Hauser Teil 9: Radiosity Simulation globaler Lichtverteilung.
Helwig Hauser Teil 4: Texturing Farbe, Struktur, Umgebung.
Beleuchtungsmodelle, Schattierungsmodelle
Beleuchtung, inkl. Schatten, Reflexionen
Toleranzanalyse und Simulation Beispiel 1, Montage von Einzelteilen
U N I V E R S I T Ä T KOBLENZ · LANDAU Arbeitsgruppe Computergrafik 4. Mai / 35 Projektpraktikum AR mit korrekter Beleuchtung Entwicklung einer.
T. Wallrath Optimierung des Photon Mapping Verfahrens durch Verbesserung der Radiance Estimate Berechnung und Einsatz von Radiosity Photonen.
Erfahrungen mit Microsoft DirectX 8 W. Krug, April 2002.
Universität zu Köln WS 2014/15 HKI – Softwaretechnologie 2 (Teil 1) Von Tilo Kochs.
Die Welt der Shader Universität zu Köln WS 14/15 Softwaretechnologie II (Teil 1) Prof. Dr. Manfred Thaller Referent: Lukas Kley Fortgeschrittene Techniken.
HS: Aspects of Game Engine Design
Die Renderpipeline.
Multimedia und Virtual Reality Vorlesung am Martin Kurze Multimedia in 3D.
Routenplanung querfeldein - Geometric Route Planning
Global Illumination Computergraphik Seminar im Wintersemester 2004/05 bei Prof. Dr. Elmar Schömer von Stephan Wasshausen.
Marching Cubes von Arnfried Weber.
Powerpoint-Vortag für das Seminar „Computergrafik“ im Wintersemester 2003/’04, Fachbereich Mathematik & Informatik, Johannes-Gutenberg-Universität Mainz,
1 Acquiring the Reflectance Field of a Human Face Paul Debevec et al.
Institut für Informationssysteme Technische Universität Braunschweig Institut für Informationssysteme Technische Universität Braunschweig Verdrängung von.
Optik Reflexion des Lichtes Wie wir bereits wissen, sehen wir den Mond nur weil er Licht der Sonne auf die Erde reflektiert! Aber was ist nun Reflexion?
Lichtexprimente ls stadttechnik ws 02/03 marco bartsch marco laske lichtsimulation mit software.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
Konstruktion des Bildes
 Präsentation transkript:

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

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 Photon Mapping Algorithmus wurde 1995 von HENRIK WANN JENSEN zum ersten Mal veröffentlicht. Einleitung Kurzbiographie: arbeitete er an einer kommerziellen Rendering- Software Massachusetts Institute of Technology 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: Academy Award Best Paper Award - einer von der ersten 10 Wissenschaftlern Sloan Fellow Auszeichnung

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.

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

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

Photon Mapping Photon Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe Rückprojektion auf BS 3. Photon Scattering 4. Kd-Tree 5. Rendering ● Position ● Energie ● Herkunftsrichtung ● kd-Tree-Flag

Photon Mapping Photon Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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 Emission Photon Mapping 1. Einleitung 2. Photon Emission 2.1. HDRI-Environment LatLong-Mapping Beleuchtung Photonenfarbe Photonenkoordinaten Photon-Datenstruktur 2.2. Projektion der BS Verteilung auf Scheibe 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;

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

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

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

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

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

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

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

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

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

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

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

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

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:

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

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 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

● 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

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

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

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

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