[Houdini] Curl Noise


翻译:这个节点用curl算法在Perlin Noise的基础上生成无散度的3d噪声。可以连入sdf作为碰撞体,使速度场在碰撞体周围流动。
Step Size 控制用于生成噪声的 curl 函数的分辨率。较低的值将导致噪声中的螺旋更紧密。
Surface Effect Radius 决定了sdf几何体对创建的噪声场的影响大小。较高的值会导致较大的干扰。
Distance to Surface 从当前位置到介入几何体的最近表面的距离。在一个几何图形的有符号距离场的结果中管道将允许生成的噪声对该表面几何图形做出适当的反应。
Surface Normal 最接近当前位置的表面的法线。体积梯度中的管道是传递所需法线值的一种方式,其结果是沿给定表面“流动”的噪声场。为获得最佳结果,对于执行 Curl Noise 算子的每个位置,Distance to Surface 和Surface Normal应用同一曲面。
Collision SDF 用于加载sdf的文件。这将覆盖Distance to Surface和Surface Norma,这些值将直接从文件中的第一个volume获取。这允许距离在噪声计算中变化,产生比仅提供单个样本更准确的边界。
Enable Bouncing SDF 将在采样点位于曲面内部时将噪波值反射到法线方向,使其指向外侧。这有助于确保最终进入表面内的任何粒子都被噪声场向外推。
让我们来看看siggraph2007关于curlnoise的PDF

翻译:
用程序化方法生成湍流常常比模拟方法更受欢迎,无论是生成速度还是可控程度。我们提供了一种极其简单的方法有效地基于 Perlin 噪声生成湍流速度场,使用了流体不可压缩算法(对于日常流体的特征外观是必需的),可以加入碰撞体影响速度场(不允许流体流过任意指定的表面),其幅度可以根据需要在空间中进行调节。此外,我们演示了如何将其与procedural primitives结合起来围绕移动的刚性物体、漩涡等流动。
curl noise的应用
关于curl noise的应用,在油管上一般就两种,制作抽象几何体和用速度场驱动粒子。用pop advect by volume时,advection type用Update Velocity效果更明显。

Curl Noise能算3维速度场,也能算2维速度场,vop里也分成了两个节点。个人感觉实际用3维Curl Noise的速度场驱动的粒子流体特性并没有那么强,而Curl Noise 2D节点驱动2维平面上的粒子更像是流体解算出来的效果。

Curl Noise 2D在vex也有,值得注意的是下面的Note,Curl Noise 2D算出的2d速度场并不等同于把Curl Noise算出的3D速度场投射到2维平面上(下图)。
