400 likes | 495 Views
Shading & Lighting III. Ambient Occlusion & Precomputed Radiance Transfer. Übersicht. Ambient Occlusion Motivation Funktionsweise Dynamic Ambient Occlusion Beispiele. Precomputed Radiance Transfer Grundlagen Rendering Equation Neumann Expansion Basisfunktionen Funktionsweise
E N D
Shading & Lighting III Ambient Occlusion & Precomputed Radiance Transfer
Übersicht • Ambient Occlusion • Motivation • Funktionsweise • Dynamic Ambient Occlusion • Beispiele • Precomputed Radiance Transfer • Grundlagen • Rendering Equation • Neumann Expansion • Basisfunktionen • Funktionsweise • Transfered Incident Radiance • Beispiele Hauptseminar - Computer Graphics Johannes Hummel
Ambient Occlusion - Motivation Motivation: Vorhandene Beleuchtungsmodelle nicht ausreichend realitätsnah • Ambientes Licht: • Addiert festen Farbwert • keine Berücksichtigung von 3D-Geometrien • Diffuses und punktuelles Licht: • Nur mit sehr vielen Lichtquellen realistisch => sehr langsame Berechnung Hauptseminar - Computer Graphics Johannes Hummel
Ambient Occlusion - Grundlagen Grundlegendes: • Ambient Occlusion (dt. Umgebungsverdeckung) • Vorgestellt auf der SIGGRAPH 2002 • Beobachtung: Ritzen und Ecken weisen geringere Beleuchtungsstärke auf • Grund: zahlreiche, diffuse Reflexionen an Engstellen Funktionsprinzip: • Einheitskugel aus Licht um komplette Szene • Licht wird nur durch Selbstverdeckung abgeschwächt/blockiert • 2 Berechnungsverfahren: Inside-Out / Outside-In Hauptseminar - Computer Graphics Johannes Hummel
2. Zufälliges Aussenden von Strahlen innerhalb der Normalenhalbkugel für den Treffertest Ambient Occlusion - Funktionsweise Funktionsweise (Inside-Out): 1. Strahl vom Betrachter auf eine Oberfläche mit einem Ambient-Occlusion-Shader Hauptseminar - Computer Graphics Johannes Hummel
4. Das Verfahren auf alle Objekte der Szene anwenden. 5. Rendern als Intensität oder mit Environment-/Lightmap multiplizieren Keine scharfen Kanten! Ambient Occlusion – Funktionsweise (2) 3. Schritte 1 und 2 für alle Punkte auf der Fläche wiederholen. Dabei für jeden Punkt den Wert 1 – hitratio speichern. (Im Bsp. 2 / 6 = 1/3 ) Hauptseminar - Computer Graphics Johannes Hummel
Vorgehensweise: • Vertices => orientierte Scheiben mit Position, Normale und Fläche Ambient Occlusion – Dynamic AO Dynamic Ambient Occlusion (NVIDIA) • Echtzeitfähigkeit • Nicht begrenzt auf starre Objekte Hauptseminar - Computer Graphics Johannes Hummel
Vertex-Area: 1/3 der Fläche der anliegenden Dreiecke d.h. für ein Dreieck mit den Kanten a, b und c (Heron) wobei s der halbe Umfang des Dreiecks ist: Ambient Occlusion – Dynamic AO (2) • Front-Face: Licht wird ausgeschickt und reflektiert Back-Face: Licht wird durchgelassen und Schatten gesetzt Hauptseminar - Computer Graphics Johannes Hummel
Berechnung der AO durch eine Schatten-Approximation (nach Landis2002) Ambient Occlusion – Dynamic AO (3) • Position, Normale und Fläche => Texture Map Notwendig, um AO-Berechnungen im Pixel-Shader durchzuführen Berechnung von Animationen und Transformationen (z.B. object space -> world space) auf der Texture Map, um Zeit zu sparen Hauptseminar - Computer Graphics Johannes Hummel
Ambient Occlusion – Dynamic AO (4) E Emitter-Surface R Receiver-Surface r Strecke zwischen den Mittelpunkten von E und R θE Winkel zwischen E´s Normale und r θR Winkel zwischen r und R´s Normale A Fläche von E (1 - rsqrt( emitterArea / rSquared + 1 )) * saturate( dot( emitterNormal , v )) * saturate( 4 * dot( receiverNormal, v )); Hauptseminar - Computer Graphics Johannes Hummel
Ambient Occlusion – Dynamic AO Beispiel Dynamic Ambient Occlusion Beispiel: environment lighting + ambient occlusion + indirect lighting Hauptseminar - Computer Graphics Johannes Hummel
Ambient Occlusion – Dynamic AO Beispiel (2) Dynamic Ambient Occlusion Beispiel: Hauptseminar - Computer Graphics Johannes Hummel
Übersicht • Ambient Occlusion • Motivation • Funktionsweise • Dynamic Ambient Occlusion • Beispiele • Precomputed Radiance Transfer • Was ist PRT? • Rendering Equation • Neumann Expansion • Basisfunktionen • Funktionsweise • Beispiele Hauptseminar - Computer Graphics Johannes Hummel
PRT - Grundlagen Was ist Precomputed Radiance Transfer? • Ein Weg, um Objekte mit unterschiedlichen Beleuchtungen zu schattieren • Direktes & indirektes Licht, Kaustiken etc. • Jegliche Art von Transport • Eingeschränkte Echtzeit: Licht darf sich verändern • Beleuchtung aus allen Richtungen (env-map) • Beleuchtung weit entfernt • Evtl. Beschränkung des Lichts (z.B. implementationsabhänging nur niederfrequentes Licht) Was ist Precomputed Radiance Transfer nicht? • Kein globales Beleuchtungssystem für beliebige dynamische Szenen • Objekte müssen starr sein • Object-to-object-Interaktion beschränkt Hauptseminar - Computer Graphics Johannes Hummel
PRT - Ziele Ziele: • Beleuchtungsumgebungen: • Materialeigenschaften: • Transporteffekte: Hauptseminar - Computer Graphics Johannes Hummel
Strahlung von Punkt P in Richtung d d p PRT – Rendering Equation Rendering Equation: Hauptseminar - Computer Graphics Johannes Hummel
PRT – Rendering Equation Rendering Equation: Eigenstrahlung von Punkt P in Richtung d d p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Rendering Equation Rendering Equation: Integral über die Richtungen s auf der Halbkugel über Punkt P d s p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Rendering Equation Rendering Equation: Strahlung aus Richtung s zu Punkt P s p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Rendering Equation Rendering Equation: BRDF von Punkt P für einkommende Strahlen s in Richtung d s d p Hauptseminar - Computer Graphics Johannes Hummel
s Np p PRT – Rendering Equation Rendering Equation: Lambertsche Regel: Cosinus zwischen der Normalen und –s = dot( Np , -s ) Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: Ausgehende Strahlung als unendliche Reihe Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: Direkter Lichteinfall auf P aus der Umgebung p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: Visibility-Funktion p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: Alle Pfade von der Quelle mit einer Reflexion p Hauptseminar - Computer Graphics Johannes Hummel
PRT – Neumann Expansion Neumann Expansion: Alle Pfade von der Quelle mit i Reflexionen p Hauptseminar - Computer Graphics Johannes Hummel
Projektion der Funktion in den Basisfunktions- Raum: PRT – Basisfunktionen Basisfunktionen: Funktion: Einige Basisfunktionen: Hauptseminar - Computer Graphics Johannes Hummel
Approximation der Funktion (mit weniger Zahlen) PRT – Basisfunktionen (2) Basisfunktionen: Rekonstruktion: Hauptseminar - Computer Graphics Johannes Hummel
PRT – Basisfunktionen (3) Basisfunktionen: Funktion: Projektion: Rekonstruktion: Für orthogonale Basisfunktionen gilt: Für orthonormale Basisfunktionen gilt: Hauptseminar - Computer Graphics Johannes Hummel
PRT – Grundlagen • Projektion von L und T auf orthonormale Basisfunktionen => Integral -> Skalarprodukt • Mögliche Basisfunktion: Spherical Harmonics • Orthonormal • Rotationsinvariant ->Keine Fluktuationen bei Animation der Lichtquelle ->Keine Aliasing-Probleme Transferfunktion: Die Antwort eines Objektes auf seine Beleuchtung kann als Funktion aufgefasst werden, die eingehende Strahlung auf ausgehende abbildet. Beleuchtungsfunktion: Die Lichtquellen können als Funktionen aufgefasst werden. Hauptseminar - Computer Graphics Johannes Hummel
PRT – SH-Beispiel Beispiel von Spherical Harmonics: Rekonstruktion (N: Anzahl der Basisfunktionen) SH ähnlich Fourier-Transformation Vorteil: Kompakt und Blickwinkelunabhängig Nachteil: Problem mit Rekontruktion scharfer Kanten Hauptseminar - Computer Graphics Johannes Hummel
PRT – Funktionsweise Funktionsweise: Ausgangssituation: Objekt umgeben von einer entfernten Environment Map Ziel: Lenv(w) Lout(p -> w) Berechnung durch lineare Operationen für jeden Punkt P Transfermatrix Hauptseminar - Computer Graphics Johannes Hummel
PRT – TIR Aber: • Spekulare Effekte • Lout Blickrichtungsabhängig • BRDF nur für diffuse Komponente konstant • Neighbourhood-Transfer: • Berechnung des Einflusses von Objekt O auf ein anderes Objekt R (Reciever) zur Laufzeit • Normalen des Objekts R unbekannt • Keine Vorberechnung von Lout Lösung: Transfered Incident Radiance Hauptseminar - Computer Graphics Johannes Hummel
PRT – TIR (2) Transfered Incident Radiance: Berechnung der einfallenden Strahlung aus allen Raumrichtungen für jeden Punkt P der Szene • Unterschied zu Lenv in Verdeckung und Reflexion • Ummaskieren von Lenv in eine andere Funktion Produkt Projektion • Sphärische Funktion für jeden Punkt P • Neighbourhood-Transfer: Interpolation über die Berechnung der freien Raumpunkte Hauptseminar - Computer Graphics Johannes Hummel
PRT – TIR (3) Transfermatrix: • Berechnung von Lxfer aus Lenv • Offline-Berechnung der Matrizen • Bestimmung von Lxfer zur Laufzeit • Lout = Integration über Lxfer mit BRDF * cos • lineare Abhängigkeiten • Formel: • , zur Laufzeit bekannt • , noch zu berechnen • , gesucht Hauptseminar - Computer Graphics Johannes Hummel
PRT – TIR (4) Berechnung von : • Annahme: Beleuchtung nur durch die i-te Basisfunktion yi i-te Spalte approximiert die Erscheinung der Szene aus der Perspektive von P • Gesamte Beleuchtung: Linearkombination aller Basislichter ( durch Vektor-Matrix-Multiplikation) • : direkte/indirekte Beleuchtung von P durch yi • Projektion von auf die j-te Basisfunktion von liefert Eintrag ji von T: Hauptseminar - Computer Graphics Johannes Hummel
PRT – Ablauf Vereinfachter Ablauf: • Offline-Berechnung der Transfermatrizen • Online-Berechnung von Lxfer durch Transfermatrizen • Auswertung der BRDF • Berechnung der Outgoing Radiance = TIR + reflektierte Strahlung in P • Berechnung von Lout in Punkt P Hauptseminar - Computer Graphics Johannes Hummel
PRT – Beispiele Beispiele von PRT: Hauptseminar - Computer Graphics Johannes Hummel
Fragen Vielen Dank für die Aufmerksamkeit! Noch Fragen? Hauptseminar - Computer Graphics Johannes Hummel