设置

参考

面板

物理 ‣ 流体 ‣设置

类型

领域

域对象包含整个模拟。流体模拟不能离开域,它要么与边缘碰撞,要么消失,取决于域的设置。

请记住,大域需要更高的分辨率和更长的烘焙时间。你要把它做得足够大,使模拟能在里面进行,但又不能太大,以免计算模拟的时间太长。

要创建一个域,需要添加一个立方体,并对其进行变换,直到它包围住你想要进行模拟的区域。翻译、旋转和缩放都是允许的。要把它变成一个流体域,在 属性 ‣ 物理 标签中点击 流体 ,然后选择 领域 作为流体的 类型

Note

可以 使用其他形状的网格对象作为域对象,但流体模拟器将使用该形状的 边界框 作为域边界。换句话说,域的实际形状仍将是矩形的。

域类型

一个流体域可以控制液体或气体流动。液体域将所有与该域相交的液体流动对象都考虑在内。气体域考虑所有与之相交的 以及 烟和火 流动对象。不可能动态地改变域的类型。

分辨率分区

流体域被细分为许多 "单元",称为 Voxels,构成了流体的 "像素"。这个设置控制了域中的细分数量。更多的细分数量是创建更高分辨率的流体的一种方法。

由于分辨率是以 "分区" 来定义的,较大的域将需要更多的分区来获得与小域相当的分辨率。例如,一个有64个 分辨率分区 的一米立方体将需要128个分区来匹配一个2米立方体。用作基础划分的尺寸是物体边界盒的最长尺寸。为了帮助可视化体素的大小, 分辨率分区 可以在三维视口中显示一个小立方体来预览,以显示这些划分的大小。

时间比例

控制模拟的速度。低值会导致 "慢动作 "的模拟,而高值可以用来更快地推进模拟(有利于生成用于静态渲染的流体)。

CFL 编号

确定每个网格单元的最大速度,以每个时间步长的网格单元为单位。流体在一个时间步长中只允许移动到这个速度。如果超过这个阈值,求解器将对模拟步骤进行细分。

一般来说,更大的CFL(Courant-Friedrichs-Lewy)数字将使模拟步骤的数量和计算时间最小化。然而,对于快速的流体流动来说,它将产生不太准确的物理行为。较小的CFL数字会导致每帧更多的模拟步骤,更长的模拟时间,但在高速情况下的行为更准确(例如,快速流体流与障碍物相撞)。

Note

当降低 CFL 数时,建议增加最大时间步数。同样地,当增加 CFL 数时,应调整最小的时间步数。

使用自适应时间步数

让求解器自动决定何时执行每帧多个仿真步骤。它考虑到最大和最小的时间步数、当前的 帧速率时间尺度

时间步长最大值

每帧允许的最大时间步数。如果需要,求解器将把一个模拟步骤划分为这个数量的子步骤。

最小时间步长

每帧允许的最小时间步数。解算器将始终执行每帧至少这个数量的模拟步骤。

重力

默认情况下,流体求解器将使用全局场景的重力。这种行为可以在场景设置中禁用。禁用全局重力将启用流体重力选项。

空的空间 :guilabel: "只有气体"。

值低于这个值的体素被认为是空的空间。更多的空白空间可以优化渲染。通过OpenVDB缓存,它还可以减少缓存的大小。

在障碍中删除

移除任何与域内障碍物相交的流体体积。

边界碰撞

参考

面板

物理 ‣ 流体 ‣设置 ‣ 边界碰撞

类型

域(气体)

控制域的哪一面将允许流体 "通过 "域,使其消失而不影响模拟的其他部分,哪一面将偏转流体。

烟雾材质

参考

面板

物理 ‣ 流体 ‣设置 ‣ 烟雾

类型

域(气体)

密度浮力

基于烟雾密度的浮力。

  • 高于0的值将导致烟雾上升(模拟比环境空气轻的烟雾)。

  • 低于0的值会导致烟雾下沉(模拟比环境空气重的烟雾)。

热度浮力

控制烟雾受温度影响的程度。这个设置对烟雾的影响取决于每个流量对象: 初始温度

  • 当流量对象 初始温度 被设置为正值时,高于0的值将导致烟雾上升,而当流量对象 初始温度 被设置为负值时,烟雾下沉。

  • 低于0的值将导致与正值相反的结果,即 初始温度 为正值的流动物体发出的烟雾将下沉, 初始温度 为负值的流动物体发出的烟雾将上升。

请注意,来自不同温度的多个流动物体的烟雾会混合,升温或降温,直到达到平衡。

涡量

控制烟雾中的湍流量。较高的数值会产生大量的小漩涡,而较低的数值会产生较平滑的形状。

不同数量的涡度的比较。
../../../../_images/physics_fluid_type_domain_settings_vorticity-off.png

涡度为 0.0 的域。

../../../../_images/physics_fluid_type_domain_settings_vorticity-on.png

涡度为 0.2 的域。

溶解

让烟雾随着时间的推移而消散。

时间

烟雾在帧中的消散速度。

减慢

以对数方式溶解烟雾。起初溶解很快,但持续时间更长。

火焰

参考

类型

领域

面板

物理 ‣ 流体 ‣设置 ‣ 火

反应速度

燃料燃烧的速度。数值越大,火焰越小(燃料在走得很远之前就燃烧了),数值越小,火焰越大(燃料在被完全消耗之前有时间流得更远)。

