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


噪声

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

那么为什么要引入噪声这个概念呢?在程序中 , 我们经常使用直接使用最简单的rand()生成随机值 , 但它的问题在于生成的随机值太“随机”了 , 得到的值往往总是参差不齐 , 如下图使用随机值作为像素点的黑白程度:

而使用噪声 , 我们得到的值看起来虽然随机但平缓 , 这种图也看起来更自然和舒服:

而根据wiki , 现在噪声类型已经有很多种类:

本文主要说明Value噪声 , Perlin噪声 , Simplex噪声这三种常见的噪声 。

随机性

随机性是噪声的基础 , 不必多说 。

哈希性

在《Minecraft》里 , 由于世界是无限大的 , 它以“Chunk”区块(16×16×256格子)为单位 , 只加载玩家附近的区块 。 也就是说 , 当玩家在移动时 , 它会卸载远离的区块 , 然后加载靠近的区块 。

推荐阅读