本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这里会显示出您选择的修订版和当前版本之间的差别。
后一修订版 | 前一修订版 | ||
vfx:houdini:concepts:noise [2019/04/26 08:56] – 创建 codinghare | vfx:houdini:concepts:noise [2021/11/11 08:08] (当前版本) – codinghare | ||
---|---|---|---|
行 1: | 行 1: | ||
======Noises====== | ======Noises====== | ||
Houdini 中的 Noises 概念 | Houdini 中的 Noises 概念 | ||
- | ===== ===== | + | ---- |
Houdini 中有各式各样的 Noise 生成器。这些 Noise 通过不同的算法实现,在性能和表现上也有不同的差异。 | Houdini 中有各式各样的 Noise 生成器。这些 Noise 通过不同的算法实现,在性能和表现上也有不同的差异。 | ||
====Noise 和 Random==== | ====Noise 和 Random==== | ||
- | 在 Houdini 中我们可以通过 Random 和 Noise 来生成一些不规则的效果。但这两者最大不同之处在于,Random 采用了伪随机过程来生成结果,该结果通过 '' | + | 在 Houdini 中我们可以通过 Random 和 Noise 来生成一些不规则的效果。但这两者最大不同之处在于,Random 采用了伪随机过程来生成结果,该结果通过 '' |
\\ | \\ | ||
\\ | \\ | ||
===Houdini 中 Random 的种类=== | ===Houdini 中 Random 的种类=== | ||
Houdini 中的 Random 大致有三种: | Houdini 中的 Random 大致有三种: | ||
- | * random:通过N维空间中的位置信息来生成随机数,使用的 seed 是整型。 | + | * //random//:通过N维空间中的位置信息来生成随机数,使用的 seed 是整型。 |
- | * hscript_rand:该方法可以使用浮点数作为 seed 来生成随机数,结果可能跟操作系统相关。 | + | * //hscript_rand//:该方法可以使用浮点数作为 seed 来生成随机数,结果可能跟操作系统相关。 |
- | * n-random:n-random 会返回一个 '' | + | * //n-random//:n-random 会返回一个 '' |
+ | ===大多情况下选择 Noise=== | ||
+ | 比起 Random,在实际生产中我们更倾向使用 noise,因为 noise 自身带有非常高的可控性。以 Perlin Noise 作为例子来说一下为什么是可控的。来看一看 Perlin Noise(1D) 的简单产生过程: | ||
+ | - 在 X 轴上按一定的间隔随机采样点 | ||
+ | - 将这些点使用插值连接起来(比如 sin / cos) | ||
+ | - 再对 X 轴上的点进行间隔细分,进行每个点的随机采样 | ||
+ | - 再将这些点使用插值连接起来,得到第二条光滑的曲线(// | ||
+ | - 然后将该曲线与之前的曲线相叠加 | ||
+ | 通过以上的步骤,我们发现我们可以得到一种整体上平滑,但在局部上又有类似“分型(Fractal)” 形状的曲线。这样的曲线之所以易于控制,是因为其总体上来说可以看做是一种“波”,换句话说,我们可以通过**频率**(// | ||
+ | ====Houdini 中 Noise 的参数==== | ||
+ | 以 VOP 节点为例,Houdini 中有这么几个参数: | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | * // | ||
+ | ====其他的 Noise==== | ||
+ | Houdini 中的 Noise 大致分为两个部分:连续的 Noise 和 非连续的 Noise. | ||
+ | \\ | ||
+ | \\ | ||
+ | ===连续的 Noise === | ||
+ | 连续的 Noise 分为如下几类: | ||
+ | * Perlin:基于 lattice points(也就是之前说的细分点)的 Noise。波动比较平稳,波动范围大部分在 0 的附近。 | ||
+ | * Simplex:与 Perlin 类似,振幅较 Perlin 更加大。在 2D 的分布中,simplex 会呈现等边三角形状的图案(Perlin 是四边形,参考[[http:// | ||
+ | * Sparse Convolution:该类型 Noise 位置在 $0$ 以上,不会出现正负相减的波动。同时该种曲线非常平稳(resistant to change)。 | ||
+ | * Sinusoidal:周期性的 Noise,比如 '' | ||
+ | ===非连续的 Noise=== | ||
+ | 非连续的 Noise 分为如下几类: | ||
+ | * Worley:这种曲线的主要特点是在波峰(Peak)处不是连续的。根据这个特点,Worley、Voronoi、Cell 这三种类型的 Noise 都可以归为此类。 | ||
+ | * Alligator:这种 Noise 看起来像是心电图一样,其位置永远在 0 之上,而不连续的点处于靠近 0 的地方。 | ||
+ | | ||
+ | \\ | ||
+ | \\ | ||
+ | //Noise 1D 对比,图片来源:SideFX// | ||
+ | \\ | ||
+ | \\ | ||
+ | {{: | ||
+ | \\ | ||
+ | \\ | ||
+ | //Noise 3D 对比,图片来源:SideFX// | ||
+ | ===Noise 的效率=== | ||
+ | ^Noise type ^Relative cost^ | ||
+ | |<color # | ||
+ | |<color # | ||
+ | |<color # | ||
+ | |<color # | ||
+ | |<color # | ||
+ | ====参考资料==== | ||
+ | * [[https:// | ||
+ | * [[https:// |