19

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

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

4

2 回答 2

21

你想要Simplex Noise

  • 计算成本更低
  • 不是基于方形网格,所以没有明显的方向性伪影
  • 更好地扩展到更高的维度:O(N^2) vs Classic Perlin's O(2^N) for N 个维度

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

于 2011-08-05T23:41:11.163 回答
5

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

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

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

于 2012-05-07T17:41:24.217 回答