我没有在线找到任何实现细节,但是我想知道有没有人能够知道哪些算法正在使用闪存中的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不一样.