Three.js(九)perlin 2d噪音的生成

噪音的目的是为了增加随机性,使事物看起来更真实。但是简单的使用随机函数 并不 自然,因为随机函数产生的值与值之间并不连续。

要构造一个连续的2d噪音,简单的想法可以是: 在一个平面上所有整数点位置赋一个随机的值, 而整数网格中的点 则采用插值的方式得到值。

这里有两个问题, 一是整数格子上的值如何给, 二是插值的方式。

perlin噪声的解决方式是:

      整数格子上的计算一个叫做gradient的东西,在2d空间这个gradient是2维度向量, 它的分布具有各向同性的特点,也就是每个整数格子点都有相同的概率得到某个方向的gradient。 实现的时候, gradient可以从 8个方向的向量里面获取, 具体取哪一个是需要一个随机的过程的。。

        [1, 0], [1, 1],

        [0, 1], [-1, 1],

        [-1, 0], [-1, -1],

        [0, -1], [1, -1],

原文地址:https://www.cnblogs.com/liyonghelpme/p/4273784.html