Verlaufskreise für die Kartenerstellung
In dieser Diskussion befassen wir uns mit einem alternativen Ansatz zur Generierung zufälliger Inseln in Kartengeneratoren, der Verlaufskreise nutzt . Diese Technik zielt darauf ab, die unnatürlichen kreisförmigen Kanten zu überwinden, die bei anderen Methoden häufig vorkommen.
Diamant- und Quadratalgorithmus mit Modifikationen
Anstatt Perlin Noise zu verwenden, verwenden wir eine modifizierte Version des Diamond-and-Square-Algorithmus. Zu den wichtigsten Unterschieden zu herkömmlichen Implementierungen gehören:
-
Anfangsbedingungen: Die Geländehöhenkarte wird mit minimaler Höhe an Ecken und einem zufälligen Wert für den Mittelpunkt initialisiert.
-
Inselmodifikation: Der erste Diamantschritt wird weggelassen und der Mittelpunkt wird mit einer zufälligen Höhe initialisiert Wert.
-
Grenzanpassung: Grenzpunkte werden an die minimale Höhe angepasst (Unterwasser oder ein zufälliger Wert in der Nähe).
-
Höhennormalisierung: Die generierten Geländehöhen werden auf einen angegebenen Höhenbereich neu skaliert.
Oberflächentyp und Merkmale
Sobald die Geländehöhenkarte erstellt wurde, werden Oberflächenmerkmale basierend auf Höhenbereichen hinzugefügt: Wasser, Sand, Vegetation, Felsen und Schnee. Höhenbasierte Neigungsparameter beeinflussen die Feature-Platzierung und zusätzliche Features wie Flüsse und Wasserfälle können mithilfe zusätzlicher Regeln integriert werden.
Diamant- und Quadratalgorithmus in C
Das bereitgestellte C Code demonstriert den modifizierten Diamant- und Quadratalgorithmus:
-
Konfigurationsparameter:Minimum und maximale Höhe, Meeresspiegel, Höhenbereiche für verschiedene Oberflächentypen und Neigungsparameter.
-
Geländehöhenkarte: Ein zweidimensionales Array (ter[][]) speichert die Geländehöhenwerte .
-
Oberflächentypzuordnung: Ein zweites zweidimensionales Array (typ[][]) repräsentiert die Oberfläche Typen.
-
Zufällige Höhe: Rauten- und Quadratstufen verwenden zufällige Höhen innerhalb bestimmter Bereiche.
-
Randanpassung: Randpunkte werden auf das Minimum eingestellt Höhe oder zufällige Werte in der Nähe.
Vorteile und Überlegungen
Dieser Ansatz bietet Vorteile gegenüber auf Perlin Noise basierenden Methoden:
- Erleichterte Konfiguration mit genau definierten Parametern.
- Gute Höhenverteilung mit Insel- ähnliche Eigenschaften.
- Einbindung verschiedener Oberflächenmerkmale und zusätzlicher Elemente wie Flüsse.
Notizen
- Der Algorithmus neigt dazu, auf Inseln einen einzigen großen Hügel zu erzeugen. Um dieses Problem zu lösen, können mehrere Geländekarten geschichtet werden.
- Der Zufallsprozess kann angepasst werden, um mehr zentrale Hügel einzuführen.
- Beleuchtungstechniken können das visuelle Erscheinungsbild des Geländes verbessern.
Das obige ist der detaillierte Inhalt vonWie können Gradientenkreise und ein modifizierter Diamant-Quadrat-Algorithmus natürlicher aussehende Zufallsinseln erzeugen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!