闪光灯中Perlin-noise如何实现?

gamedev.SE,我们发现 flash implementation of Perlin-noise似乎与其他实现相差很大.

我没有在线找到任何实现细节,但是我想知道有没有人能够知道哪些算法正在使用闪存中的Perlin-noise.

使用bitmapData.perlinNoise(32,32,1,200,false,7,true);生成只有numOctaves参数已被更改的图像(从左到右为1,2,4):

然而,Perlin-noise的其他实现看起来是截然不同的.例如Wikipedia article about Perlin-noise的图像:

this Actionscript Implementation of Perlin-noise也可以产生不同的结果,您可以在以下图像中看到(从左到右是Octaves 1,2和4):

我最感兴趣的是只有一个八度的噪音的外观.在Flash实现中,您可以清楚地看到,噪声正在形成像分离的斑点.

重要提示:在Flash中生成的噪点对于fractalNoise参数使用false.如果fractalNoise设置为true,结果实际上与维基百科和其他实现中的结果非常相似.

该参数的描述如下:

A Boolean value. If the value is true,the method generates fractal noise; otherwise,it generates turbulence. An image with turbulence has visible discontinuities in the gradient that can make it better approximate sharper visual effects like flames and ocean waves.

我们可以看到,他们谈到动荡来描述产生噪音的方法.所以我猜问题是:Flash产生的输出是否仍然是Perlin-noise?还是有这样一种噪音的名字?最重要的是:在哪里可以找到实现来创建这样的噪声?

解决方法

显然,术语有一些混淆.但从技术上讲,佩林所描述的噪音是一个八度,没有任何总和.它看起来像第一个维基百科图像.

我很确定几乎没有人实际使用这个.每个人都加起来几个八度,通常在较低的频率下使幅度更大. “多大”是持久性.无论如何,当你添加它,它被称为分形噪声.

“Perlin噪音”实际上只意味着你会产生一堆随机梯度,并对它们进行插值.但是人们将分形噪声称为Perlin噪声,因为它是几个Perlin噪声波的总和.

请注意,如在参考实现中,Perlin和Simplex噪声函数以0为中心,(有时)以[-1,1]为单位输出值.此外,这些是相似但不完全相同的 – 单纯噪声看起来有点不同.他们有时被称为Perlin噪音,因为Ken Perlin最初想到了Perlin的噪音(他称之为“噪音”),然后通过消除一些冗余并创建单声道噪声(他称之为“改进的噪声”)来加速,).单面可以看起来有点暗(网格是不同的,所以显然它看起来不一样),而通过更高维度噪声的部分与Perlin不一样.

相关文章

1. 如何去重 #!/usr/bin/perl use strict; my %hash; while(...
最近写了一个perl脚本,实现的功能是将表格中其中两列的数据...
表的数据字典格式如下:如果手动写MySQL建表语句,确认麻烦,...
巡检类工作经常会出具日报,最近在原有日报的基础上又新增了...
在实际生产环境中,常常需要从后台日志中截取报文,报文的形...
最近写的一个perl程序,通过关键词匹配统计其出现的频率,让...