创建一个 FLIP 流体模拟,模拟海洋表面的一薄层。
此工具会在海洋表面上创建一层薄薄的粒子层,这些粒子由海洋速度初始化。在指定的深度上,海洋表面作为粒子下方的碰撞层,使粒子与海洋波浪紧密匹配。一个粒子边界层 boundary layer 会抑制水池边缘的反射,使海洋速度回到模拟状态,并保持水的体积平面匹配海洋。FLIP 模拟使用了一个 guiding volume 方法,通过模拟来操控海洋速度。
薄层的厚度决定该模拟与下方海洋表面的匹配程度,也决定该模拟是否能很好地捕捉海洋下方运动,如尾迹和漩涡。
Guided Ocean Layer 可以是静态模拟,也可以跟随海洋中运动的物体。
Ocean Spectrum 节点可以塑造模拟海洋的初始帧,Ocean Source 控制输出。
使用 Guided Ocean Layer
1. 点击 Oceans 选项卡上的 Guided Ocean Layer 工具,创建一个水池。
2. 选择水池需要跟随的动画物体,按<kbd>Enter</kbd>键确认。如果没有选中物体,Houdini 会提示我们放置一个静止的水池。
注意
海洋表面和引导体积之间的自由流体粒子层,是由 Ocean Source SOP 中的 Layer Size 参数控制的。
改变海洋的形状
要… | 做如下操作 |
设置波浪的高度 | 导航到 Ocean Spectrum 节点,调节 Wave Amplitude 选项卡上的 Wave Scale 参数。 该值会和 Wind 选项卡上的 Speed 参数相乘。 |
设置波浪的方向 | 导航到 Ocean Spectrum 节点,并调节 Wind 选项卡上的 Directional Bias 参数。 此参数控制多少频率与风向相同。增加此值将使更多的频率向同一个方向行进,这在创建海岸线效果非常有用。 我们还可以尝试增加 Directional Movement 参数,这将抑制向与风的方向反向运动的波浪,只留下同一方向的波浪。 |
控制波峰高度 | 导航到 Ocean Spectrum 节点,并调节 Wind 选项卡上的 Chop 参数。 增加此参数会在波浪上创建尖锐的波峰。不过如果这个值太大,波浪会反转自己。 |
在海洋上添加更多细节 | 增加 Ocean Spectrum 节点上的 Resolution Exponent 参数。
|
创建大海洋 | 使用 Large ocean 工具架。 |
理解创建出来的节点网络
当我们创建海洋时,需要注意三个非常重要的层,首先是创建海洋,然后添加白水,最后为白水添加高光。
小提示
当我们制作海洋时,禁用 OBJ 级别中所有的白水节点;然后制作白水时禁用海洋。
第一组节点控制海洋自身。
1. fluidtank_initial 控制模拟的第一帧。我们可以在这里使用 Ocean Spetrum 塑造水池初始帧的形状,并使用 Ocean source 控制其输出。这个节点里面包含水池的尺寸、水的深度等。
2. AutoDopNetwork 控制水池的模拟。在这里我们可以找到 FLIP Tank 和 FLIP Solver。FLIP 模拟包含 SourceVolume DOP(使边界层粒子下沉)、POP Advect By Volumes POP(添加海洋速度到模拟上)。
3. fluidtank_fluid 是 #1 和 #2 结果的合并,是我们渲染结果的地方。完成模拟后,此节点会收集流体粒子、设置材质、为表面创建一些节点,以完成效果。
4. fluidtank_interior 也是用于渲染的,并且会创建一个着色器应用到流体内部的体积效果。它控制水面下的体积,比如水看上去的浑浊程度。
接下来的一组节点是控制白水的。
注意
要添加白水到模拟中,请使用 Oceans 工具架上的 Whitewater 工具。
1. whitewater_source 是浪花和泡沫的来源。
2. whitewater_sim 是模拟白水的地方,我们可以在这里修改动画。
3. import_whitewater 是 #1 和 #2 结果的合并。
注意
不要尝试自己从头开始建立白水模拟,最好使用这些工具。