最快的 Perlin-Like 3D 噪声算法?

Posted

技术标签:

【中文标题】最快的 Perlin-Like 3D 噪声算法?【英文标题】:Fastest Perlin-Like 3D noise algorithm? 【发布时间】:2011-10-21 06:14:47 【问题描述】:

距离 Ken Perlin 首次发明噪音已有 20 多年了。有没有人设法制造出一种更快的 3D 噪声生成器,其特性接近 Perlin 的(程序化、自然的分组、减少的条带、规则的特征大小等)?

我正在尝试构建一个程序世界生成器,但目前 Perlin 并没有削减它。我承认我的实现不是现在最好的,但如果我要重写它,我想知道是否有更好的算法可用。

【问题讨论】:

【参考方案1】:

你想要Simplex Noise。

计算成本更低 不是基于方形网格,因此没有明显的方向性伪影 更好地扩展到更高的维度:O(N^2) 与经典 Perlin 的 O(2^N) 的 N 维度

here 有一个很好的解释。显然 Ken Perlin 的示例实现并不是最容易理解的代码。

【讨论】:

【参考方案2】:

一年前,我也需要fast Perlin Noise,终于实现了这个。

Java Gaming 在 java 中是 2d,但可以很容易地转换为 3d(实际上是在 java 以外的任何其他语言中)。

根据您的需要,您可以使用诸如noise2d*noise1d(或类似技巧)之类的东西,这是一个完整的技巧示例(应该是noise2d*noise1d)渲染Java Software。

【讨论】:

链接失效

以上是关于最快的 Perlin-Like 3D 噪声算法?的主要内容,如果未能解决你的问题,请参考以下文章

WebGL进阶——走进图形噪声

2D 柏林噪声

带你走进WebGL的随机美学

最快排序和搜索算法的最简代码实现_转

桶排序算法:最快最简单的排序算法

最快最简单的排序算法:桶排序