- Der Rechenaufwand für die Beleuchtung ist unabhängig von der Komplexität der Szenen-Geometrie
- Es lassen sich deutlich mehr Lichtquellen berücksichtigen als beim Forward Rendering
- Die im Rahmen des Deferred Lightings benötigten Szeneninformationen lassen sich auch im Rahmen weiterer Post-Prozessing-Effekte verwenden (Bsp. Screen Space Ambient Occlusion)
Mit dem heutigen Tutorial werden wir nun ebenfalls die Beleuchtungsberechnungen im Rahmen des Post-Processings durchführen. Zuständig für die Berechnungen ist der Fragment Shader ScreenSpaceLighting.frag, welcher im Verzeichnis Bin/Shader/ zu finden ist.
Die für die Beleuchtung benötigten geometrischen Informationen müssen zuvor in die nachfolgenden Texturen gerendert werden, die allesamt an einen als G-Buffer (Geometry Buffer) bezeichneten Framebuffer gebunden sind:
- Textur 1: Kameraraum-Positionen und Tiefenwerte der sichtbaren Szenenpixel
- Textur 2: Kameraraum-Normalen der sichtbaren Szenenpixel
- Textur 3: Die texturierten, jedoch nicht beleuchteten sichtbaren Szenenpixel
- Textur 4: Reflektionsvermögen (Farbe und Intensität) der sichtbaren Szenenpixel
- Textur 5: selbstleuchtende Szenenpixel (Bsp. mittels Light Map beleuchtet)
Hinweis:
Für die Ausführung dieses Programmbeispiels muss der Treiber Ihrer Grafikkarte die OpenGL Version 3.3 unterstützen.