Prozedurale Generierung großflächiger realistischer Landschaften in Echtzeit
Abschlussarbeit (Bachelor)

Zusammenfassung
Diese Bachelorarbeit stellt einen Echtzeit-Landschaftsgenerator für realistische großflächige
Landschaften vor. Im Rahmen dieser Arbeit wurden unterschiedliche Ansätze der prozeduralen
Landschaftsgenerierung in Computerspielen und Computergrafik untersucht, welche sich durch
unterschiedliche Anwendungen und Zielsetzungen unterscheiden. Dabei wurde festgestellt, dass
es kaum Echtzeit-Landschaftsgeneratoren, implementiert in Computerspielen oder verwandten
Arbeiten gibt, welche räumlich unbegrenzte und besonders großflächige Landschaften unter
Beachtung geologischer Grundlagen und visuellem Realismus erzeugen können. Diese Arbeit soll
diese Lücke schließen. Das Programm, welches mit der Unity-Engine entwickelt wurde, besteht
aus zwei Teilen.
Im ersten Teil wurde eine Engine entwickelt, welche auf Basis von Chunks theoretisch unendliche
Welten generieren kann, indem anhand einer Spielerposition Chunks dynamisch nachgeladen
werden können. Die grafische Darstellung erfolgt mittels einer Heightmap, welche für jede
Koordinate eine Höhe und eine Farbe speichert. Die Generierung einzelner Chunks erfolgt mit
Multithreading unter Benutzung des C#-Threadpools. Zudem gibt es ein Level of Detail System,
welches die Mesh-Auflösung dynamisch anhand der Distanz zum Spieler anpassen kann.
Im zweiten Teil wurde der eigentliche Landschaftsgenerator implementiert, welcher mit der
mathematischen Verknüpfung von Noisefunktionen und Interpolationsalgorithmen für einen
beliebigen reellen zweidimensionalen Inputvektor Heightmapdaten generieren kann, ohne dabei
bestehende Daten zu benötigen. Im Unity-Inspektor können sämtliche Parameter des Landschafts
generators konfiguriert werden. Der Landschaftsgenerator ist in der Lage kontinentales Terrain,
Biome, unterschiedliches Basisterrain und vielfältige Oberflächenschichten zu generieren. Die
vorgestellte finale Konfiguration beinhaltet die Generierung von 14 unterschiedlichen Biomen,
welche zum Großteil von den Ökozonen der Erde abgeleitet sind, aber auch unterschiedliche
Gebirgetypen beinhaltet. Als Oberflächen können unterschiedliche Böden, wie die Höhenstufen
von Gebirgen, aber auch dreidimensional angedeutete Strukturen, wie Vegetation und Gewässer
generiert werden, darunter Wälder, Seen, Flüsse, Schluchten und Felsen.
Im Vergleich zu anderen Arbeiten sind die so generierten Landschaften subjektiv gesehen realis
tisch, solange diese aus der Ferne betrachtet werden. Aus geologischer und physikalischer Sicht
gibt es beim Realismus allerdings einiges Verbesserungspotential. Die Performance ist gut, selbst
bei idealen Einstellungen werden alle Chunks in Sichtweite in etwa vier Sekunden generiert und
geupdatet. Damit ist die Rechenzeit erheblich schneller als in Generatoren, welche mittels
aufwändiger physikalischer Simulationen funktionieren, und ist gut geeignet für die Anwendung
in einem Computerspiel, wie etwa einem Flugsimulator. Auch bei der Performance gibt es noch
einiges Verbesserungspotential.
Schlagworte
prozedural
landschaft
unity
großflächig
heightmap
biom
gebirge
landschaft
unity
großflächig
heightmap
biom
gebirge
Umfang
78 S.
Link zur Veröffentlichung
Sammlungen