13

我正在研究用于地形生成的各种类型的噪声,我对何时噪声变为 perlin 噪声以及何时 perlin 噪声变为 fbm 感到有些困惑。我希望有人可以澄清我出错的任何地方。我目前假设以下

噪声:包含幅度和频率,它与某种形式的插值(例如线性、余弦或三次)一起指示最终值。

Perlin Noise:倍频程噪声函数的总和(每个连续函数包含两倍的频率)。从我目前所读到的,幅度似乎总是呈现为一致的减少。例如,Noise1 包含 1 的 A,Noise2 包含 0.5 的 A,Noise3 包含 0.25 的 A,这意味着这里幅度每次减半。这必须始终像这样一致吗?

FBM:多个 perlin 噪声函数的总和,其中每个 Perlin 噪声函数必须仅包含幅度递减的八度音阶。

4

2 回答 2

29

Perlin Noise 实际上是一种计算所谓 Noise 的方法。它是一种相干噪声,计算为伪随机基础函数(或伪随机生成的梯度)的插值归一化梯度。频率控制梯度的“采样”距离,所以频率越高,采样距离越小,单位空间的梯度越多。幅度控制噪声函数的最大值和最小值。

Hugo Elias 的 Perlin Noise 页面对概念、算法等有很好的描述 。Perlin Noise FAQ以非常直观的方式解释了算法。

噪音是一个通用术语。Perlin 噪声只是一种相干噪声。但有许多不同的类型,具有不同的特点。

事实上,分形布朗运动就是你所说的柏林噪声。它是 Perlin Noise(或其他类似的噪声函数)的多个步骤的组合,每个步骤具有不同的频率和幅度。在程序生成的背景下,从一个步骤到下一个步骤的频率变化称为间隙。从一个步骤到下一个步骤的幅度变化称为增益。

看看这个。这个关于地形生成的项目很好地描述了 fBM 是什么以及它是如何计算的。

我希望这有帮助!

于 2013-06-08T13:31:13.700 回答
0

perlin noise 使用斜率来创建圆形气泡相关性,以获得更自然的外观。

八度音阶方法结合了各种尺度的噪声以生成更复杂的形式。显然,这种技术就是所谓的“分形布朗运动”。我以前从未听说过这个,但我做了一些研究,这就是我得到的。

您可以使用带有任何类型噪声的八度音阶,并在频率和幅度上随心所欲地缩放它们。一半的事情是出于数学原因从结果中删除某些伪影。

但是这个八度音阶是一种独立于柏林噪声的技术。它们一起工作得很好,所以它们一起使用。

白噪声倍频程又名白噪声 fbm 称为值噪声。它倾向于显示底层网格,因此通常使用 perlin 噪声代替。

于 2019-05-24T21:30:31.793 回答