火焰烟雾

自动创建的额外烟雾量,以模拟燃烧的燃料。这种烟雾在使用 "火 + 烟" 时最明显:参考: 流体对象

涡量

除了全局流体之外,火焰的涡度: 涡度

最高温度

火焰的最高温度。较大的数值会使火焰上升得更快。

最小值

火焰的最低温度。较大的数值会使火焰上升得更快。

火焰颜色

燃烧的燃料产生的火焰的颜色。

液体

参考

类型

领域

面板

物理 ‣ 流体 ‣设置 ‣液体

液体设置控制模拟所包含的粒子的行为。启用液体复选框将自动为模拟创建一个粒子系统。这个粒子系统可以使模拟的流动可视化。液体粒子的可视化是可选的。流体模拟将利用所有没有附加粒子系统的领域。

Note

禁用液体复选框将删除附加的粒子系统及其设置。

模拟方法

确定液体颗粒的模拟方法。

FLIP

产生一个非常飞溅的模拟,有很多颗粒散布在空气中。

APIC

产生一个非常有活力但也更稳定的模拟。与 FLIP 相比,液体中的涡流将被更好地保留下来。

FLIP比率 :guilabel: "仅模拟FLIP"。

在更新液体粒子速度时要使用多少FLIP速度。1.0的值将导致一个完全基于FLIP的模拟。完全基于FLIP的模拟会产生更加混乱的飞溅,在模拟更多的液体时,这种模拟是比较好的。当使用较小的数值时,其行为将不那么紊乱,飞溅也更微妙。当模拟液体应该在小范围内的场景时,这是最佳选择。

系统最大值

仿真中允许的最大流体粒子数。如果这个字段被设置为非零值,那么模拟将永远不会包含超过这个数量的流体粒子。否则,如果数值为零,求解器将在需要时一直对新粒子进行采样。

粒子半径

以网格单元为单位的一个液体粒子的半径。这个值描述了一个粒子所覆盖的面积,从而决定了它周围有多少区域可以被认为是液体。更大的半径会让粒子覆盖更多的区域。这将导致更多的网格单元被标记为液体,而不仅仅是空的。

每当模拟出现泄漏或以不希望的、非物理精确的方式增加体积时,调整这个值是个好主意。也就是说,当液体似乎消失时,这个值需要增加。反之亦然,当产生了太多的液体时,就需要调整。

采样

采样颗粒时使用的系数。更高的值会对更多的粒子进行采样。请注意,粒子重新采样发生在每一个模拟步骤。

随机性

新的粒子被采样时,其位置有一定的随机性,可以通过这个字段来控制。更高的值将对流入区域的液体粒子进行更随机的采样。如果数值为0.0,所有的新粒子将在其相应的网格单元内被均匀地采样。

当试图创建一个层流(随机性小)或更多的湍流(随机性大)时,这个值可能是有用的。

粒子最大值

每个网格单元的最大液体颗粒数。在模拟过程中,一个单元中的液体粒子的数量可以波动。颗粒可以流入其他单元,或者如果它们移动到窄带之外就会被删除。重新取样会考虑到这个最大值而增加新的粒子。

这个值设定了每个单元的颗粒的上限。这也是一个很好的方法来估计你的模拟中可以有多少粒子(也需要考虑网格分辨率)。这在烘焙前和计划模拟时是很有用的。

最小值

每个网格单元的最小液体颗粒数。与最大颗粒阈值类似,该值确保每个单元至少有一定数量的颗粒。

窄带宽度

控制允许液体颗粒流动的窄带的网格单元的宽度。一个高的值会导致一个较厚的带子,并可能导致流入区域完全被颗粒填满。除非模拟的目的是为了观察液体颗粒,否则建议不要大幅增加带子的宽度,因为更多的颗粒会降低模拟的速度。

在某些情况下,当模拟出现泄漏时,增加这个值可以帮助创造体积。在所有其他情况下,最好保持窄带尽可能薄,因为液体表面包含大多数细节,在液体内部模拟粒子不是对计算资源的最佳利用。

See also

窄带是 "液体模拟的窄带FLIP "的实现 <https://www.in.tum.de/cg/research/publications/2016/narrow-band-flip-for-liquid-simulations/>`__。

分数障碍

在流体/障碍物区域(二阶障碍物)启用更精细的分辨率。这个选项可以减少障碍物在域内倾斜时产生的 "阶梯效应"。它还可以使液体在障碍物上的流动更加平稳。

障碍距离

决定了流体和障碍物之间的距离。这个值可以用来在倾斜的障碍物上实现更流畅的运动。根据障碍物的坡度,增加这个值可以帮助液体颗粒更好地流过障碍物。将这个字段设置为负值会让液体向障碍物的内部移动。

障碍阈值

用于控制小数点障碍物选项的平滑度的值。较小的值可以减少 "阶梯效应",但可能导致粒子粘在障碍物上。

烘焙数据,免费数据

这个选项只有在使用 模块化 缓存类型时才可用。烘焙 模拟并存储在驱动器上的流体模拟的基础。气体和液体模拟都可以在此基础上添加细化内容(例如,气体模拟可以添加噪波,液体模拟可以添加网格或二次粒子或两者)。

进展将显示在状态栏中。按 Esc 将暂停模拟。

一旦模拟完成,可以通过按*Free Data*删除缓存。可以暂停或恢复*Bake All*进程。