Ambient Occlusion Precomputed Radiance Transfer

Ähnliche Dokumente
Beleuchtungsmodelle und Shading

Wima-Praktikum 2: Bildsynthese-Phong

Beleuchtung. in Computerspielen

Lokale Beleuchtungsmodelle

Beleuchtung. Matthias Nieuwenhuisen

Lokale Beleuchtungsmodelle

4.7 Globale Beleuchtungsmodelle

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik 1 Beleuchtung

4.4 Glättung von Kanten

Schattenwurf mit Perspective Shadow Maps

BlendaX Grundlagen der Computergrafik

Einführung Augmentierte Bildsynthese

Christina Nell. 3D-Computergrafik

Rendering: Lighting and Shading

3D Rendering mit PHP. Die neue PEAR-Klasse Image_3D bietet die Möglichkeit nur mit PHP5 3DGrafiken zu rendern

die Planung eindrucksvoll präsentieren

Computergrafik Universität Osnabrück, Henning Wenke,

Computergrafik 2010 Oliver Vornberger. Kapitel 18: Beleuchtung

2.2 Kollineare und koplanare Vektoren

(7) Normal Mapping. Vorlesung Computergraphik II S. Müller. Dank an Stefan Rilling U N I V E R S I T Ä T KOBLENZ LANDAU

Rendering Grundlagen Autodesk Maya. Grundlagen. Version Ingo Clemens brave rabbit

Beleuchtungsmodelle. Realistische Bilder. Ausgedehnte Lichtquellen color bleeding. spiegelnde Reflexion. komplexe Oberflächen.

Real-Time High-Dynamic Range Texture Mapping

Teil 7: Beleuchtung Beleuchtungsmodelle, Schattierungsmodelle

Kapitel 4: Schattenberechnung

Seminar Game Development Game Computer Graphics. Einleitung

computer graphics & visualization

Beleuchtung Schattierung Rasterung

Rendering. (illumination/shading) Beleuchtungsmodelle. Schattierung von Polygonen. Lokale Beleuchtungsmodelle

Global Illumination Globale Beleuchtung

Parallele Algorithmen in der Bildverarbeitung

Massenträgheitsmomente homogener Körper

Die Welt der Shader. Fortgeschrittene Techniken III

CAUSTICS & GODRAYS. Jacob Skuratovski

Ferienkurs Experimentalphysik III

3D Programmierpraktikum: Schattenberechnung in Echtzeit

Workshop: Einführung in die 3D-Computergrafik. Julia Tolksdorf Thies Pfeiffer Christian Fröhlich Nikita Mattar

Non-Photorealistic Rendering

