设置¶
参考
- 面板
- 类型
领域
域对象包含整个模拟。流体模拟不能离开域,它要么与边缘碰撞,要么消失,取决于域的设置。
请记住,大域需要更高的分辨率和更长的烘焙时间。你要把它做得足够大,使模拟能在里面进行,但又不能太大,以免计算模拟的时间太长。
要创建一个域,需要添加一个立方体,并对其进行变换,直到它包围住你想要进行模拟的区域。翻译、旋转和缩放都是允许的。要把它变成一个流体域,在
标签中点击 流体 ,然后选择 领域 作为流体的 类型 。Note
你 可以 使用其他形状的网格对象作为域对象,但流体模拟器将使用该形状的 边界框 作为域边界。换句话说,域的实际形状仍将是矩形的。
- 域类型
一个流体域可以控制液体或气体流动。液体域将所有与该域相交的液体流动对象都考虑在内。气体域考虑所有与之相交的 烟 、 火 以及 烟和火 流动对象。不可能动态地改变域的类型。
- 分辨率分区
流体域被细分为许多 "单元",称为 Voxels,构成了流体的 "像素"。这个设置控制了域中的细分数量。更多的细分数量是创建更高分辨率的流体的一种方法。
由于分辨率是以 "分区" 来定义的,较大的域将需要更多的分区来获得与小域相当的分辨率。例如,一个有64个 分辨率分区 的一米立方体将需要128个分区来匹配一个2米立方体。用作基础划分的尺寸是物体边界盒的最长尺寸。为了帮助可视化体素的大小, 分辨率分区 可以在三维视口中显示一个小立方体来预览,以显示这些划分的大小。
- 时间比例
控制模拟的速度。低值会导致 "慢动作 "的模拟,而高值可以用来更快地推进模拟(有利于生成用于静态渲染的流体)。
- CFL 编号
确定每个网格单元的最大速度,以每个时间步长的网格单元为单位。流体在一个时间步长中只允许移动到这个速度。如果超过这个阈值,求解器将对模拟步骤进行细分。
一般来说,更大的CFL(Courant-Friedrichs-Lewy)数字将使模拟步骤的数量和计算时间最小化。然而,对于快速的流体流动来说,它将产生不太准确的物理行为。较小的CFL数字会导致每帧更多的模拟步骤,更长的模拟时间,但在高速情况下的行为更准确(例如,快速流体流与障碍物相撞)。
Note
当降低 CFL 数时,建议增加最大时间步数。同样地,当增加 CFL 数时,应调整最小的时间步数。
- 使用自适应时间步数
让求解器自动决定何时执行每帧多个仿真步骤。它考虑到最大和最小的时间步数、当前的 帧速率 和 时间尺度 。
- 时间步长最大值
每帧允许的最大时间步数。如果需要,求解器将把一个模拟步骤划分为这个数量的子步骤。
- 最小时间步长
每帧允许的最小时间步数。解算器将始终执行每帧至少这个数量的模拟步骤。
- 重力
默认情况下,流体求解器将使用全局场景的重力。这种行为可以在场景设置中禁用。禁用全局重力将启用流体重力选项。
- 空的空间 :guilabel: "只有气体"。
值低于这个值的体素被认为是空的空间。更多的空白空间可以优化渲染。通过OpenVDB缓存,它还可以减少缓存的大小。
- 在障碍中删除
移除任何与域内障碍物相交的流体体积。
烟雾材质¶
参考
- 面板
- 类型
域(气体)
- 密度浮力
基于烟雾密度的浮力。
高于0的值将导致烟雾上升(模拟比环境空气轻的烟雾)。
低于0的值会导致烟雾下沉(模拟比环境空气重的烟雾)。
- 热度浮力
控制烟雾受温度影响的程度。这个设置对烟雾的影响取决于每个流量对象: 初始温度 。
当流量对象 初始温度 被设置为正值时,高于0的值将导致烟雾上升,而当流量对象 初始温度 被设置为负值时,烟雾下沉。
低于0的值将导致与正值相反的结果,即 初始温度 为正值的流动物体发出的烟雾将下沉, 初始温度 为负值的流动物体发出的烟雾将上升。
请注意,来自不同温度的多个流动物体的烟雾会混合,升温或降温,直到达到平衡。
- 涡量
控制烟雾中的湍流量。较高的数值会产生大量的小漩涡,而较低的数值会产生较平滑的形状。
¶
火焰¶
参考
- 类型
领域
- 面板
- 反应速度
燃料燃烧的速度。数值越大,火焰越小(燃料在走得很远之前就燃烧了),数值越小,火焰越大(燃料在被完全消耗之前有时间流得更远)。
- 火焰烟雾
自动创建的额外烟雾量,以模拟燃烧的燃料。这种烟雾在使用 "火 + 烟" 时最明显:参考: 流体对象 。
- 涡量
除了全局流体之外,火焰的涡度: 涡度 。
- 最高温度
火焰的最高温度。较大的数值会使火焰上升得更快。
- 最小值
火焰的最低温度。较大的数值会使火焰上升得更快。
- Flame Color
Color of flame created by burnt fuel.
液体¶
参考
- 类型
领域
- 面板
液体设置控制模拟所包含的粒子的行为。启用液体复选框将自动为模拟创建一个粒子系统。这个粒子系统可以使模拟的流动可视化。液体粒子的可视化是可选的。流体模拟将利用所有没有附加粒子系统的领域。
Note
禁用液体复选框将删除附加的粒子系统及其设置。
- 模拟方法
确定液体颗粒的模拟方法。
- FLIP
产生一个非常飞溅的模拟,有很多颗粒散布在空气中。
- APIC
产生一个非常有活力但也更稳定的模拟。与 FLIP 相比,液体中的涡流将被更好地保留下来。
- FLIP比率 :guilabel: "仅模拟FLIP"。
在更新液体粒子速度时要使用多少FLIP速度。1.0的值将导致一个完全基于FLIP的模拟。完全基于FLIP的模拟会产生更加混乱的飞溅,在模拟更多的液体时,这种模拟是比较好的。当使用较小的数值时,其行为将不那么紊乱,飞溅也更微妙。当模拟液体应该在小范围内的场景时,这是最佳选择。
- 系统最大值
Maximum number of fluid particles that are allowed in the simulation. If this field is set to a non-zero value the simulation will never contain more than this number of fluid particles. Otherwise, with a value of zero the solver will always sample new particles when needed.
- 粒子半径
以网格单元为单位的一个液体粒子的半径。这个值描述了一个粒子所覆盖的面积,从而决定了它周围有多少区域可以被认为是液体。更大的半径会让粒子覆盖更多的区域。这将导致更多的网格单元被标记为液体,而不仅仅是空的。
每当模拟出现泄漏或以不希望的、非物理精确的方式增加体积时,调整这个值是个好主意。也就是说,当液体似乎消失时,这个值需要增加。反之亦然,当产生了太多的液体时,就需要调整。
- 采样
采样颗粒时使用的系数。更高的值会对更多的粒子进行采样。请注意,粒子重新采样发生在每一个模拟步骤。
- 随机性
新的粒子被采样时,其位置有一定的随机性,可以通过这个字段来控制。更高的值将对流入区域的液体粒子进行更随机的采样。如果数值为0.0,所有的新粒子将在其相应的网格单元内被均匀地采样。
当试图创建一个层流(随机性小)或更多的湍流(随机性大)时,这个值可能是有用的。
- 粒子最大值
每个网格单元的最大液体颗粒数。在模拟过程中,一个单元中的液体粒子的数量可以波动。颗粒可以流入其他单元,或者如果它们移动到窄带之外就会被删除。重新取样会考虑到这个最大值而增加新的粒子。
这个值设定了每个单元的颗粒的上限。这也是一个很好的方法来估计你的模拟中可以有多少粒子(也需要考虑网格分辨率)。这在烘焙前和计划模拟时是很有用的。
- 最小值
每个网格单元的最小液体颗粒数。与最大颗粒阈值类似,该值确保每个单元至少有一定数量的颗粒。
- 窄带宽度
控制允许液体颗粒流动的窄带的网格单元的宽度。一个高的值会导致一个较厚的带子,并可能导致流入区域完全被颗粒填满。除非模拟的目的是为了观察液体颗粒,否则建议不要大幅增加带子的宽度,因为更多的颗粒会降低模拟的速度。
在某些情况下,当模拟出现泄漏时,增加这个值可以帮助创造体积。在所有其他情况下,最好保持窄带尽可能薄,因为液体表面包含大多数细节,在液体内部模拟粒子不是对计算资源的最佳利用。
See also
The narrow band is an implementation of Narrow Band FLIP for Liquid Simulations.
- 分数障碍
在流体/障碍物区域(二阶障碍物)启用更精细的分辨率。这个选项可以减少障碍物在域内倾斜时产生的 "阶梯效应"。它还可以使液体在障碍物上的流动更加平稳。
- 障碍距离
决定了流体和障碍物之间的距离。这个值可以用来在倾斜的障碍物上实现更流畅的运动。根据障碍物的坡度,增加这个值可以帮助液体颗粒更好地流过障碍物。将这个字段设置为负值会让液体向障碍物的内部移动。
- 障碍阈值
用于控制小数点障碍物选项的平滑度的值。较小的值可以减少 "阶梯效应",但可能导致粒子粘在障碍物上。
- 烘焙数据,免费数据
这个选项只有在使用 模块化 缓存类型时才可用。烘焙 模拟并存储在驱动器上的流体模拟的基础。气体和液体模拟都可以在此基础上添加细化内容(例如,气体模拟可以添加噪波,液体模拟可以添加网格或二次粒子或两者)。
进展将显示在状态栏中。按 Esc 将暂停模拟。
一旦模拟完成,可以通过按*Free Data*删除缓存。可以暂停或恢复*Bake All*进程。