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

GameDev上关于可平铺噪声的讨论 , 许多人分享了他们各自创造性的做法(非常有趣):

https://gamedev.stackexchange.com/questions/23625/how-do-you-generate-tileable-perlin-noise

分形噪声

当我们使用基于晶格的噪声时 , 主要有两个参数可以调整:

(1)频率(frequencies):晶体格的边长(即采样间隔 , 例如频率越高 , 单位面积(特指二维)内的晶格数目越多 , 看起来噪声纹理“越密集” 。 )

(2)振幅(amplitudes):返回值的幅度范围

而在地形生成中 , 地形可能会有大段连绵、高耸山地 , 也会有丘陵和蚀坑 , 更小点的有岩石块 , 甚至更小的鹅卵石块 。 为了模拟出这样的自然噪声特性 , 我们可以使用不同的参数进行多几次柏林噪声计算 , 然后将结果叠加在一起 。

将不同频率和振幅参数下的柏林噪声结果叠加在一起 , 我们就能得到以下结果:

推荐阅读