Prozedurale Terrain-Generierung und -Darstellung (Demoprogramm)

Die Terrain-Generierung und -Darstellung zählt zu den interessantesten aber auch anspruchsvollsten Themenkomplexen im Bereich der Spieleprogrammierung. Das hier vorliegende Beispielprogramm soll Ihnen als Einstiegshilfe dienen und demonstriert in diesem Zusammenhang den Einsatz von OpenGL-Texture-Buffer- und Texture-Array-Objekten bei der Darstellung von virtuellen Landschaften, die aus einer großen Anzahl von Terrain-Tiles zusammengesetzt sind (Texture Buffer Instancing).

Angefangen beim einfachen 2D-Terrain bis hin zum deutlich komplexeren 3D-LOD-Terrain mit Texture Splatting unterstützt das Programm die folgenden vier Render-Techniken (letzter Eintrag in der Datei DemoConfig.txt im Ordner Bin):
  • Einfaches 2D-Terrain (0)
  • Einfaches 2D-Terrain mit Texture Splatting (1)
  • Einfaches 3D-Terrain mit Texture Splatting (2)
  • 3D-LOD-Terrain mit Texture Splatting (3)





    Die Terrain-Generierung (3D-LOD-Terrain) erfolgt skriptbasiert (siehe LODTerrainGenerationDesc.txt im Ordner Terrains), wobei die folgenden prozeduralen Techniken miteinander kombiniert werden können:


    • Diamond Square
    • Cell Noise (Voronoi)
    • Perlin Noise
    • Square Value Noise
    • Definition einzelner Hügel/Berge/flacher Flächen
    • Erosion
    • Digitale Filterung
    • Höhen- bzw. Steigungsabhängige Texturierung
    • usw.


    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.

    TerrainRenderingDemonstrations.zip

      

    Interessante Artikel