噪声(快速简介)
有点累,也有点晚,写的很敷衍,嗯~ o( ̄▽ ̄)o
基础哈希
我们可以instance一个n*n的cube 的tile 然后根据随机的哈希值还有uv去赋值不同的颜色
这里介绍一个Small xxHash https://xxhash.com/
实现出来大概长这样
可以根据不同的cube的position以及uv 实现不同的效果(比如球,环)
值噪声(ValueNoise)
根据不同的点的线性插值来实现的
一维
二维
三维
柏林噪声(PerlinNoise)
一维
二维
三维
噪声变体(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 大概长下面这个样
平铺噪声(Tiled Noise)
使该获取的噪声的长度等于噪声频率(对于多个噪声点组成的噪声来说,频率和空隙就需要是整数,float有精度无法平铺)
维诺噪声(Voronoi Noise)
它基于用任意点填充空间并找到到最近点的距离。生成的模式看起来像 Voronoi 图——充满凸多边形单元格的空间——因此它被称为 Voronoi 或单元噪声。这种类型的噪声是由史蒂文·沃利(Steven Worley)首次引入的,因此它也被称为沃利噪声。
根据不同的距离计算方式分为不同噪声,比如欧式距离(WorlyNosie 沃利噪声),棋盘距离chessboard distance(ChebyshevNoise切比雪夫噪声)…
一维
二维
三维
Simplex Noise
在肯·佩林(Ken Perlin)创造了perlin噪声之后,他后来发明了另一种噪声模式,他将其命名为Simplex噪声。这种类型的噪声使用核求和而不是插值。
个人看起来比较费劲,有兴趣的话,自行查看吧
备注
原文:https://catlikecoding.com/unity/tutorials/pseudorandom-noise/