C/C++编程笔记:游戏开发中的噪声算法详解,游戏编程常用技术(21)

当然 , 倍频组数的增加 , 会线性地增加代码执行时间 , 在游戏运行时使用噪声算法 , 再好不要使用超过几组倍频(比如 , 当你想在60fps下模拟火焰特效时 , 最好不要这么干) 。 然而 , 做数据预处理时 , 就很适合使用多组倍频叠加来模拟更自然的噪声(比如用于提前生成游戏地形等) 。

结语

(1)什么时候使用Value噪声和柏林噪声:Value噪声简单性能开销小 , 但是产生的噪声可能略显机械重复(看起来不自然 , 容易形成\"砖块\" , 可参考本文第三张图片效果);而柏林噪声则计算稍加复杂 , 但是产生的噪声更为自然 。 也就是说这是在性能和效果之间做取舍 。

(2)2维的可平铺噪声其实也可以在3维球上采样(因为三维球可以用yaw/pitch两个维度表示三维球面上所有点) , 而无需每个维度在二倍的维度上采样(导致最终是4维采样) 。

(3)柏林噪声的随机向量一定需要同样的长度吗:测试中...

实际上本文很多篇幅来源于直接参考的几个文章 , 这些业界前辈在他们的原文已经写的相当精彩 。 只是为了简化整理内容和补充细节 , 我才有了整理出这篇博文的想法 。

推荐阅读