Reflexion - Teil = 4 4 ) - 2 (-7)/5 (1 2 ) = (19/5 8/5 ) ); e n = -7; r = (

Programmierpraktikum 3D Computer Grafik

3.6 Schattenberechnung

Speziell-Relativistischer (Flug-) Simulator

Visualisierung und Volumenrendering 2

Prozedurale Texturen >>Was nicht passt wird passend gemacht...<<

Aufgaben / Lösungen der Klausur Nr. 4 vom Juni 2002 im LK 12. nx ln(x)dx

Lernunterlagen Vektoren in R 2

Programmierpraktikum 3D Computer Grafik

Beleuchtung aus Schatten rekonstruieren

Graphische Datenverarbeitung

"rendern" = ein abstraktes geometrisches Modell sichtbar machen

HLSL PostProcess Shaders

Graphische Datenverarbeitung Visualisierungstechniken. Prof. Dr. Elke Hergenröther

Algorithmische Geometrie: Arrangements und

Versuch P1-31,40,41 Geometrische Optik. Vorbereitung. Von Jan Oertlin. 2. Dezember 2009

3. Erklären Sie drei Eigenschaften der bidirektionalen Reflektivität (BRDF).

Beleuchtung Schattierung Rasterung

HTL Steyr KAUSTIK Seite 1 von 11. Kaustik. Winkelfunktionen, Einheitskreis, Summensätze, Grenzübergänge (LIMES), Parameterdarstellung einer Funktion

Versuchsprotokoll. Mathematisch-Naturwissenschaftliche Fakultät I Institut für Physik. Versuch O10: Linsensysteme Arbeitsplatz Nr.

Grundlagen der Physik 1 Lösung zu Übungsblatt 2

Überblick Echtzeit-Rendering. Uwe Domaratius

Rendering: Lighting & Shading

Graphische Datenverarbeitung und Bildverarbeitung

Photorealistische Computergrafik. Thorsten Grosch

Grundlagen der Physik 3 Lösung zu Übungsblatt 2

Physik für Biologen und Zahnmediziner

Texture Based Direct Volume Rendering

Teil 7: Beleuchtung. Einleitung. Einleitung. Beleuchtungsmodelle, Schattierungsmodelle

Photorealistische Computergrafik. Thorsten Grosch

7 Blender Intern Renderer

Kapitel 1. Globale Beleuchtung. 1.1 Ray Tracing Schatten, Reflexion und Brechung

Rechnen mit Vektoren. 1. Vektoren im Koordinatensystem Freie Vektoren in der Ebene

CGR I Beleuchtung und Schattierung

Vergleich von Forward und Deferred Rendering

Probelektion zum Thema. Shadow Rendering. Shadow Maps Shadow Filtering

Raytracing. Tobias Pfeiffer. 29. November Freie Universität Berlin Fachbereich Mathematik und Informatik

Einleitung 2. 1 Koordinatensysteme 2. 2 Lineare Abbildungen 4. 3 Literaturverzeichnis 7

8 Dezimalzahlen und Fehlerfortpflanzung

Kapitel 12: Induktive

Licht und Schatten Visualieren mit dem PC. Andreas Asperl

Mathematische Probleme, SS 2018 Dienstag $Id: dreieck.tex,v /06/12 14:54:26 hk Exp $

Algorithmische Geometrie: Delaunay Triangulierung (Teil 1)

Echtzeitfähige hige Verfahren in der Computergrafik. Lehrstuhl für f r Informatik Computer Grafik und Visualisierung TUM

Transkript:

Ambient Occlusion Precomputed Radiance Transfer Johannes Hummel 01.10.2007 Inhaltsverzeichnis 1 Ambient Occlusion 2 1.1 Funktionsweise............................ 2 1.2 Dynamic Ambient Occlusion.................... 2 2 Precomputed Radiance Transfer 4 2.1 Rendering Equation......................... 5 2.2 Neuman Expansion.......................... 5 2.3 Funktionsweise............................ 7 1

1 Ambient Occlusion Heutzutage ist man bestrebt, Computergrak moglichst realitatsnah darzustellen. Allerdings ist dies mit den allgemein zur Verfugung stehenden Methoden nur schwer moglich und immer mit sehr hohem Rechenaufwand verbunden. Ambientes Licht addiert nur einen festgelegten Farbwert auf, ohne dabei 3D- Geometrieen zu berucksichtigen. Diuses und punktuelles Licht leuchten jeweils nur einen kleinen Bereich aus und man benotigt Unmengen an Lichtquellen, um eine Szene realitatsnah zu beleuchten. Die Plazierung und Berechnung dieser kostet sehr viel Rechenzeit. Hier setzt Ambient Occlusion (zu deutsch Umgebungsverdeckung) an. Vorgestellt wurde diese Methode auf der SIGGRAPH2002. Ambient Occlusion basiert auf der Beobachtung, dass Ritzen und Ecken eine geringere Beleuchtungsstarke aufweisen, als der Rest der Szene. Der Grund hierfur sind die zahlreichen, diffusen Reexionen an Engstellen. 1.1 Funktionsweise Um die Beleuchtung einer Szene mit Ambient Occlusion berechnen zu konnen, legt man eine Einheitskugel aus Licht um die komplette Szene. Das Licht wird nur durch Selbstverdeckung abgeschwacht bzw blockiert. Hierfur gibt es zwei Berechnungsverfahren: Inside-Out und Outside-In. Diese unterscheiden sich ledeglich in der Richtung in der Strahlen verfolgt werden. Beim Inside-Out Verfahren wird zuerst vom Betrachter aus ein Strahl ausgeschickt. Trit dieser Strahl auf eine mit einem Ambient Occlusion Shader belegte Flache, so werden vom Auftrepunkt des Strahls aus eine festgelegte Menge an neuen Strahlen innerhalb der Normalenhalbkugel fur einen Treertest ausgeschickt. Trit ein Strahl auf einen Punkt auf einer Oberache, so wird dies mit (1 - hitratio) gespeichert. Diese Schritte werden so lange wiederholt, bis auf jeden Punkt, den der Betrachter sieht, ein Strahl ausgesendet wurde. Das Ergebnis der Treffertests wird anschlieend als Intensitat gerendert oder mit der Environment- /Lightmap multipliziert. In Abbildung 1 sind diese vier Schritte bildlich dargestellt. Durch das schrittweise abtasten und die zufallig ausgesendeten Strahlen entstehen keine scharfen Kanten, wie bei anderen Verfahren. 1.2 Dynamic Ambient Occlusion Die Berechnung der Verdeckung benotigt durch die groe Anzahl an Treertests eine hohe Rechenkapazitat. Ein weiterer Nachteil von Statischem Ambient Occlusion ist, dass die Objekte einer Szene ihre Lage zueinander nicht verandern durfen. Aus diesem Grund hat NVIDIA eine Methode entwickelt Ambient Occlusion dynamisch zu berechnen. Mit aktuellen GPUs ist dies sogar ohne weiteres in Echtzeit moglich. Um diese Geschwindigkeit zu erreichen, werden zuerst Vertices in orientierte Scheiben mit Position, Normale und Flache zerlegt (Abbildung 2), wobei von der Vorderseite (Front-Face) Licht ausgeschickt und reektiert und von der Ruckseite (Back-Face) durchgelassen und der Schatten gesetzt wird. Anschlieend werden die jeweiligen Vertex-Flachen berechnet. Diese entspricht 1 der Flache 3 2

Abbildung 1: Grasche Darstellung des Inside-Out Verfahrens der anliegenden Dreiecke. Fur ein Dreieck mit den Kanten a,b und c gilt laut Heron: p s(s a)(s b)(s c) wobei s der halbe Umfang des Dreiecks ist: s = (a + b + c)=2 Abbildung 2: erlegung der Vertices Nach diesen Vorbereitungen werden die Positionen, Normalen und Flachen der Scheiben in eine Texturemap geladen, um die spateren Ambient Occlusion Berechnungen im Pixel-Shader durchzufuhren. Dies dient einzig dazu eit zu sparen, da die Berechnung von Animationen und Transformationen direkt auf der Texturemap durchfuhrbar sind. 3

Anschlieend wird Ambient Occlusion durch die Schatten-Approximation von Landis berechnet. 1 r cos Emax(1; 4 cos R ) q A + r2 In Abbildung 3 ist die Formel grasch dargestellt. Abbildung 3: Grasche Darstellung zur Berechnung von Dynamic Ambient Occlusion 2 Precomputed Radiance Transfer Eine weitere Moglichkeit gerenderte Szenen moglichst realitatsnah darzustellen ist Precomputed Radiance Transfer (PRT). Mit PRT kann man Objekte mit unterschieldichen Beleuchtungen, zum Beispiel direktes und indirektes Licht und Kaustiken, schattieren. Desweiteren wird jegliche Art von Transporteigenschaft berechnet. Nachteile von PRT sind die eingeschrankte Echtzeitfahigkeit, nur das Licht darf sich verandern, die Beleuchtung muss weit entfernt sein und je nach Implementierung darf nur niederfrequentes Licht benutzt werden. Desweiteren stellt PRT kein Beleuchtungssystem fur beliebige dynamische Szenen dar, da Objekte starr sein mussen und die Objekt zu Objekt Interaktion eingeschrankt ist. Anwendungsgebiete fur die PRT sind vor allem verschiedene Beleuchtungsumgebungen, Materialeigenschaften und Transporteekte, wie in Abbildung 4 dargestellt. Abbildung 4: Beispiele fur Einsatzgebiete von Precomputed radiance Transfer 4

2.1 Rendering Equation Um die Strahlung, die von einem Punkt ausgeht berechnen zu konnen, benotigt man die Rendering Equation. L P!! d = L e P!! d + L p!! d Le P!! d R Strahlung von Punkt P in Richtung d Eigenstrahlung von Punkt P in Richtung d f r P;! s!! d L (P! s ) HNP (! s ) ds Integral uber die Richtungen s auf der Normalenhalbkugel uber Punkt P Abb. 5a Abb. 5b Abb. 5c L (P! s ) Strahlung aus Richtung s zu Punkt P Abb. 5d fr P;! s!! d BRDF von Punkt P fur einkommende Strahlen s in Richtung d Abb. 5e H NP (! s ) Lambertsche Regel Abb. 5f a) b) c) d) e) f) Abbildung 5: Elemente der Rendering Equation 2.2 Neuman Expansion Da in der Informatik Integrale einen hohen Rechenaufwandt bedeuten, verwendet man in der Regel die Neumann Expansion, um die Berechnung des Integrals zu umgehen. In der Neumann Expansion wird die von einem Punkt ausgehende Strahlung als eine unendliche Reihe dargestellt (Abbildung 6a). L P!! d = L 0 P!! d + L 1 P!! d + ::: 5

