运用SDF流体模拟的解算器。
使用工具架上的Liquid Container 工具会自动创建一个流体容器和流体解算器。
Setting up
如果你要设置一个流体网络,你可以使用Fluid Object node创建一个(带有Fluid解算器所需的数据)DOP物体。如果你已经有一个DOP物体,你可以使用Fluid Configure Object node来添加所需的数据到其上。
解算器会使用物体上的各种场类型的子数据。
物体应当有一个surface标量场,可以在空间中跟踪流体的曲面。
物体应当有一个vel矢量场,可以在空间中跟踪每个点的速度。
Tips
如果你的流体一直没有出现,试着关闭Build Outside Markers选项。你也可以将Marker Escape Threshold设为0,可以隐藏方盒内的流体。
比体素小的流体可能会消失。
如果你的源物体会变形,或和一个变形物体碰撞(使用 DOP relationship),默认解算器会使用每点的变形。要使解算器使用每点变形,在Fields > Sources 子选项卡上,设置速度类型为“点速度”。
Parameters
Simulation
这些参数控制着模拟随着时间的变化。
Time Scale | 时间缩放,可以缩放模拟的快慢。1是正常的速度,大于1会使流体加速,小于1会减慢流体的运动。你可以使用表达式doptime, dopframe,dopsttot, dopttost在全局和局部时间之间转换。 |
Confinement Strength 限制强度 | 当容器附加了一个vorticles(漩涡)数据时,此是一个用于漩涡力的整体缩放调节值。漩涡力是一些小的像风车那样的力,可以像流体中添加扰乱。 |
Speed Limit | 如果设置了,每个轴向上的速度场会被钳制到该最大值。此是在力计算后,分散或传输前完成的,所以最终的速度值可能会略大于此值。 Note 因为钳制是在每个轴向上完成的,所以沿着对角线的速度会比平方值高。 |
Viscosity | 控制流体粘度,低的值会更像水,高的值粘度更大,流体更浓厚。 另外粘度也是一个力,其会试着使临近的体素有一样的速度。 |
Use Friction and Bounce | 使用流体的物理参数控制碰撞处的摩擦力和弹力。关闭此项,流体的摩擦力和弹力会是0. |
Relationships
在Houdini12之前,Pyro解算器会使用DOP关系来将源对象,水泵对象,sink以及碰撞几何体和流体容器产生关联,使用Merge DOP/Apply Relationship DOP来创建这个关系。在H12和之后的版本中首先方式是使用SOP网络创建源,水泵,Sink,以及碰撞几何体,并使用Source Volume DOP导入它们。
如果你想使用旧的关系方式来设置源,Sink等关系,你可以使用该选项卡中的参数来启用关系。默认,关系是关闭的,解算器会忽略这些关系。
你可以同时使用这两种方式,即导入导入DOP物体,并将其附加到解算器的“源”输入端,以及设置DOP物体的关系。当启用关系时,解算器会合并两种方式之间的源,Sink等关系。
Enable Relationships | 使用物体的关系数据来添加源,水泵,SInk以及碰撞几何体关系到模拟中(以及连接被导入的数据到源输入端)。 |
Sources
Enable Source Relationship | 给DOP物体使用一个“源”关系,即DOP物体作为一个发射源。 | ||||||
Velocity Merge | 源物体的速度如何影响容器的速度场。缩放参数控制着所添加的数量。
| ||||||
Velocity Type | 如何测量源物体上的速度。如果源几何体没有随着时间变形,可以使用“刚性速度”。如果源几何体随着时间变形,但不会改变拓扑,可以使用“点速度”方式。
|
Pumps
Enable Pump Relationship | 给DOP物体使用一个“水泵”关系,即DOP物体会作为一个水泵,对流体产生推动作用。 | ||||||
Velocity Merge | 源物体的速度如何影响容器的速度场。缩放参数控制着所添加的速度数量。 | ||||||
Velocity Type | 控制水泵物体的每点速度是如何计算的。
|
Collisions
Enable Collide Relationship | 给DOP物体使用一个“碰撞”关系,即DOP物体会和流体碰撞。 | ||||||
Restrict Mask to Bandwidth | 使用碰撞遮罩,只会从原始的碰撞几何体上计算到一定的距离范围。关闭此项会计算遮罩的完整范围。 | ||||||
Sticky Fluid | 定义碰撞物体是否阻止从其曲面漏出,而非只阻止流体漏出曲面。应当开启此项。 | ||||||
Collide with Non-SDF | 允许流体和没有SDF的物体碰撞,如其他流体。 | ||||||
Velocity Type | 控制如何计算碰撞物体的每点速度。
|
Sink
Enable Sink Relationship | 给DOP物体使用一个“SInk”关系。 |
Advanced
Minimum Substeps | 强制设置解算器所运行的最小子步幅尺寸。如果你使用的是烟雾解算器,可以增加此值获取一个更稳定的效果。增加它会使模拟变慢。 |
Maximum Substeps | 强制设置解算器所运行的最大子步幅尺寸。增加它也会使模拟变慢。 |
CFL Condition | 当最大子步幅大于1时,解算器会使用该参数来定义子步幅的数量。其条件是:没有子步幅会允许一个物体以大于该体素数量产生渗透的。高值可以通过更多的子步幅来移动烟雾,很可能让它穿过碰撞物体。 |
Frames Before Solve | 指定在完全解算完成前,等待的帧数量。只有这些帧或运用到运用到上一此解算器输入端的会被计算。 |
Surface
Correct Surface | 碰撞物体的运动可能导致流体和物体渗透。该参数会移除和碰撞物体渗透部分的流体。 |
Rebuild SDF | 用于定义初始化的ISO等高线,会直接从这些值上重建SDF场。 |
Reinitialize SDF | 如果场已经是一个SDF场,可以对场执行一些校正。当SDF未影响边界时,会重初始化场。 |
Reinitialize Rate | SDF的重建和重初始化会每隔N帧计算一次,N是重初始化的速率。 |
Reinitialize Iterations | 运用重初始化操作的次数。 |
Marker Escape Threshold | 距离标记必须是在曲面的错误一侧,且以标记的半径来测量,只有逃脱的标记会更新曲面值。 |
Markers
Build Inside Markers | 在曲面内部构件标记元。通过向外推动边界来校正曲面。 |
Build Outside Markers | 在曲面外部构件标记元。通过向内推动边界来校正曲面。 |
Markers Per Voxel | 在每个体素中所存在的标记数量。更多的标记可以更换的捕捉曲面的行为,但是可能会花费内存和处理时间。 |
Minimum Marker Radius | 标记元的最小半径,以体素尺寸来测量。 |
Maximum Marker Radius | 标记元的最大半径,以体素尺寸来测量。 |
Projection
Variational | 控制流体的随机变化效果,开启此参数可以让流体更有气势。 |
Scale by Surface | 通过粗略估计每个体素中有多少流体来缩放外部力。 |
Preserve Bubbles | 包裹在流体中的空气会被给定一个独立于边界压力条件的压力值。此可阻止气泡自身塌陷。如果没有设置,流体会从各个面流进气泡内。 |
Ghost Fluid | 压力会被扩散到空气单元中,而非只被设置为0. |
Limit Velocity Extrapolation | 当速度场扩散到一个非流体单元时,当沿着边界特定数量的单元被填充后,会停止扩散。 |
Max Cells to Extrapolate | 要被使用速度值填充的非流体单元数量。 |
Strain
Use Strain | 添加一个“张力”场到物体上,来跟踪在每个体素上流体经历过的变形数量。 |
Plastic Flow Rate | 塑性流体的速率。当前张力会在每秒中以该速率消散。 |
Plastic Flow Threshold | 此是一个用于塑性流动的阈值。当张力值超出该阈值时,张力会根据塑性的流动而消散。 |
Strain Elastic Modulus | 和阻力系数类似,此是张力弹性的系数值。 |
Advection
Advection Type | 用于传输流体的算法。
| ||||||
Clamp Values | “BFECC and Modified MacCormack ”传输类型的错误校正可以移除超出容器的外的体素值,导致产生负的密度值的奇怪的效果。此参数可以让你选择一个方式来避免这个问题。默认是“重置”方式。
| ||||||
Vel Advection Type | 用于传输速度场的算法。列表中更高的类型会降低场的外观粘度。 | ||||||
Advection CFL | 当跟踪粒子时,此控制在单次迭代计算中,粒子可以移动多少体素。高的值会产生快速的传输,和快速的跟踪,但会有更多错误。 |
Collisions
Feedback Scale | 是一个流体对物体反作用的力的缩放因子。值为0,流体不会反作用于物体,增加该值可以使物体漂浮在流体上。 |
Clear Fields
Fields to Clear | 在解算完步幅后,清空指定的场类型。此可以去掉不需要的模拟文件,减少模拟数据的尺寸,节约保存时间。
| ||||||
Additional | 此处时一个用空格隔开的额外场列表,在解算处理完成后,这些场数据会被清空。 |
Inputs
First Input | 此可选输入可用于控制哪个模拟物体会被该节点修改。任何通过该输入端连接的物体,以及匹配组参数的物体都会被修改。 如果该输入端没有连接,此节点可以配合一个Apply Data(运用数据)节点使用,或者可以作为其它数据节点的输入。 |
All Other Inputs | 如果该节点有多高输入连接对象,其它数据可以作为修改由该节点创建的数据的修改器。 指定的子数据类型对从节点到节点是非常有意义的。中键点击一个输入连接器来查看可获取的数据节点列表(这些节点可以被有意义的附加)。 |
Outputs
First Output | 此操作节点的输出取决于连接到该节点的输入对象。如果一个物体流输入到该节点,输出也会是一个包含同样物体的物体流(但是会在物体上附加该节点的数据)。 如果没有物体流连接到该节点,此输出就会是一个数据数据。此数据输出可以被连接到一个Apply Data DOP节点上,或者之间连接到其它数据节点的输入上,将该节点的数据附加到另外一个物体或数据块上。 |