Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

HS: Aspects of Game Engine Design

Ähnliche Präsentationen


Präsentation zum Thema: "HS: Aspects of Game Engine Design"—  Präsentation transkript:

1 HS: Aspects of Game Engine Design
Pre-Computed Radiance Transfer – PRT in Anlehnung an SigGraph 2005 Course: PRT Theory and Practise HS: Aspects of Game Engine Design

2 Agenda Einleitung Precomputed Radiance Transfer Zusammenfassung
Herausforderung Precomputed Radiance Transfer Was ist PRT? Was ist es nicht? Wie funktionierts? – Einwenig Mathematik PRT weitergedacht Zusammenfassung Literatur DirectX API und Demos

3 Einleitung - Anforderungen an Spiele
Beleuchtungseffekte spielen bei der Synthese photorealistischer Bilder eine übergeordnete Rolle. Bisher: Phong Shading, Texturen (Lightmaps) + Simulation von Schatten etc. Physikalisch inkorrekt, da stark vereinfacht oder zu statisch Keine globalen Beleuchtungsmodelle PRT ist die Antwort Einleitung - Anforderungen an Spiele Spieler sollen das Gefühl haben Teil der virtuellen Welt zu sein. Hohe Anforderung an Realismus, z.B.: komplexe Szenen realistische Interaktion mit Objekten intelligentes Verhalten von Gegnern Soundeffekte Beleuchtungseffekte ...

4 Einleitung – Die Herausforderung (1)
Simulation komplexer physikalischer Zusammenhänge erforderlich... Beleuchtungsumgebungen Wie berechnet man diese Effekte? Die Rendering Equation gibt Antworten. Meterial- eigenschaften Transporteffekte

5 Einleitung – Die Herausforderung (2)
Die Rendering Equation (RE) ist eine math. Formalisierung der Beleuchtungsproblematik. Alle Beleuchtungsmodelle setzen Teile der RE um. Jedes Beleuchtungsmodell lässt sich an der RE messen. Ziel: Effiziente Umsetzung vieler Aspekte der RE Integral über Hemisphäre Vom Punkt p ausgehende Strahlung Radianz- funktion Transfer- funktion

6 Einleitung – Herausforderung (3)
Echtzeitsysteme müssen drei Schwierigkeiten bewältigen: Komplexe Materialien (BRDF) Integration über alle Richtungen der Hemisphäre über einem Beleuchtungspunkt Reflektion und Verdeckung

7 Was ist PRT? Methode zur Simulation globaler Beleuchtungseffekte
Trennt Beleuchtung und Transporteigenschaften Berechnet ohne Kenntnis von Lichtquellen Strahlungstransfer in einem Punkt offline Schattiert Objekte durch Kombination von Lichtquellen und vorberechneten Transportdaten Schatten, Color-Bleeding, Caustics Bewegliche Lichtquellen und Objekte Kompression durch Spherical Harmonics oder Haar Wavelets Gut für Simulation in Echtzeitumgebungen geeignet: Einfaches Skalarprodukt im diffusen Fall Vektor-Matrix-Multiplikation für spekularen Fall Area Lights und generelle Beleuchtungsumgebungen  realistische weiche Schatten Performanz nicht abhängig von Anzahl der Lichtquellen

8 Grenzen von PRT – Was ist es nicht
Arbeitet mit entfernten Lichtquellen; lokale Lichtquellen möglich aber teuer Annahme: Beleuchtung variiert bei entfernten Lichtquellen kaum Lokale Lichtquellen erfordern Multi-Sampling/Gradients Objekte nicht verformbar Animation von Objekten im allgemeinen schwierig, aber machbar Hier: Neighbourhood-Transfer: Großes Objekt beeinflusst nahe kleine Objekte (z.B. Terrain - Charakter), Interaktion in anderer Richtung problematisch. Nur niederfrequentes Licht effizient simulierbar

9 Die Idee Projektion von T und L auf orthonormale Basisfunktionen
Beleuchtungsfunktion: Die Lichtquellen können als Funktionen aufgefasst werden. Transferfunktion: Die Antwort eines Objektes auf seine Beleuchtung kann als Funktion aufgefasst werden, die eingehende Strahlung auf ausgehende abbildet. Projektion von T und L auf orthonormale Basisfunktionen Da die Basisfunktionen orthonormal gewählt wurden läst sich das Integral als Skalarprodukt darstellen Als Basisfunktionen bieten sich Spherical Harmonics an SHs sind orthonormal SHs sind rotationsinvariant  Keine Fluktuationen bei Animation der Lichtquelle  Keine Aliasing Probleme

10 Basisfunktionen Funktionen lassen sich als Summe gewichteter Basisfunktionen darstellen (Projektion auf Basisfunktionen):

11 Orthogonal und Orthonormal
Orthogonale Basis-Funktionen haben folgende Eigenschaft: Für die Untergruppe der orthonormalen Basisfunktionen gilt: c = 1

12 Der Clou Vektor t wird vorberechnet
Vector l wird zur Laufzeit berechnet Effiziente Berechnung des Skalarprodukts auf Shadern Spekularer Fall abhängig von Blickrichtung  Transfermatrix In Sachen Performanz: Licht ist niedrigfrequent Lichtquelle weit entfernt  Beleuchtung variiert vernachlässigbar für verschiedene Punkte auf der Oberfläche 1

