10 Stimmen

Wie wird das Perlin-Rauschen in Flash umgesetzt?

Drüben bei gamedev.SE haben wir festgestellt, dass die Flash-Implementierung von Perlin-Rauschen scheint ziemlich stark von anderen Implementierungen abzuweichen.

Ich habe online keine Details zur Implementierung gefunden, aber ich frage mich, ob jemand sagen kann, welcher Algorithmus für Perlin-Rauschen in Flash verwendet wird.

Verwendung von bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true); erzeugt Bilder wie dieses, bei denen nur die numOctaves Parameter wurde geändert ( 1 , 2 , 4 von links nach rechts):

perlin noise in flash

Andere Implementierungen von Perlin-Rauschen sehen jedoch ganz anders aus. Zum Beispiel das Bild aus dem Wikipedia-Artikel über Perlin-Lärm :

Perlin noise as depicted on Wikipedia

Auch diese Actionscript-Implementierung von Perlin-Rauschen führt zu ganz anderen Ergebnissen, wie Sie in den folgenden Bildern sehen können (Oktaven 1 , 2 y 4 von links nach rechts):

Perlin noise AS3

Was mich am meisten interessiert, ist das Aussehen des Rauschens mit nur einer Oktave. In der Flash-Implementierung kann man deutlich sehen, dass das Rauschen so etwas wie einzelne Kleckse bildet.

Wichtig : Das im Blitzlicht erzeugte Rauschen verwendet false für die fractalNoise Parameter. Wenn fractalNoise wird eingestellt auf true sind die Ergebnisse den Ergebnissen von Wikipedia und anderen Implementierungen sehr ähnlich.

Die Beschreibung des Parameters lautet wie folgt:

Ein boolescher Wert. Wenn der Wert true ist, erzeugt die Methode fraktales Rauschen, andernfalls Turbulenzen. Ein Bild mit Turbulenzen weist sichtbare Diskontinuitäten im Farbverlauf auf, wodurch schärfere visuelle Effekte wie Flammen und Meereswellen besser dargestellt werden können.

Wie wir sehen können, sprechen sie von Turbulenzen um die Methode zu beschreiben, die das Rauschen erzeugt. Die Frage ist also: Ist die von Flash erzeugte Ausgabe immer noch Perlin-Rauschen? Oder gibt es einen anderen Namen für diese Art von Rauschen? Und was am wichtigsten ist: Wo kann man eine Implementierung finden, die ein solches Rauschen erzeugt?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X