Der erste Term der Reihe, L 0, steht fur das Licht, das von einer entfernten Beleuchtungsumgebung aus, direkt in Punkt P auftrit. Dieser Term ist ein Integral uber die Halbkugel in Punkt P (Abbildung 6b). Neu an diesem Ausdruck ist L env, die einzige Lichtquelle in dieser Szene. Da die Lichtquelle als weit entfernt angenommen wird, spielt die Lage von Punkt P in der Szene keine Rolle. Normalerweise wird dafur eine Environmentmap benutzt (Abbildung 6c). Der zweite neue Faktor ist die Visibility-Funktion V. Dies ist eine binare Funktion, die 1 ist, solange der Punkt die umgebende Environmentmap 'sehen' kann und 0, wenn dies nicht der Fall ist (Abbildung 6d). L 0 halt auerdem fest, wie das Licht, das in Punkt P ankommt, auftrit, um die ausgesandte Strahlung zu speichern. L 0 P!! d = f r P;! s!! d L env (! s ) V (P!! s ) HNP (! s ) ds Der zweite Term in der Neumann Expansion, L 1 stellt alle Pfade dar, die nach einem Sprung von der Environmentmap zu Punkt P gelangen und halt die ausgehende Strahlung fest (Abbildung 6e). Auch dieser Term beinhaltet ein konventionelles Integral, das den vorangehenden Term L 0 beinhaltet. Allgemein wird in diesem Term festgehalten, wie die Strahlung des vorangegangenen Sprunges die von Punkt P aktuell ausgehende Strahlung beeinut (Abbildung 6f). L i P!! d = f r P;! s!! d L i 1 (p! s ) (1 V (P!! s )) HNP (! s ) ds a) b) c) d) e) f) Abbildung 6: Elemente der Neumann Expansion 6

