Frage

Ich habe es geschafft, den Algorithmus der Marching Cubes in C#umzusetzen. Bisher habe ich den Algorithmus versucht, eine Sphäre zu machen. Das ist einfach, da die Dichtefunktion nicht sehr komplex ist, um zu codieren.

Aber jetzt möchte ich den Algorithmus dazu bringen, weiter zu gehen und einige interessante Terrains für Spiele zu machen. Daher würde ich für diese Aufgabe richtige Dichtefunktionen benötigen. Das erste, was mir in den Kopf kommt, ist ein volumetrisches Perlin -Rauschen. Das ist in Ordnung, aber ich suche ein Gelände ohne konvexe Formen, ich meine, für den Moment ohne Höhlen und ähnliche Geometrien.

OK, ich weiß, dass eine einfache Höhenkarte den Job machen kann, aber ich möchte ein voxelgeneriertes Gelände. Welche Art von Dichtefunktion o pseudocode müsste ich sie implementieren?

War es hilfreich?

Lösung

Sie können leicht eine Heightmap in Voxel -Gelände umwandeln. Jedes Pixel in Ihrer Höhe entspricht einer Voxelsäule in Ihrer Voxel -Welt. Für ein bestimmtes Pixel in der Heightmap lesen Sie die Höhe. Iterieren Sie dann jedes Voxel in der entsprechenden Spalte und stellen Sie es auf 'Feststoff' ein, wenn es geringer ist als Ihre Referenzhöhe oder "leer", wenn es mehr als Ihre Referenzhöhe ist.

Hier ist etwas Beispielcode Verwendung der Polyvox Bibliothek.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top