Optimierung und Generierung von prozedural generierten 3D-Welten

Projektteam: Hörner Lucas, Hartl Andreas (Betreuer)

Typ: Projekt Bachelor, Bachelorarbeit

Tools: Unity, Blender, Illustrator

Plattform: Windows

Zeitraum: 2023/24

Artists erstellen heutzutage 3D-Welten welche oft interaktiv erforschbar sind. Der Prozess ist jedoch zeitaufwendig und kostspielig. Die Generierung von Inhalten mittels Algorithmen kann den Prozess unterstützen und somit eine effiziente Erstellung umfangreicher Inhalte ermöglichen.

In dieser Arbeit wird die Effizienz von Platzieralgorithmen in prozedural generierten 3D-Welten umfassend untersucht. Die Kernaspekte dieser Arbeit beinhalten die Optimierung der Prozesse zur Generierung von 3D-Welten sowie die verbesserte Integration von Objekten in diese Welten, wobei der Fokus auf die grafische Darstellung und deren Optimierung gelegt wird.

Technische Details und Implementierung der Platzieralgorithmen

Die technische Umsetzung der prozeduralen Generierung in dieser Arbeit beinhaltet speziell entwickelte Algorithmen, die darauf abzielen, virtuelle Umgebungen nicht nur automatisch zu erstellen, sondern auch effizient zu rendern. Dabei werden vielfältige Aspekte von Spielwelten und Landschaften durch die Verwendung von Rauschfunktionen gestaltet, welche eine Grundlage für die natürliche Variation von Terrains bieten.

Algorithmische Grundlagen der prozeduralen Generierung

Die prozedurale Generierung basiert auf algorithmischen Prinzipien, die eine pseudo-zufällige aber dennoch kontrollierte Erstellung von Landschaftsmerkmalen ermöglichen. Diese Technik verwendet mathematische Funktionen zur Erzeugung von Höhenkarten, welche die Grundform des Terrains definieren. Für die Generierung von detaillierteren Strukturen wie Vegetation und Gebäuden werden zusätzliche Algorithmen eingesetzt, die spezifische Parameter wie Dichte, Verteilung und Vielfalt steuern.

Platzieralgorithmen und ihre Optimierung

Die in dieser Arbeit untersuchten Platzieralgorithmen sind entscheidend für die effiziente und realistische Anordnung von Objekten innerhalb der generierten Welten. Diese Algorithmen analysieren das Terrain, um geeignete Standorte für die Platzierung von Objekten basierend auf topografischen und umweltbezogenen Kriterien zu identifizieren. Beispielsweise werden Algorithmen verwendet, die verhindern, dass Vegetation auf unnatürlichen Oberflächen wie Wasserflächen oder steilen Klippen platziert wird.

Optimierung des Renderings

Nach der Platzierung der Objekte ist das Rendering dieser Elemente von entscheidender Bedeutung für die Nutzbarkeit des Systems. Moderne Techniken des Instancing und Culling werden angewendet, um die Anzahl der notwendigen Rendering-Operationen zu reduzieren. Instancing ermöglicht es, mehrere Instanzen eines Objekts mit einem einzigen Draw Call zu rendern, was besonders bei der Darstellung von Vegetation wie Bäumen und Gräsern effizient ist. Culling-Verfahren wie Frustum-Culling und Occlusion-Culling tragen dazu bei, nur die im Sichtfeld des Nutzers befindlichen Objekte zu rendern, wodurch die Framerate signifikant verbessert wird.

Diskussion

Die Ergebnisse dieser Arbeit beinhalten praktische Lösungen für die Spieleentwicklung und die Erstellung von Simulationsumgebungen. Durch die effiziente Integration von Platzieralgorithmen können Entwickler umfangreiche und detailreiche Welten erschaffen, die sowohl performant als auch ästhetisch ansprechend sind. Dies kann dazu beitragen, Ressourcen zu schonen und die Entwicklungszeit zu verkürzen.