2.3 Funktionsweise Die von einem Punkt P ausgehende Strahlung lat sich auch einfacher darstellen. L out = L (s) T (s) ds L (s) ist dabei die Beleuchtungsfunktion, in der die Lichtquellen als Funktion aufgefat werden konnen. T (s) stellt die Transferfunktion dar, also die Antwort eines Objektes auf seine Beleuchtung als Funktion, die die eingehende Strahlung auf die ausgehende abbildet. Bei der PRT geht man davon aus, da das Objekt von einer entfernten Environmentmap umgeben ist. iel ist es, L env (w)! L (p! w) durch lineare Operationen fur jeden Punkt P zu berechnen. Daraus entsteht die Transfermatrix. Allerdings ergeben sich daraus einige Probleme. Bei den spekularen Eekten ist L out blickwinkelunabhangig und die BRDF ist nur fur diuse Komponenten konstant. Ein weiteres Problem ist der Neighbourhood-Transfer, also der Ein- u eines Objektes auf ein anderes Objekt zur Laufzeit, denn die Normalen des zweiten Objektes sind unbekannt. Dadurch kann man L out nicht vorberechnen. Die Losung fur dieses Problem ist Transfered Incident Radiance (TIR). Bei TIR wird die einfallende Strahlung aus allen Raumrichtungen fur jeden Punkt P der Szene berechnet. Der Unterschied zu L env liegt in der Verdeckung und in der Reexion, im Ummaskieren von L env in eine andere Funktion, in einer spharischen Funktion fur jeden Punkt P und im Neighbourhood-Transfer, die uber die Berechnung der freien Raumpunkte interpoliert wird (Abbildung 7). Abbildung 7: Transfered Incidence Radiance Vereinfacht lat sich der Ablauf der PRT folgendermaen darstellen: 1. Oine-Berechnung der Transfermatrizen 2. Online-Berechnung von L xfer durch Transfermatrizen 3. Auswertung der BRDF 4. Berechnung der Outgoing Radiance = TIR + reektierte Strahlung in P 5. Berechnung von L out in Punkt P 7