What & How & Why

Flip Object

Ver. 18.0
为 flip solver 提供必要的数据。


增加 Particle Separation 会降低解算的精度。

Parameters

Properties

Particle Separation该参数控制 Particle fluid 对象中,particles 的交互距离。降低 particle separation 会降低粒子的交互距离,这意味着单位体积内的单个例子重量会减轻。

如果 Input Type 选择的是 Surface SOP,那么该参数会同时决定 flip 对象内部新粒子生成的数量;也就是说,该模式下更低的 particle separation 会导致更高的精度。
Particle Radius Scale本参数作为 particle separation 的缩放参数,与 particle separation 共同决定 flip 对象中粒子的半径。提高该参数导致整个流体的体积增加,但表面的细节会变少(更光滑)。
Grid Scaleflip 在 slove 的阶段会转化为 grid-based 的流体解算,并使用粒子的数据来推动 gird 流体的变动。该参数作为计算 gird division size 的缩放参数;默认参数在绝大部分情况下都适用。
Collision separation该参数指定碰撞区域的精度(比如往瀑布中添加一块岩石,该参数就能控制岩石的精度。)

单独提高碰撞区域的精度在对解算进行原型化的时候(低精度解算)非常有用。
Closed Boundaries该参数对应的边界是 Flip solver 中的 Volume limits

Creation

Creation Frame 与其他对象创建一致,只能在 timestep 的刻度点上生效。(3.5 frame 想要生效,timestep 必须为每半帧一次)。
Allow Caching由于内存的缓存空间有限,默认情况下 houdini 不会对大型的对象进行缓存,以此获取足够的空间存储之前帧中的碰撞信息。

在进行大规模解算的时候可以考虑启动该选项。

Initial Data

Input Type决定以什么样的形式处理来自 SOP path 的数据。

Surface SOP
该选项会在指定的 surface 内部产生粒子。

Particle Field
基于几何体上的 points 创建 fluid particle。

该种方式可以用在需要自定义 particle 分布的情况,或者用于复用已存在的模拟,也可以用于组合拥有不同初始化状态的流体。

当选择该种输入方式的时候,particle separation 与初始化时粒子的分布状态是没有任何关系的。

如果关闭了 Initialize Fluid Attributes 选项, 初始化不会增加或更改任何来自输入端的属性。

File
使用 .bgeo 文件作为初始化源。该选项主要用于使用已有的几何体数据直接进行初始化。

Fetch Data
该选项使用在 DOP 中指定的几何体作为源在其内部产生粒子。

由于初始情况下粒子之间的距离受 particle separation 的控制,因此 particle separation 也同样决定了将会生成的粒子数量。

Narrow Band
该选项用于 Narrow Band 类型的模拟(Narrow Band 是一种在流体表面和体积之间创建一层薄层来表示流体内部运动的技术)。

Narrow Band 需要 surfacevolume(比如 velocity) 的信息来生成,因此需要指定 surfacevelocity 的体积场。
Initial ConfigurationSurface SOP 下使用。

Grid
粒子会基于 surface 内部的,与坐标系对齐的网格上生成。

Tetrahedral
粒子基于 tetrahedral 形状的排列生成。该种生成方式更加紧凑,在希望流体迅速平静下来的情形下有用,同时还能避免流体的高度大幅度下降。
Jitter Seed 尽量使初始粒子不对称来达到随机化发射源的效果。
Jitter Scale magnitude of random jitter.
Initialize Fluid AttributesParticle Field 模式下使用。当该参数启用的时候,DOP 将覆盖任何存在的,被 Particle Fluid Solver 使用的属性(比如 mass, velocity, density 等等。),并将使用覆盖后的值作为初始化的值。

如果要从已有的 particle fluid 模拟中初始化对象,保持该参数关闭即可。这种情况一般发生在重启已有模拟,或将两个流体对象组合到一起的时候。
Initialize Velocity使用 initial Velocity 中的值作为粒子速度的初始值。
Add Viscosity Attribute为粒子添加 Viscosity 的属性(但并不修改 / 初始化)。默认值为 1,意味着任何新添加到模拟中的粒子都需要遵循该属性的全局值。

需要注意的是,粒子的 viscosity 通常被视作倍数,因此 1 则意味着使用全局值。
Add Divergence Field使用自定义的 Divergence Field 来得到模拟对 Divergent-Free 的要求。该选项可以通过 Flip solver 中的 Divergence Tab 进行操作。

Guides

该目录主要用于模拟的可视化。比较重要的几个可视化选项:

  • Particle TAB 下的粒子显示可以更换模式,并且可以显示不同属性的 ramp。

待完善。

Physical

Density流体的密度。该值存储于流体对象中的 density field,可以使用 Flip solver 中的 Volume Velocity 输入端(从左往右第三个)进行操作,或者使用 Flip solver 中的 Density Tab 进行覆盖操作。
Viscosity这里的 Viscosity 指的是 Dynamic Viscosity,指代流体运动受到的阻力(另外一种 Viscosity 的测量方法基于流体重量受重力的影响,结果称为 Kinematic Viscosity)。Viscosity 的值依赖于scale of the particles。默认情况下,1000 左右的值能表示比较厚重的流体,10000 左右的值可以表示类似于湿润面团一样的流体。

该值存储在 Viscosity Field 中,可以通过 Volume Velocity 的输入端或 Flip solver 中的 Viscosity TAB 修改。修改之前需要开启 Enable Viscosity 的开关。

Collisions

Volume Offset决定碰撞发生的位置离实际的碰撞体积有多远。0 代表直接与碰撞对象的边缘发生碰撞,1 代表发生碰撞的位置与碰撞对象的距离为 1 个粒子的半径
Use Point Velocity for Collisions主动碰撞对象的速度由线速度和角速度组成。但如果组成该对象的 point 是不变的,那么这些点的速度就可以用于估算该碰撞对象的速度。
Use Volume Velocity for Collisions如果组成上述碰撞对象的 points 并不稳定(比如数量一致在变),那么我们也可以使用该对象的 Volume Representation 来表示速度;具体的说,体积变化的程度可以用于估算该碰撞物体的速度。