На gamedev.SE мы обнаружили, что флэш-реализация Perlin-noise, похоже, немного отличается от других реализаций.
Я не нашел никаких деталей реализации в Интернете, но мне было интересно, может ли кто-нибудь сказать, какой алгоритм используется для шума Перлина во флэш-памяти.
Использование bitmapData.perlinNoise(32, 32, 1, 200, false, false, 7, true);
генерирует такие изображения, где был изменен только параметр numOctaves
(1
, 2
, 4
слева направо):
Однако другие реализации шума Перлина выглядят иначе. Например, изображение из статьи в Википедии о шуме Перлина:
Кроме того, эта реализация Perlin-noise в ActionScript дает совсем другие результаты, как вы можете видеть на следующие изображения (октавы 1
, 2
и 4
слева направо):
Что меня больше всего интересует, так это вид шума всего с одной октавой. Во флэш-реализации ясно видно, что шум образует что-то вроде отдельных капель.
Важно. В шуме, создаваемом флэш-памятью, используется false
в качестве параметра fractalNoise
. Если для fractalNoise
установлено значение true
, результаты на самом деле очень похожи на результаты из Википедии и других реализаций.
Описание параметра гласит:
Логическое значение. Если значение истинно, метод генерирует фрактальный шум; в противном случае это создает турбулентность. Изображение с турбулентностью имеет видимые неоднородности градиента, которые могут лучше приблизить более резкие визуальные эффекты, такие как пламя и океанские волны.
Как мы видим, они говорят о турбулентности для описания метода, создающего шум. Итак, я предполагаю, что вопрос в том, является ли этот вывод, генерируемый вспышкой, все еще шумом Перлина? Или у такого шума есть другое название? И самое главное: где найти реализацию для создания подобного шума?