本文以一种通俗简单的方式介绍Ken Perlin的改进版柏林噪声算法,算法代码采用c#编写,开源免费使用。如果你只是想看完整代码,可以点击文章结尾链接查看。...柏林噪声是一个非常强大算法,经常用于程序生成随机内容,在游戏和其他像电影等多媒体领域广泛应用。算法发明者Ken Perlin也因此算法获得奥斯卡科技成果奖(靠算法拿奥斯卡也是没谁了666)。...梯度向量代表该顶点相对单元正方形内某点的影响是正向还是反向的(向量指向方向为正向,相反方向为反向)。而伪随机是指,对于任意组相同的输入,必定得到相同的输出。...在本文所介绍的改进版柏林噪声中,这些梯度向量并不是完全随机的,而是由单位正方体(3维)的中心点指向各条边中点的12个向量:
(1,1,0),(-1,1,0),(1,-1,0),(-1,-1,0), (1,0,1...这也产生了一个副作用:柏林噪声每隔256个整数就会再次重复。但这不是太大的问题,因为算法不仅能处理整数,还能处理小数。