微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

闪光灯中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不一样.

原文地址:https://www.jb51.cc/Perl/171497.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