[Houdini] Noise
Noise和Random都能生成随机数,不同的地方是Random生成的随机数之间没有联系,值在0和1之间,Noise生成的随机数之间有渐变,看起来像是图案,值一般在0.25和0.75之间。
Vex里的noise功能用的是柏林噪声,Perlin Noise,发明者是Perlin。这个函数可以在一维,二维,三维空间根据给定的位置生成float或者vector类型的数值。


不去考虑噪声生成的方法,我觉得把噪声认为是创作者创作的一个无限大的图案更好理解,有一维的曲线,二维的图片,还有三维的向量。我们给出图案上某一个点的位置,函数返回这个位置像素的值。
除了柏林噪声,vex里还有其他几种,计算的速度也有差别。

这几种噪声的用法也有区别,当然最主要的区别还是生成的图案不同。还有一种xnoise上图没有,这是perlin noise的升级版,去掉了一些不自然的图案。以上应该是Houdini里最基本的几种噪声生成算法了,其他节点里的各种noise都是围绕这些算法做的拓展。

Attribute Noise里的Fractal和Warping都是对基本噪声的第二次加工。

Turbulnet Noise生成1维或者3维噪声。Unified Noise提供了和vex里所有基本噪声的完整功能,它的Static版本计算更快,区别见下图。Curl Noise是基本噪声经过curl计算后得到的噪声,有一种卷曲的效果。aanoise也是一种经过处理的噪声。Periodic Noise可以生成重复的图案。
