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

平滑性(连续性)

对一个随机生成地形来说 , 如果简单的使用随机和哈希组合 ,

那么容易得到下图(以一维地图举例 , x轴为位置 , y轴为地形高度):

容易看出的问题是 , 由于随机的杂乱无章 , 地形非常的参差不齐 , 这可不是一个自然的地形 。

我们期望得到的地形不仅随机还应该是平滑的 , 这样才显得自然 , 如下图:

Value噪声

Value噪声是最简单的一种噪声 , 其主要思路是定义若干个顶点且每个顶点含有一个随机值 , 这些顶点会根据自己的随机值对周围坐标产生影响 , 越靠近顶点则越容易受该顶点影响 。 当需要求某个坐标的输出值时 , 需要将该坐标附近的各个顶点所造成的影响值进行叠加 , 从而得到一个总值并输出之 。

原理

1.首先定义一个晶格结构 , 每个晶格的顶点有一个伪随机值(Value) 。 对于二维的Value噪声来说 , 晶格结构就是一个平面网格(通常是正方形) , 三维的就是一个立体网格(通常是正方体) 。

推荐阅读