Photorealistische Computergrafik Thorsten Grosch
Worum geht es? Globale Beleuchtung Simulation aller Lichtwege von der Lichtquelle bis zum Auge Indirektes Licht, Spiegelungen, weiche Schatten, Ziele: Photorealistische Darstellung Echtzeitdarstellung, also mind. 25 Bilder / sek. Virtuelle 3D Szene, keine Beleuchtung Lokale Beleuchtung: Nur direktes Licht Schnell, aber künstlich Globale Beleuchtung: Photorealistisch, aber zeitaufwändig
Stroebel et al.1986 Beispielbilder Geomerics CryTek Bilder: Jensen, Lightscape
Zur Vorlesung Simulation von Licht Vorlesung ist grob in zwei Abschnitte aufgeteilt Möglichst korrekte Lichtsimulation (CPU, erste Hälfte) Möglichst schnelle Lichtsimulation (GPU, zweite Hälfte) 4 SWS (V3 + Ü1), 6 ECTS Punkte Montag, 11 Uhr, Raum G29-335 Mittwoch,11 Uhr, Raum G29-335 Vorlesung für Master Studenten bzw. Diplomanden
Zur Vorlesung Voraussetzungen Grundlagen der Computergraphik C++ OpenGL (GLUT) Mathematik Vektorrechnung Differential / Integralrechnung Stochastik
Übung Ca. jede 4. Vorlesung ist Übung Übungsblatt ca. 1 Woche vorher Theoretische Aufgaben & Programmieraufgaben (C++, OpenGL) Keine Korrektur der Übungen Keine Musterlösung für Theorieaufgaben Framework für Programmierung Pro Übungsblatt neues Framework Insgesamt 5 Übungen, ab 2. Übung mit Programmieraufgaben Prüfung Mündliche Prüfung bei wenigen Teilnehmern, sonst Klausur
Webseiten Folien, Übungsblätter und Programme sind momentan auf der Webseite http://www.rendering.ovgu.de/lehre/lehreordner/winter semester_2010_2011.html Folien von letztem Jahr wwwisg.cs.uni-magdeburg.de/visual g g Teaching Photorealistische Computergrafik
Wer bin ich Thorsten Grosch Seit September 2009 Juniorprofessor für CV in Magdeburg Davor Studium Informatik TU Darmstadt Fraunhofer IGD Lichtsimulation (Radiosity) Universität Koblenz Landau (die andere CV Uni) Aufbau der Computergrafik Lehre Doktorarbeit Erweiterung von realen Bildern mit korrekter Beleuchtung Post-Doc am MPI Informatik Saarbrücken
IGD Darmstadt Studium Informatik TU Darmstadt Fraunhofer IGD Darmstadt Radiosity Finite-Elemente Verfahren für globale Beleuchtung Physikalisch korrekt für diffuse Umgebungen Refinement Photometrische Konsistenz Beleuchtung Auto Innenraum
Universität Koblenz-Landau 2002 Wechsel an Uni Koblenz zusammen mit Prof. Dr. Stefan Müller Neuaufbau Computergrafik Lehrstuhl Vorlesungen Computergrafik 1 + Übung Computergrafik 2 + Übung Photorealistische Computergrafik + Übung Vorlesungen zusammen erarbeitet, alle Übungen selbst erstellt Seminare, Studien/Diplomarbeiten, Praktika, Doktorarbeit Augmentierte Bildsynthese
Erweitertes Bild
Original Foto
MPI Informatik Post-Doc Forschungsschwerpunkt Globale Beleuchtung in Echtzeit mit der Grafik Hardware Projekte Coherent Shadow Maps Imperfect Shadow Maps Screen-Space Directional Occlusion
MPI Informatik Imperfect Shadow Maps: Ritschel, Grosch, Kim, Seidel, Dachsbacher, Kautz
Vorstellung der Vorlesung
Was ist Licht Licht = elektromagnetische Welle Lichtquelle versendet permanent kleine Wellenzüge (Photonen) Die Photonen werden (mehrfach) auf den Oberflächen der Objekte reflektiert und nehmen dabei die Objektfarbe an Gelangt ein Photon ins Auge, so wird ein Rezeptor auf der Netzhaut aktiviert Dieses Signal wird ans Gehirn weitergeleitet Das Bild entsteht Direktes und indirektes Licht
Globale Beleuchtung Direktes Licht Lichtquelle Reflexion an Oberfläche Auge Einfach zu berechnen Indirektes Licht Lichtquelle mehrfach an Oberfläche reflektiert Auge Schwierig zu berechnen Licht an einem Punkt L o hängt von Licht an allen anderen Punkten ab v ωo Integralgleichung l x f r v ωi y L L i
Rendering Equation Zur Simulation von Licht muß folgende Integralgleichung gelöst werden [Kajiya 1986] : L o v ( x, ω ) o v v v v v = L ( x, ω ) + f ( x, ω, ω ) cosθ L ( x, ω ) dω e o 2π sr r Das Licht an einem Punkt x in Richtung des Betrachters ergibt sich aus der Eigenemission an x plus dem Licht aus allen einfallenden Richtungen, das in Richtung des Betrachters reflektiert wird i o i i i L i L o v ωo x f r v ω i
Grundlagen Lichttechnische Grundgrößen Photometrie Einfache Lichtübertragung Diese Grundlagen werden der Vorlesung immer wieder auftauchen Mathematik Auch hier Grundlagen, die immer wieder verwendet werden, z.b. Polarkoordinaten, Integration über Kugel (2D)
Reflexion Was passiert wenn Licht auf ein Material trifft Diffuse Reflexion Spiegelnde Reflexion Glänzende Reflexion Bi-direktionale Reflexions- Verteilungs-Funktion (BRDF) Messung Mikofacetten Modelle Parametrisierte Modelle (Phong, Lafortune, Ward, Ashikhmin- Shirley)
Ray Tracing Ein mögliches Verfahren zur Simulation von Licht Beschreibung Licht durch Strahlen Strahlverfolgung aus Auge (nicht aus Lichtquelle) Rekursives Verfolgen von reflektiertem und gebrochenem Strahl Spiegelnde/Gläserne Objekte Glas Diffuse Fläche Spiege l
Tone Mapping Darstellung der Ergebnisse Jeder Monitor hat eine max. Helligkeit Simulation hat evtl. grössere Werte (grösserer Dynamikbereich) Abbildung auf darstellbaren Bereich mit möglichst guter Qualität
High Dynamic Range High Dynamic Range (HDR) Fotos mit beliebig großen Werten pro Pixel Generierung aus Belichtungsserie Bestimmung der Kamerakurve
Radiosity Simulation von Licht als diffuse Strahlung kommt aus Bereich der Thermodynamik, Wärmeausbreitung Aufteilung der Geometrie in Patches konstante Strahlung nur diffuse Reflexion Komplizierte Rendering Gleichung wird zu Linearem Gleichungssystem Beleuchtung großer Szenen Progressive Refinement Hierarchisches Radiosity
Radiosity Beispiele
Path Tracing Monte Carlo Verfahren Löse Integral durch Zufallszahlen Lichtsimulation durch Zufallszahlen Ray Tracing mit zufälligen Strahlen Sampling Generiere Zufallszahlen nach einer Dichte Grundlagen der Wahrscheinlichkeitsrechnung Beleuchtung = Zufallsexperiment
Path Tracing Beispiele
Photon Mapping Simulation von Licht als Teilchen (Photonen) Zwei-Schritt-Verfahren Schritt 1 Verteilung der Photonen Schritt 2 Bestimmung der Helligkeit aus Photonendichte Alle wichtigen Lichteffekte darstellbar, speziell sog. Kaustiken
Precomputed Radiance Transfer Echtzeit Beleuchtung in natürlicher Umgebung Vorberechnung der Lichttransporte Beschreibung von einfallendem Licht und Reflexion an Oberfläche in Orthonormalbasis 2D Fourier Reihe über Kugeloberfläche Sphärisch-harmonische Funktionen Wavelets Komplexe Berechnung reduziert sich auf einfaches Skalarprodukt
Grundlagen Grafik Hardware OpenGL Pipeline Der Weg vom Eckpunkt zum Pixel Transformationen Projektionen Einfache Beleuchtung Buffer Stencil Buffer Accumulation Buffer
Programmierung der GPU Vertex und Fragment Programs OpenGL Shading Language Multi-Pass Rendering Multiple l Render Targets
Echtzeit Schatten Schatten lassen sich nicht direkt mit der Grafik Hardware darstellen Grund ist die Rasterisierungs- Pipeline Zu jedem Zeitpunkt ist nur ein Polygon bekannt Zur Darstellung des Schattens müssten alle Polygone bekannt sein Echtzeit-Schatten gehen daher nur auf Umwegen Shadow Volumes Shadow Maps
Instant Radiosity Globales Beleuchtungsverfahren für die GPU Zwei Schritte Verteilen von virtuellen Punktlichtquellen (VPLs) Beleuchtung mit vielen VPLs Schatten pro VPL ca. 100 1000 VPLs werden für gute Qualität benötigt Schnelle Varianten Reflective Shadow Maps Imperfect Shadow Maps Instant Radiosity
Ambient Occlusion Schnelle Näherung der Sichtbarkeit it Mittlere Sichtbarkeit pro Eckpunkt/Texel speichern Keine physikalisch korrekte Lichtsimulation, aber visuell plausibel Echtzeitfähig Dynamische Szenen möglich Screen-Space Verfahren SSAO, SSDO
Augmentierte Bildsynthese Erweiterung reales Kamerabild mit virtuellen Objekten Rekonstruktion der Beleuchtung auf dem Foto Globale Beleuchtung mit virtuellen Objekten Einblendung ins Foto, Licht und Schatten sind korrekt
Vorläufige Zeitliste Datum Thema Datum Thema 11.10.201010 Einführung 22.11.2010 2010 Photon Mapping 13.10.2010 Grundlagen Licht & Mathematik 24.11.2010 3. Übung (Path Tracing) 18.10.2010 Reflexion 29.11.2010 Precomputed Radiance Transfer 20.10.2010 1. Übung (Grundlagen) 1.12.2010 Grundlagen Grafik Hardware 25.10.2010 Ray Tracing 6.12.2010 Shader Programmierung 27.10.2010 Tone Mapping, High Dyn. Range 8.12.2010 Hardware Schatten 1.11.2010 Radiosity 13.12.2010 4. Übung (Shader) 3.11.2010 2. Übung (Ray Tracing/Radiosity) 15.12.201012 2010 Instant Radiosity 8.11.2010 Sampling 10.1.2011 Ambient Occlusion 10.11.2010 Path Tracing 12.1.2011 Augmentierte Bildsynthese 15.11.2010 - Fällt aus - 17.1.2011 Augmentierte Bildsynthese GPU 17.11.2010 - Fällt aus - 19.1.2011 5. Übung (Instant Radiosity / AO) 24.1.2011 Hot Topics
Literatur Semesterapparat zur Vorlesung Es gibt kein Buch, das die gesamte Vorlesung abdeckt M. Pharr and G. Humphreys: Physically Based Rendering. Morgan Kaufmann, 2004. (www.pbrt.org) P. Dutre, K. Bala and P. Bekaert: Advanced Global Illumination. AK Peters, 2006, 2nd Edition (www.advancedglobalillumination.com) H.W. Jensen: Realistic Image Synthesis Using Photon Mapping, AK Peters 2001 (graphics.ucsd.edu./~henrik/papers/book) P. Shirley and K. Morley: Realistic Ray Tracing, AK Peters, 2003, 2nd Edition T. Akenine-Möller, E. Haines and N. Hoffman: Real-time Rendering, AK Peters (www.realtimerendering.com)( ) D. Shreiner: OpenGL Programming Guide, Addison Wesley, 2009, 7th Edition. R. Rost: OpenGL Shading Language, Addison Wesley, 3rd Edition
Nächste Vorlesung Mittwoch, 11 Uhr ct, Raum 335 Grundlagen Licht & Mathematik