In unserem heutigen Tutorial werden wir uns mit der
Darstellung von Wasser-Effekten befassen. Im Gegensatz zu den allgemein
etablierten Techniken bei der Wasserdarstellung werden wir jedoch einen
gänzlich anderen Weg einschlagen:
- Einerseits erfolgt die Animation der dreidimensionalen Wasserwellen im Rahmen des Post-Processings ohne Verwendung zusätzlicher Vertexdaten für die Modellierung der Wasseroberfläche und
- andererseits werden sämtliche Echtzeit-Reflexionen ohne einen zusätzlichen Render-Durchgang ausschließlich im Screen Space berechnet (Screen Space Local Reflections).
Features:
- 3D-Wellenanimationen (ohne zusätzliche Vertex-Gitter)
- Echtzeit-Reflexionen und Refraktionen der Umgebung (ohne zusätzliche Render-Durchgänge)
- spiegelnde Reflexion des Sonnen- sowie des Umgebungslichts
- Schaumkronen auf den Wellen und im Flachwasser-Bereich
- Unterwasserdarstellung samt Kaustiken
Alle für die Wasserdarstellung benötigten Render-Parameter finden sich in der Konfigurationsdatei DemoConfig.txt. Zuständig für die Wasserdarstellung ist der Fragment Shader ScreenSpace3DWaterWithFoamWithCaustics.frag, welcher im Verzeichnis Bin/EngineCoreShader/ zu finden ist.
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.
GraphicsAndPhysicsFrameworkDemo35.zip