Oltre allo gamedev.SE abbiamo scoperto che lo flash implementation of Perlin-noise sembra deviare parecchio dalle altre implementazioni.Come è implementato il flash Perlin-noise?
Non ho trovato nessun dettaglio di implementazione in linea, ma mi chiedevo se qualcuno può dire quale algoritmo viene usato per il rumore Perlin in flash.
Utilizzando bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true);
genera immagini come questa dove solo il parametro numOctaves
è stato cambiato (1
, 2
, 4
da sinistra a destra):
Tuttavia altre implementazioni di Perlin rumore sembrano abbastanza diversa. Per esempio l'immagine dal Wikipedia article about Perlin-noise:
anche this Actionscript Implementation of Perlin-noise produce risultati molto diversi, come si può vedere nelle immagini seguenti (Ottave 1
, 2
e 4
da sinistra a destra):
Quello che mi interessa maggiormente è l'aspetto del rumore con una sola ottava. Nell'implementazione flash è possibile vedere chiaramente che il rumore sta formando qualcosa come blob separati.
Importante: il disturbo generato in flash utilizza false
per il parametro fractalNoise
. Se fractalNoise
è impostato su true
, i risultati sono in realtà molto simili a quelli di Wikipedia e altre implementazioni.
La descrizione del parametro recita:
valore booleano. Se il valore è true, il metodo genera rumore frattale; altrimenti, genera turbolenza. Un'immagine con turbolenza ha discontinuità visibili nel gradiente che possono rendere meglio l'approssimazione di effetti visivi più nitidi come fiamme e onde dell'oceano.
Come possiamo vedere, si parla di turbolenze per descrivere il metodo che genera il rumore. Quindi immagino che la domanda sia: l'output generato dal flash è ancora Perlin-noise? O c'è un altro nome per quel tipo di rumore? E soprattutto: dove si può trovare un'implementazione per creare rumore come questo?
Siamo spiacenti, ma non è quello. Ho persino usato il codice di uno dei tuoi link per generare le immagini del rumore a cui non sono * interessato *. L'implementazione flash non è diversa perché è basata su un numero intero (non lo è) e se si esegue l'output di un'immagine alla fine, avrai numeri interi, non c'è modo di aggirarlo. L'implementazione del flash ti consente di scegliere tra "turbolenza" e "normale" rumore. Quello che mi interessa è un algoritmo per ** turbolenza **. Se cerchi immagini di Google per "rumore di turbolenza" e "perlin noise" vedrai la differenza. – bummzack