噪声简介

1.噪声

  噪声是游戏编程的常见技术,广泛应用于地形生成,图形学等多方面。

  

 2.为什么需要噪声

  噪声其实就是为了把一些随机变量引入到程序中,在我们写程序时,也经常会使用random()生成随机值,但是它的问题是生成随机值太随机了得到的值往往总是参差不齐,如下图使用随机值作为像素点的黑白图

  

   而使用噪声,我们得到的值随机但是看起来却是平缓的,这种图看起来也更自然舒服(对比图中左侧为基础噪声,右侧是fbm:分型布朗姆运动 后的效果)

  

3.噪声的特性

  3.1随机性

    噪声的基础就是随机

  3.2哈希性

    在《我的世界》中,由于世界是无限大的,他以chunk区块(16*16*255格子)为单位,之家在玩家附近的区块。也就是说当玩家在移动时,它会卸载远离的区块,加载靠近的区块。

    一个问题是当玩家离开一个区块,进入第二个区块,然后再回到第一个区块时,他看到的应该是保持一致的,所以这时我们输入相同的值应该要返回固定的值。

    因此可哈希是噪声的一个重要性质。

  3.3平滑性

    对于一个随机生成的地形来说,如果简单的使用随机和哈希组合,那么容易得到下图(以一维地图为例,x轴为位置,y轴为地形)

   

    由图可见,由于随机的杂乱无章,地形非常的参差不齐,这可不是一个自然的地形。

    我们期望的地形应该如下,不仅随机切要平滑才显得自然

    

 

posted @ 2021-01-06 17:10  _蒲公英_  阅读(305)  评论(0编辑  收藏  举报