3D的速度更快?Perlin或Simplex噪音?

The*_*EEP 4 algorithm 3d procedural-generation perlin-noise simplex-noise

好的,在网上找到了Perlin和Simplex噪音之间的很多比较.但我真的找不到三个维度之间的简单处理时间比较,这是我最感兴趣的.我已经阅读了那个流行的PDF(甚至大部分都理解了 - 是的!)但是我无法回答这个简单的问题:假设最佳实现,哪一个更快3D?

这个stackoverflow问题答案表明,Simplex对我来说是一个非常明显的赢家.当然,还有其他资源声称完全相反.

然而,一般声明似乎是Perlin噪声具有O(2 ^ N)的复杂度,而Simplex具有O(N ^ 2).其中3D表示Perlin为8,Simplex为9.但是,在某些网站上,我发现Simplex实际上是O(N)的说法.那么这里的真实情况什么,这对3D的速度意味着什么呢?

我在这里不知所措,我真的主要对3D应用程序(包括洞穴的随机地形生成)的使用感兴趣,如果我希望它能像我一样快,我找不到一个问题的答案.可能.

所以也许有人可以帮助我:)

Aki*_*nen 9

1)http://www.fundza.com/c4serious/noise/perlin/perlin.html
2)http://www.6by9.net/b/2012/02/03/simplex-noise-for-c-and -蟒蛇

使用这两种实现在"我的笔记本电脑"中执行8M噪声样本的执行时间:(g ++ -O6)

1)1.389s,即每秒5.7M操作2)0.607s,即每秒13.2M操作

但...

当真的,真的要进行优化时,应该研究一下

  • 更高级别的优化(在每个阶段真正做了什么:有替代方案吗?)
  • 分行
  • 记忆模式
  • 依赖
  • LUT尺寸
  • 需要单独的算术运算,它们的延迟和吞吐量
  • 使用SIMD的可利用并行性
  • 实时变量的数量