Ich verwende derzeit 3D Perlin Noise, um zufälliges Terrain in Kombination mit Marching Cubes zu generieren.
Mein Problem scheint darin zu liegen, die Rauschfunktion zu skalieren, um angemessene Höhen in meinem Gelände zu erreichen. Wenn nur eine Oktave verwendet wird, werden offensichtlich alle Punkte in Bezug auf das Rauschen interpoliert, was zu ziemlich glatten Daten führt. Um jedoch Überhänge / Höhlen / gezacktes Gelände zu erhalten, muss ich mehrere Oktaven mit unterschiedlichen Amplituden verwenden und / oder die resultierenden Werte auf meine maximale Höhe der Karte skalieren.
Ich vermisse vielleicht etwas, aber durch die Verwendung von Marschwürfeln mit 3D-Perlin-Rauschen bekomme ich regelmäßig schwebende Geländestücke.
Irgendwelche Ideen, wie ich das korrigieren könnte oder ob es andere Rauschfunktionen gibt, mit denen ich Ergebnisse erzielen könnte, wie ich sie beschreibe? Ich möchte Hügel / Täler / Berge / Seen / etc. Es sind keine schwebenden Bits erforderlich, die vom Rest der Karte getrennt sind. Ich glaube, dies ist ein ähnliches Problem wie bei Minecraft, wenn es Gelände gibt, das gelegentlich nach der Generation am Himmel schwebt.
Danke für jede Hilfe, Mythics
Es mag zu spät sein, um zu antworten, aber ich begann jetzt mit dieser Sache der Voxel-Terrain-Generierung, mit Perlin Noise, und fand einen Weg, das Terrain ohne diese schwebenden Teile zu erstellen. Ich denke, dass dies Ihnen helfen kann. Um das Gelände zu erstellen, erstelle ich zuerst eine Höhenkarte, bevor ich die Pixel aus dieser Höhenkarte lese. Nun kommt der interessante Teil, ich lese den "Helligkeits" -Wert (eigentlich ist der Graustufenwert) jedes Pixels auf dieser Höhenkarte und das gibt mir die Höhe für diesen bestimmten Teil der Karte, um dann das Gelände zu erstellen, von dem ich annehme, dass diese Höhenkarte ist Mein Terrain von oben betrachtet. Wenn also der Graustufenwert eines Pixels (nachdem es auf meinem Terrain "maxHeight" abgebildet wurde) auf dieser Höhenkarte ist, sagen wir 30, Das bedeutet, dass ich an diesem bestimmten Punkt meines Geländes nur 30 Voxel in der y-Achse erzeugen werde, und dies gibt mir ein Gelände ohne schwebende Teile. Wenn Sie Höhlen usw. möchten, können Sie ein anderes Geräusch auf das Original (unter der Oberfläche) anwenden, um diese Höhlen zu erstellen. Hoffe das funktioniert bei dir.
quelle