常见噪声

1.2k 词

噪声(快速简介)

有点累,也有点晚,写的很敷衍,嗯~ o( ̄▽ ̄)o

基础哈希

我们可以instance一个n*n的cube 的tile 然后根据随机的哈希值还有uv去赋值不同的颜色

这里介绍一个Small xxHash https://xxhash.com/

实现出来大概长这样
noise

可以根据不同的cube的position以及uv 实现不同的效果(比如球,环)

noise

noise

值噪声(ValueNoise)

根据不同的点的线性插值来实现的

一维

noise

二维

noise

三维

noise

柏林噪声(PerlinNoise)

一维

noise

二维

noise

三维

noise

噪声变体(Noise Variants)

这部分主要是一些噪声发明者实际上论文里的实现参数(值)应该是什么

分型噪声(Fractal Noise)

频率(Frequency)噪声的频率,它描述了它的变化速度

八度(Octaves)分形噪声由不同频率的多个样本组成。这些被称为Octaves(其实不太好翻译,我觉得可以叫小分型?)

振幅(amplitude)分形噪声的概念是,一个Octaves的振幅随着其频率的增加而减小

空隙度(Lacunarity)频率缩放被称为噪声的空隙度

持久性(Persistence)它控制着每个倍频程(amplitude reduces per octave)的振幅减小的速度

湍流噪声(Turbulence Noise)

分形 Perlin 噪声的一种常见变体是将每个倍频程(amplitude reduces per octave)的绝对值相加。这会导致Octaves在零的地方反弹,从而产生折痕。将多个这样的Octaves分层会产生一个结果,Ken Perlin 将其描述为Turbulence模式

Turbulence Noise 大概长下面这个样

noise

平铺噪声(Tiled Noise)

使该获取的噪声的长度等于噪声频率(对于多个噪声点组成的噪声来说,频率和空隙就需要是整数,float有精度无法平铺)

noise

维诺噪声(Voronoi Noise)

它基于用任意点填充空间并找到到最近点的距离。生成的模式看起来像 Voronoi 图——充满凸多边形单元格的空间——因此它被称为 Voronoi 或单元噪声。这种类型的噪声是由史蒂文·沃利(Steven Worley)首次引入的,因此它也被称为沃利噪声。

根据不同的距离计算方式分为不同噪声,比如欧式距离(WorlyNosie 沃利噪声),棋盘距离chessboard distance(ChebyshevNoise切比雪夫噪声)…

一维

noise

二维

noise

三维

noise

Simplex Noise

在肯·佩林(Ken Perlin)创造了perlin噪声之后,他后来发明了另一种噪声模式,他将其命名为Simplex噪声。这种类型的噪声使用核求和而不是插值。

个人看起来比较费劲,有兴趣的话,自行查看吧

备注

原文:https://catlikecoding.com/unity/tutorials/pseudorandom-noise/

留言