【问题标题】:Fastest Perlin-Like 3D noise algorithm?最快的 Perlin-Like 3D 噪声算法?
【发布时间】:2011-10-21 06:14:47
【问题描述】:
距离 Ken Perlin 首次发明噪音已有 20 多年了。有没有人设法制造出一种更快的 3D 噪声生成器,其特性接近 Perlin 的(程序化、自然的分组、减少的条带、规则的特征大小等)?
我正在尝试构建一个程序世界生成器,但目前 Perlin 并没有削减它。我承认我的实现不是现在最好的,但如果我要重写它,我想知道是否有更好的算法可用。
【问题讨论】:
标签:
3d
noise
perlin-noise
procedural
【解决方案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。