Displacement-Mapping
Geometrie wird verschoben
ermöglicht Veränderung der Silhouette
Idee:
Oberflaechen werden in Teilpolygone unterteilt und Eckpunkte entlang Normalen bzgl. Hoehenfeld-Bump-Map verschoben
Pre-Sampled Displacement Mapping
Bei (feinem) Polygonmesh wird Hoehenposition der Vertices verschoben
Sampled Displacement Mapping
Einfaches Polygonmesh wird durch adaptive Tesselation zunächst verfeinert und Höhenposition der Vertices anschließend verschoben
Displacement-Mapping Vor/Nachteile
Vorteile:
optimaler Eindruck von Tiefe durch Veränderung der Geometrie
erlaubt Anpassung von Silhouetten, Selbstschattierung, Selbstokklusion
Nachteile:
extrem berechnungsintensiv durch viel zusätzliche Geometrie
Faked Global Illumination
Globale Beleuchtung (Global Illumination) bezeichnet Simulation der Licht-Wechselwirkungen von Objekten, Faked Global Illumination täuscht solche Effekt vor
Light-Mapping
Methode um statische Per-Pixel Beleuchtung zu erreichen
Für alle statischen Flächen werden Texturen vorberechnet, die pro Texel Lichtwert enthalten
Projektive Texturen
nutzen Texturkoordinaten die mittels geometrischer Projektion berechnet werden
Textur wird “in Szene” (unabhängig von Kameraprojektion) perspektivisch projiziert
Texturkoordinaten werden durch Texturprojektion mit Projektionsmatrix berechnet
Texturprojektion Berechnung
Texturprojektion
definiert Sichtvolumen wie bei Kameraprojektion
Texturkoordinaten weredn durch Projektion von 3D- Eckpunkten auf 2D-Textur berechnet
Transformation von Sichtkoordinaten nach NDCs
Texturkoordinaten (s,t) ergeben sich aus Punkten (x,y,z) in NDCs durch s = (x+1)/2, t =(y+1)/2
Shadow-Mapping
Idee: Verwendung projektiver Texturen für Schattenwurf aus Richtung der Lichtquelle
Vorgehen:
Rendering eines Tiefenbildes der Szene aus Sicht der Lichtquelle zur Erzeugung einer Shadow-Map
speichere dazu z-Werte (im Bereich 0,1) nach Projektion in Textur ab
Rendering der Szene aus Sicht der Kamera unter Verwendung der SHadow-Maps als projektive Textur
Shadow Mapping Limitierungen
Aliasing bei weit entfernten Lichtquellen
nur “harte” Schatten darstellbar
Ambient Occlusion
Idee: Simulation von globalen Beleuchtungseffekten an einem bewölkten Tag, Umgebungslicht wird durch naheliegende Geometrie blockiert
Sichtbarkeitsfunktion S
Wie groß ist der Anteil des “Himmels”, welcher von Vertex V aus sichtbar ist
Ambient Occlusion Algorithmus
Fuer jeden Vertex V:
sende gleichmaessig Strahlen in Hemisphaere um V
berechne relativen Anteil der Strahlen welche Himmel erreichen
speichere S(V) als Attribut des Vertex
Ambient Occlusion Anwendung
Multiplikation des berechneten Graustufenbilds mit Ergebnis der Phong-Beleuchtung
Ambient Occlusion Vorteile
erlaubt Simulation globaler Illumination in Echtzeit (für statische Szenen)
verstärkt Tiefeneindruck und gibt Hinweise zur Oberflächenstruktur sowie zu räumlicher Nähe
ermöglicht Umsetzung von weich verlaufenden Schatten
Screen Space Ambient Occlusion (SSAO)
nutzt Tiefeninformationen aus z-Buffer
Ziel: Performance-Gewinn durch einfachen Tiefenwertvergleich statt komplexem Raytracing
SSAO Algorithmus
waehle in Umkreis von V zufällige Samples
vergleiche Tiefe jedes Samples mit Wert z in z-Buffer
berechne S(V) als relative Anzahl der Samples, für welche z(Sample) <z
SSAO Vorteile
approximation globaler Beleuchtungseffekte in Echtzeit (auch für dynamische Szenen)
Unabhängig von Szenenkomplexität
keine Auslastung der CPU (vollständige Berechnung auf GPU)
Last changed15 days ago