13 Neumann Expansion 0 mal Reflektiert 1 mal Reflektiert 2 mal Reflektiert Transportinformationen der direkten Beleuchtung und von n Bounces in einem Transfer-Vektor Unabhängig von der Beleuchtung Transporteffekte wie weiche Shatten, Color-Bleeding, Caustics sind aufwendig zu berechnen  vorberechnet  Im spekularen Fall eine Transfermatrix

14 PRT unter der Lupe Wie reflektiert ein Objekt eintreffende Strahlung auf sich selbst und seine Umgebung? Wie werden kleine Objekte in der Umgebung beeinflusst? Szenario: Self-Transfer: Isoliert betrachtetes Objekt O Neighbourhood-Transfer: Bewegliche/Neue Objekte R (hier nur Einfluss O → R) Spekulare Oberfläche Beleuchtung Lenv durch unendlich weit entferntes Licht (Environment Map), Aufgaben: Welche Strahlung verlässt Punkt p? Auf der Oberfläche? An einem freien Raumpunkt? Berechnung der Transfermatrizen?

15 Outgoing vs. Transfered incident
Ziel ist es die Outgoing Radiance zu berechnen Aber wir wollen: Spekulare Effekte Outgoing Radiance ist abhängig von der Blickrichtung BRDF ist nur für den diffuse Komponente konstant Neighbourhood-Transfer: Wir wollen den Einfluss eines Objektes O auf ein anderes R zur Laufzeit berechnen  Selbst im diffusen Fall reicht ein Vektor nicht aus, da die Normalen des Recievers R unbekannt sind  Outgoing Radiance kann an diesen Punkten nicht vorberechnet werden Die Lösung: Transfered incident Radiance

16 Transfered Incident Radiance
Beschreibt für jeden Punkt p der Szene (auf O, oder frei im Raum) die einfallende Strahlung aus allen Richtungen  Unterscheidet sich von Lenv (Verdeckung, Reflektion)  Was sieht Punkt p? – Oder wie läst sich Lenv durch eine andere Funktion maskieren? → Produkt Projektion  Sphärische Funktion; für jeden Punkt p anders  Neighbourhood-Transfer: Muss für freie Raumpunkte berechnet werden; dann Interpolation

17 Die Transfermatrix Projektion auf Basisfunktionen
Abhängigkeiten linear! Formal: , Bekannt zur Laufzeit , wird berechnet. Wie? , ist gesucht

18 Die Transfermatrix Die ite Spalte von approximiert die
Erscheinung der Szene, aus der Perspektive von p, wenn nur die ite Basisfunktion yi zur Beleuchtung eingesetzt wird! Die gesamte Beleuchtung ergibt sich aus der Linearkombination aller Basislichter.  Vektor-Matrix-Multiplikation liefert := Das Licht von yi, welches p direkt oder indirekt beleuchtet. Projektion von auf die jte Basisfunktion von liefert Eintrag ji von T:

19 Einschub... Produkt Projektion...
Zentrale Frage: Was sieht Punkt p? Anders formuliert: Mit welcher Funktion, lässt sich Lenv maskieren? Mathematisch: a(s): unbekannte Beleuchtungsfunktion b(s): bekannte Schattenfunktion c(s): Maskierte Beleuchtungsfunktion Gesucht linearer Operator, der Koeffizienten von a(s) auf Koeffizienten von c(s) abbildet

20 Transfermatrizen Wir können nun die Transfermatrix T0 für die direkte Beleuchtung berechnen und erhalten: Wie geht‘s weiter? – Neuman Expansion... Rekursion mit T0 als Start... Im Wesentlichen Analog zum einfachen diffusen Fall...

21 Grober Ablauf Berechnung der Transfermatrizen offline
Berechnung von Lxfer zur Laufzeit mit Transfermatrizen Auswertung der BRDF Die Outgoing Radiance ergibt sich aus der Summe der Transfered Incident Radiance und der in p reflektierten Strahlung Berechnung der Strahlung, die Punkt p in Blickrichtung verlässt

22 Zusammenfassung Globale Beleuchtungseffekte für Echtzeit-Anwendungen
Komplette Entkopplung von Transferfunktionen und Lichtquellen Offline Berechnung Projektion auf Basisfunktionen Spherical Harmonics Oder Haar Wavelets Transfermatrizen Self-Transfer und Neighbourhood-Transfer PRT und DirectX

23 Literatur Siggraph2005 Course: PRT – Theory and Practice [Sloan, Kautz, Lethinen] Precomputed Radiance Transfer for Real-Time Rendering in Dynamic, Low-Frequqncy Environments [Sloan, Kautz, Snyder] Spherical Harmonic Lighting: The Gritty Details [Green] DirectX SDK Dokumentation

24 Das wars vom ersten Teil...
? ? Vielen Dank für die Aufmerksamkeit... Fragen? Und zum Abschluss weiter zu DirectX und Demos... ?

25 DirectX und PRT Einfaches lokales Beleuchtungsmodell, Keine Schatten
PRT liefert weiche Schatten

26 Subsurface Scattering mit PRT
DirectX und PRT Subsurface Scattering mit PRT

27 DirectX API Offline: Source Radiance: Exit Radiance:
ID3DXPRTEngine: Berechnet Transfer- Vektoren und Matrizen Source Radiance: D3DXSHEvalDirectionalLight D3DXSHEvalSphericalLight D3DXSHEvalConeLight D3DXSHEvalHemisphereLight Exit Radiance: Berechnung auf Vertex-/Pixelshader

28 DirectX SDK Live Demo... And Action... 


Herunterladen ppt "HS: Aspects of Game Engine Design"

Ähnliche Präsentationen


Google-Anzeigen