Im heutigen Tutorial demonstrieren wir Ihnen die Darstellung
von Lens Flares und God Rays im Verlauf der Post-Processing-Phase.
Lens-Flare-Effekte
entstehen durch Streulichtreflexionen im Linsensystem einer Kamera. Ihre
Darstellung erfolgte lange Zeit über ausschließlich mithilfe von Billboards,
die entlang einer durch die Bildmitte und Lichtquelle verlaufende Achse
positioniert und ausgerichtet wurden. Beim Screen-Space-basieren Ansatz
ersetzen wir die einzelnen Billboards durch
Mehrfachabbilder (Ghosts) der für die Linsenreflexionen verantwortlichen Lichtquelle und simulieren darüber hinaus die chromatische Aberration (Chromatic Distortion) des Linsensystems – ein Abbildungsfehler, der dadurch entsteht, dass Licht unterschiedlicher Farbe unterschiedlich stark gebrochen wird (Regenbogen- bzw. Prismeneffekt).
Mehrfachabbilder (Ghosts) der für die Linsenreflexionen verantwortlichen Lichtquelle und simulieren darüber hinaus die chromatische Aberration (Chromatic Distortion) des Linsensystems – ein Abbildungsfehler, der dadurch entsteht, dass Licht unterschiedlicher Farbe unterschiedlich stark gebrochen wird (Regenbogen- bzw. Prismeneffekt).
God Rays (Light Shafts, Crepuscular Rays) sind das Resultat von Streuprozessen, bei denen Lichtstrahlen an Wassertropfen und Schmutzpartikeln in der Atmosphäre in Richtung eines Beobachters abgelenkt werden. Aber nur keine Sorge, Sie müssen kein Atmosphären-Physiker sein, um die Funktionsweise der von uns verwendeten God-Ray-Shader-Programme nachvollziehen zu können. Das Ziel der Shader-Berechnungen besteht darin, für jedes Szenenpixel den Lichtanteil zu ermitteln, der aus der Richtung der Lichtquelle kommend in die Blickrichtung des Beobachters gestreut wird:
- Hierzu berechnet man für jedes Szenenpixel die Richtung zur Lichtquelle im Bildraum und unterteilt den Abstand des Szenenpixels zur Lichtquelle (den Lichtweg) in gleichmäßige Sampling-Bereiche.
- Wird der Lichtweg entlang eines Sampling-Bereichs durch ein lichtundurchlässiges (opakes) Szenenpixel blockiert, wird das Sample (die Stichprobe) verworfen.
- Wird der Lichtweg nicht blockiert, dann wird ein wenig Licht in Richtung des betrachteten Szenenpixels gestreut, wobei sich die Streulichtintensität mit zunehmendem Abstand zwischen der Lichtquelle und der Sampling-Position verringert.
Resultat: In
Abhängigkeit von der Anzahl der verworfenen Samples bilden sich zunehmend
dunkler werdende Bereiche (Schattenräume aus).
Hinweise zum Erstellen eines neuen Projekts:
- Kopieren Sie den Ordner GraphicsAndPhysicsFrameworkImports ins Projektverzeichnis
- Kopieren sie alle dll-Dateien sowie die Konfigurationsdatei ResolutionAndRendering.txt aus besagtem Ordner ins gleiche Verzeichnis, in dem sich auch die exe-Datei befindet (in unseren Programmbeispielen ist dies das Bin-Verzeichnis)
- Binden Sie die folgenden Dateien in Ihr Projekt ein: GraphicsAndPhysics_Framework_Imports.h, GraphicsAndPhysics_Framework_Imports.lib, glew32.lib, glew32s.lib, glut32.lib. Die Glew- und Glut-Bibliotheken ermöglichen die Nutzung der aktuellen OpenGL-Spezifikationen unabhängig vom Framework.
GraphicsAndPhysicsFrameworkDemo34.zip