HS: Aspects of Game Engine Design

Slides:



Advertisements
Ähnliche Präsentationen
Hauptseminar - Computer Graphics
Advertisements

Schnelle Matrizenoperationen von Christian Büttner
Strukturlösung mit Hilfe der Patterson-Funktion
Seminar „Extrapolationsmethoden für zufällige Felder“
Game Engine Architecture - J. Gregory
Grundlagen der Geometrie
3.2 und 3.2.1: Räumliches Sehen und Koordinaten und Vektoren
Graphische Datenverarbeitung IV Dr. Markus Heitz.
5.2 Schattierungsverfahren
5. Beleuchtung und Schattierung
Phong Shading (Normaleninterpolation)
Java3d „Licht und Material“
Ein Seminar in Computer Grafik von Johannes Bochmann
Computergrafik Vom Dreieck zum Ego-Shooter Olaf Müller
Quaternionen Eugenia Schwamberger.
Special Effects Realistischeres Rendern einer Scene.
Von Huiyu Li. 1.Anwendungsideen Zwei Arten von digitaler Bildbearbeitung in der Architektur 1.1 Veränderung: Existierende Bilder werden durch Bildbearbeitung.
FH-Hof Licht Richard Göbel. FH-Hof Licht in Java3D - Basisideen Bereitstellung unterschiedlicher Lichtquellen Definition der Wirkung einer Beleuchtung.
Variationsformalismus für das freie Teilchen
Computergrafik – Inhalt Achtung! Kapitel ist relevant für CG-2!
Zeit, Ort und Weg Geschwindigkeit Beschleunigung
? Was ist Informatik? Was ist Informatik? Alexander Lange
Universität Stuttgart Wissensverarbeitung und Numerik I nstitut für K ernenergetik und E nergiesysteme Numerik partieller Differentialgleichungen, SS 01Teil.
How to make a PIXAR movie
Vektoren Grundbegriffe für das Information Retrieval
Lineare Algebra Komplizierte technologische Abläufe können übersichtlich mit Matrizen dargestellt werden. Prof. Dr. E. Larek
Effekte 1 Universität zu Köln Historisch Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie II (Teil 1): Simulation und 3D Programmierung.
Effiziente Algorithmen Hartmut Klauck Universität Frankfurt SS
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Quantum Computing Hartmut Klauck Universität Frankfurt WS 04/
Proseminar: How to make a PIXAR movie?
How to make a Pixar Movie?
§3 Allgemeine lineare Gleichungssysteme
Polynome und schnelle Fourier-Transformation
Mechanische Arbeit Arbeit bei unterschiedlicher Richtung von Kraft- und Weg am Beispiel der Hub-Arbeit.
4.3 Beleuchtung und Schattierung
4.7 Globale Beleuchtungsmodelle
Medizinische Visualisierung
ProSeminar WS 2007/08 Leo Hackstein
Generalisiertes Vektorraummodell (Generalized Vector Space Model, GSVM) Karin Haenelt
Objekte und ihre Beschreibung
Multivariate Statistische Verfahren
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
Drehung im Raum – Kreiseltheorie
Gameplattform (NICHT)RAUM, THEATER, STADION
Stetige Kleinste-Quadrate-Approximation
T. Wallrath Optimierung des Photon Mapping Verfahrens durch Verbesserung der Radiance Estimate Berechnung und Einsatz von Radiosity Photonen.
Vom graphischen Differenzieren
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.
Die Renderpipeline.
PhysX auf der GPU in Batman: Arkham Asylum & bei Fluid Simulations Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung Softwaretechnologie.
Grundlagen der Geometrie
Global-Illumination: Radiosity
Global Illumination Computergraphik Seminar im Wintersemester 2004/05 bei Prof. Dr. Elmar Schömer von Stephan Wasshausen.
Graphische Datenverarbeitung
1 Acquiring the Reflectance Field of a Human Face Paul Debevec et al.
Version vom Max-Flow in Orientierten Matroiden Winfried Hochstättler & Robert Nickel Fernuniversität in Hagen Lehrstuhl für Diskrete Mathematik.
Der Wiener Prozess und seltene Ereignisse
Photon Mapping Jörg Hedrich Lena Kohl Ruth Recker Anke Schneider Pascal Sproedt Benjamin Zapilko Projektpraktikum: Augmentierte Bildsynthese mit Photon.
Lichtexprimente ls stadttechnik ws 02/03 marco bartsch marco laske lichtsimulation mit software.
PCA Principal Component Analysis. Gliederung PCA – Warum eigentlich? PCA – Was ist zu tun? Was passiert eigentlich? Anwendungen Zusammenfassung.
Spärliche Kodierung von Videos natürlicher Szenen Vortragender: Christian Fischer.
 Gegenstandsbereich der Testtheorie: Analyse der Charakteristika von Tests:  Güte von Tests.  Struktur von Tests.  Schwierigkeit von Tests.  Gruppenunterschiede.
Satellitengeodäsie Kugelfunktionen Torsten Mayer-Gürr
 Präsentation transkript:

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

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

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

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

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

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

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

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

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

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

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

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

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

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?

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

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

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

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:

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

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

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

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

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

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

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

Subsurface Scattering mit PRT DirectX und PRT Subsurface Scattering mit PRT

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

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