需要分数布朗噪声(FBM)与柏林噪声澄清
Posted
技术标签:
【中文标题】需要分数布朗噪声(FBM)与柏林噪声澄清【英文标题】:In need of Fractional Brownian Noise (FBM) vs Perlin Noise clarification 【发布时间】:2013-06-04 16:06:00 【问题描述】:我正在研究用于地形生成的各种类型的噪声,我对何时噪声变为 perlin 噪声以及何时 perlin 噪声变为 fbm 感到有些困惑。我希望有人可以澄清我出错的任何地方。我目前假设如下
噪声:包含幅度和频率,它与某种形式的插值(例如线性、余弦或三次)一起指示最终值。
Perlin Noise:倍频程噪声函数的总和(每个连续函数包含两倍的频率)。从我目前所读到的内容来看,幅度似乎总是呈现为一致的减少。例如,Noise1 包含 1 的 A,Noise2 包含 0.5 的 A,Noise3 包含 0.25 的 A,这意味着这里幅度每次减半。一定要这样一直保持一致吗?
FBM:多个 perlin 噪声函数的总和,其中每个 Perlin 噪声函数必须仅包含幅度递减的八度音阶。
【问题讨论】:
另一个看起来很棒但有点模糊定义边界的技巧是 iq 的解析导数夹具:iquilezles.org/www/articles/morenoise/morenoise.htm 【参考方案1】:Perlin Noise 实际上是一种计算所谓 Noise 的方法。它是一种相干噪声,计算为伪随机基础函数(或伪随机生成的梯度)的插值归一化梯度。频率控制梯度的“采样”距离,所以频率越高,采样距离越小,单位空间的梯度越多。振幅控制噪声函数的最大值和最小值。
Hugo Elias' page on Perlin Noise对概念、算法等有很好的描述。 Perlin Noise FAQ 以非常直观的方式解释了算法。
噪音是一个通用术语。 Perlin 噪声只是一种相干噪声。但是有很多不同的类型,具有不同的特点。
分形布朗运动实际上就是您所说的柏林噪声。它是 Perlin Noise(或其他类似的噪声函数)的多个步骤的组合,每个步骤具有不同的频率和幅度。在程序生成的背景下,从一个步骤到下一个步骤的频率变化称为间隙。从一个步骤到下一个步骤的幅度变化称为增益。
看看this。 这个地形生成项目很好地描述了 fBM 是什么以及它是如何计算的。
我希望这会有所帮助!
【讨论】:
您还可以在此处找到有关噪声的一般信息:scratchapixel.com/lessons/3d-advanced-lessons/noise-part-1 Hugo Elias 的页面很混乱,他所说的是价值噪音,而不是 Perlin 噪音。它们是不同的方法和质量。实际上,价值噪声是 Perlin 噪声的廉价替代品。 en.wikipedia.org/wiki/Value_noise Perlin Noise FAQ Mirror【参考方案2】:perlin 噪声使用斜率来创建圆形气泡相关性,以获得更自然的外观。
八度音阶方法结合了各种尺度的噪声以生成更复杂的形式。显然,这种技术就是所谓的“分形布朗运动”。我以前从未听说过这个,但我做了一些研究,这就是我得到的。
您可以使用带有任何类型噪声的八度音阶,并在频率和幅度上随意缩放它们。一半的事情是出于数学原因从结果中删除某些伪影。
但是这个八度音程是一种独立于柏林噪声的技术。它们可以很好地协同工作,因此可以一起使用。
白噪声倍频程又名白噪声 fbm 称为值噪声。它倾向于显示底层网格,因此通常使用 perlin 噪声代替。
【讨论】:
以上是关于需要分数布朗噪声(FBM)与柏林噪声澄清的主要内容,如果未能解决你的问题,请参考以下文章