Ich kenne ein paar Algorithmen, um eine Höhenkarte für einen Planeten zu erstellen, aber die meisten von ihnen berücksichtigen nicht die unterirdischen Aspekte des Planeten (Höhlen, Tunnel, ...).
Gibt es Algorithmen, die sich darum kümmern? Werden sie nur verwendet, nachdem eine erste Höhenkarte erstellt wurde, oder könnten sie gemeinsam verwendet werden, um ein Höhlen-/Tunnelnetzwerk effizienter zu erstellen?
Alle Hinweise auf Algorithmenbeschreibungen, Umfragen oder Arbeitsbibliotheken sind willkommen!
Diese Art von Dingen kann sehr leicht "gefälscht" werden, es besteht keine Notwendigkeit, die Welt und Erosion zu simulieren, da Sie sich mehr darum kümmern, dass die Dinge gut aussehen.
Hier ist ein einfaches Beispiel: http://hub.jmonkeyengine.org/forum/topic/how-to-approach-random-cubic-cave-generation/
Grundalgorithmus:
- Beginnen Sie mit einem zufälligen Punkt und einem zufälligen Radius unter Verwendung eines Skalierungsfaktors.
- Berechnen Sie eine zufällige Anzahl von Zweigen mit einer zufälligen Länge und zufälligen Breite basierend auf dem Skalierungsfaktor
- Erstellen Sie Punkte am Ende dieser Zweige mit zufälliger Größe und Skalierungsfaktor basierend auf dem lokalen Skalierungsfaktor
- Rekurs auf eine maximale Tiefe
Hier gibt es einen langen und sehr informativen GPU-Gems-Artikel, in dem es um die prozedurale Terrain-Generierung geht:
http://http.developer.nvidia.com/GPUGems3/gpugems3_ch01.html
Die Details sind zu lang, um in diese Antwort hineingezogen zu werden, aber die Grundidee ist, dass sie verschiedene Rauschfunktionen kombiniert, um dynamisch und prozedural Gelände wie dieses zu generieren:
Möglicherweise können Sie einen zellulären Automaten verwenden, um die Höhlenbildung zu simulieren, nicht im einfachen Sinne von Conways Spiel des Lebens, sondern indem Sie den Automaten so programmieren, dass er Erde mit unterschiedlichen Dichten simuliert, die zufällig in einem 2D- oder 3D-Gitter angeordnet sind, flüssig, was könnte sei Wasser oder Magma und Luft.
Durch die richtige Einstellung der Regeln würde Wasser in zufälligen Abständen und Bereichen von oben kommen und die Erde erodieren, jede Zelle schwächen, bis sie verschwand, oder es könnte Steinablagerung in leeren Räumen (Stalaktiten und Stalagmiten) verursachen. Wenn Sie eine 3D-Simulation hätten, könnten Sie auch die Schwerkraft hinzufügen, was erfordert, dass sich das Wasser immer horizontal oder bergab bewegt, es sei denn, die Fließgeschwindigkeit wurde irgendwann eingeschränkt (an diesem Punkt könnte es stromaufwärts der Blockade steigen) oder es wurde ausreichend heiß .
Die Schwerkraft könnte auch verwendet werden, um Einstürze zu bestimmen - wenn nicht ausreichend starke Erde aufgefordert wird, eine zu große Entfernung ohne Unterstützung zu überbrücken, würde sie einstürzen.
Magma würde von unten kommen, ausgehend von einem Hot Spot, dessen Intensität und Position der maximalen Hitze im Laufe der Zeit variieren kann, und Magma könnte sich zu hartem Gestein verfestigen oder wieder abklingen, um Hohlräume zu hinterlassen (abhängig von der Art des Hot Spots und / oder zufällige Faktoren), und es würde auch Wasser erhitzen, wodurch es aufsteigt.
Dies wäre nicht unbedingt schnell zu programmieren und nicht besonders schnell auszuführen, aber richtig ausgeführt, könnte es zu sehr realistischen Ergebnissen führen.
DonyorM
Pech
DonyorM
Tschad
Pech
Trichoplax ist jetzt auf Codidact
Neil Slater
Einladen