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

很明显 , 这样的噪声结果更加令人信服 。 上面的6组噪声被称之为噪声的不同倍频(Octave) 。 随着倍频增大 , 噪声对于最终叠加噪声的影响程度变小 。

那我们应该分别挑选多大的频率和振幅来进行噪声计算呢?这个可以通过persistence参数确定 。 Hugo Elias对persistence的定义使用如下:

frequency=2^i

amplitude=persistence^i

简单来说 , 对于一维噪声 , 合适的组合是Noise(x)+12Noise(2x)+14Noise(4x)+...

二维噪声则是Noise(xy)+12Noise(2x2y)+14Noise(4x4y)+....

公式:∑i=0nNoise(2ipoint)2i

以上公式i的值取决于想要倍频组数 。 此外至于为什么最好按1倍 , 2倍 , 4倍 , 8倍...的倍频叠加 , 是因为这样的频率叠加更贴近模拟自然界的自相似过程(可wiki查下自相似)

推荐阅读