Inhaltsverzeichnis

3D-Generationsalgorithmus

Code

Beispielergebnis mit angepassten Variablen:

Listenpunkt

Beschreibung

Um gutaussehendes 3-Dimensionales Terrain zu generieren werden 2D und 3D Perlin-Noise-Algorithmen verwendet. Während man mithilfe einer üblichen Heightmap zwar relativ realistische Hügel erstellen kann, ist es nicht möglich nur durch eine heightmap Terrain zu erstellen, dass mehr als einen Höhenwert übereinander benötigt. (Beispielsweise Überhänge) 3D-Noise alleine bildet allerdings keine einheiteliche Oberfläche, sondern bildet eher „Blasen“ im Raum, ist also auch keine Lösung. Aus diesem Grund verwenden wir zuerst eine 2D Heightmap die grob die Form des Terrains vorgibt und erweitern diese dann mithilfe von 3D-Noise.

Der Programm selbst arbeitet folgendermaßen:

Die oben genannte Anpassungsfunktion nimmt dabei eine besonders wichtige Rolle ein und kann je nach Terrain abgeändert werden. Grundsätzlich soll sie dafür sorgen, dass Werte unter der von der Heightmap vorgegebenen Höhe vor allem als Boden markiert werden.

In dem Code-Beispiel lautet die Anpassungsfunktion $f(x) = (x-h-30)^3\cdot-0.025$

Dabei ist h der von der heightmap vorgegebene Höhenwert und x läuft in unserem Fall von 0 bis 60.