Aufgabenstellung
Ziel des Praktikums war die Darstellung von 3D-Tempelmodellen mit Hilfe einer Game-Engine.
Ein Schwerpunkt sollte dabei auf dem Vergleich verschiedener Engines sowie auf der Bereitstellung themenbezogener Informationen sowie eines kleinen Tutorials liegen, da dieses Projekt auch als Vorläufer für die Darstellung der im Rahmen des Angkor-Projekts erstellten Tempelmodelle gedacht ist.
Es mussten also zunächst einmal verschiedene, potenziell geeignete Game-Engines herausgesucht und verglichen werden, wozu sich die Erstellung einer Tabelle mit relevanten Features anbot. Auf dieser Grundlage sollte eine Engine ausgewählt werden, die die Anforderungen für die Visualisierung der Tempelmodelle am Besten erfüllt.
Vor Beginn der eigentlichen Arbeit mit der Engine mussten nun noch die Formate für den Input der Game-Engine und den Output des verwendeten Modellierungsprogramms explizit gemacht und ggf. Möglichkeiten zur Konvertierung der benötigten Formate gefunden werden.
Schließlich sollte das Tempelmodell visualisiert werden, wofür noch einiges an geeigneten Texturen, Heightmaps und Hintergrundmusik, sowie Möglichkeiten zur Generierung einer möglichst natürlichen Umgebung mit Bäumen und Gras gefunden werden mussten.
Umsetzung
Auf den folgenden Seiten wird meine Lösung für diese Aufgabe dargestellt. Für die
Visualisierung des Tempelmodells wurde die Irrlicht Engine verwendet. Resultat ist ein interaktives Modell des Sari-Han in einer natürlichen Umgebung mit Hintergrundmusik.
Der Vergleich verschiedener Engines ist auf diesen Webseiten zu finden, genauso wie ein Tutorial, das gleichzeitig als ausführliche Dokumentation und Erklärung des Codes dient. Einige Begriffe im Tutorial sind verlinkt auf ein kleines Glossar, in dem ein paar relevante Grundbegriffe zusammengetragen sind.
Der vollständige Code, sämtliche verwendeten Materialien, das vorkompilierte Programm für Windows sowie die Folien für die Präsentation dieses Projektes sind auf der Downloadseite zu finden. Die Folien enthalten weitere Informationen zur Irrlicht Engine und zu den im Projekt verwendeten Plugins.
Ausblick
Der in diesem Praktikum entstandene Prototyp bietet in vielen Bereichen noch
Möglichkeiten zur Verbesserung bzw. Erweiterung, die in weiterer Arbeit
ergänzt werden könnten:
- Baumgenerator:
- Verwendung von L-Systemen zur Generierung von Bäumen
- Übergang zwischen den LODs verbessern
- Unterstützung für Windgenerator wie bei Gras
- Methode zur Generierung eines flächendeckenden Waldes
- Shader reparieren
- Gras:
- Methode zur Anpassung des Grasteppichs an die Größe des Terrains
- Tile-manager zur effizienten Generierung von Gras
- Optimierung des Wind-grids
- Methode zur automatischen Positionierung der Grasflicken
- keine Darstellung von verdecktem Gras ("hidden grass removal")
- Generierung von unterschiedlich aussehenden Grasbüscheln
- Terrain:
- Verwendung von prozeduralen Texturen
- Anpassen von Textur und Gras (Boden mit Gras: braun, Boden in Ferne: grün)
- Simulation endlosen Terrains
- Generierung von Landschaften:
- fraktaler Landschaftsgenerator
- Integration von Geo-Info-Daten
- zusätzliche Effekte:
- Wolken (Plugin vorhanden)
- Lensflare (Plugin vorhanden)
- ...
Für die Implementierung von zusätzlichen Features kann der in diesem Projekt
entstandene Prototyp natürlich gerne weiterverwendet werden.