2D-Grafik Diamond-square Algorithmus

wef34fewrg

Aktives Mitglied
Diamond-square wikipedia


Hallo,

bin gerade am Anfang mit ein bisschen Grafikprogrammierung und habe zwei Fragen.

1. Verschiebung
Square-Step
Zuerst werden die vier Eckpunkte der Karte mit zufälligen Werten gefüllt. Der Mittelpunkt wird berechnet, indem man den Mittelwert der vier Eckpunkte bildet.
Auf diesen Mittelwert wird nun noch eine zufällige Verschiebung addiert, um Struktur in das Terrain zu bringen.[...] Quelle

Wie hoch fällt die Verschiebung aus? Ich arbeite mit einem int Array das Werte zwischen 0 bis 255 (schwarz bis weiß) speichert. Wenn ich nun Farbwerte durch den Square bzw. Diamond step berechne addiere ich einen Wert zwischen -128 bis 127 auf den aktuellen Farbwert. Die Ergebnisse sehen eigentlich passabel aus (unter Berücksichtigung von 2), aber sicher bin ich mir da nicht. Das Intervall zu groß? :bahnhof:

2. habe ich gemerkt, dass viele Leute den Algo unterschiedlich umsetzen. So gibt es beim DS Algo ja eine Verkleinerungskonstante (roughness) und so ganz steige ich nicht dahinter, wie ich die Konstante am Besten nutze. In einigen Implementierungen (siehe Quelle u. 1) wird die Konstante sowohl im Square, als auch im Diamond Schritt genutzt. Andere nutzen die Konstante nur im Diamond Schritt, oder gar nicht. Zumindest letzteres erscheint mir erklärbar, da ich die in 1. angesprochene Verschiebung auch damit verkleinern kann, in dem ich das Intervall einfach verkleinere, anstatt das Intervall mit einer Zahl < 1 zu multiplizieren. Kann ich die Konstante also wegschmeissen?

Komme erst in einer Woche dazu weiter zu machen, aber interessiert mich einfach, wie ichs am dümmsten mache, wenn ich das später in OpenGL umsetze.


Gruß
 

Ähnliche Java Themen

Neue Themen


Oben