在这个关于 Blender 4.5 中使用 Fluid 模拟器制作火焰和烟雾的系列教程第五节中,我们将介绍 Domain 的一些主要参数,重点是 Settings、Gas、Fire 和 Collections 部分。


本教程是关于 Blender 4.5 中火焰与烟雾基础的 10 集迷你系列的一部分。要查看完整的剧集列表,请点击这里。

本教程的视频版本目前尚未提供该语言版本。您可以在下方观看带字幕的英文版视频;视频下方提供了翻译成中文的文字稿。


视频文字稿

大家好。在这个关于 Blender 4.5 中使用 Fluid 模拟器制作火焰和烟雾的系列教程第五节中,我们将介绍 Domain 的一些主要参数,重点是 Settings、Gas、Fire 和 Collections 部分。其中一些参数可以帮助我们创建更加生动、不那么单一的火焰和烟雾效果。

我们先从 Settings 部分的主要元素开始。

现在我们已经熟悉了 Resolution Divisions 参数,也知道如果 Domain 底部小立方体所表示的 Voxels 尺寸非常小,而 Domain 本身又很大,那么运行模拟时将需要更多的计算量和内存。

位于 Settings 部分底部的 Adaptive Domain 选项允许 Blender 在模拟过程中动态改变 Domain 的大小。

即使启用 Adaptive,Domain 在高度方向上的增长也只会到达一定的上限。超过这个高度后,当烟雾接触到 Domain 的顶部时,就会像遇到 Outflow 一样开始消失。稍后我们会看到,在 Gas 部分中有一个专门的选项,可以让烟雾更快地消散。

现在我们先禁用 Adaptive Domain,来看一下 Border Collisions 部分。

当启用 Border Collisions 参数时,包围盒的边界会被视为障碍物,从而偏转火焰和烟雾;如果禁用,则边界会被视为 Outflow,也就是火焰和烟雾在到达边界时会立即消失。如果仅为 Domain 的顶部启用 Border Collision,烟雾会在顶部聚集,并在向两侧扩散时消失,因为侧面仍然关闭了 Border Collision。

如果在其他侧面也启用 Border Collision,Domain 就会像一个封闭的盒子,火焰和烟雾会持续积聚,而不是在接触墙壁时消散。

回到 Settings 面板顶部,我们可以看到 Time Scale 和 Adaptive Time Steps。Time Scale 用于减慢或加快模拟速度。

默认启用的 Adaptive Time Steps 复选框允许算法为动画的每一帧决定是否计算更多的中间步骤,也就是 Steps。

该复选框下方的三个参数与算法用于决定每次执行多少 Steps 直接相关。

Maximum 和 Minimum 的含义比较直观,而 CFL Number 稍微复杂一些。

不涉及实现细节,我们只需要知道,较高的 CFL Number 会减少 Steps 的数量,从而缩短计算时间,但结果的精度也会降低。

在火焰和烟雾运动速度较快的模拟中,最好使用较低的 CFL Number,以提高模拟质量。

Gravity 参数默认是禁用的,因为系统使用的是 Scene 选项卡中的全局设置。如果在 Scene 选项卡中全局禁用 Gravity,那么这些参数就会在 Physics 中重新变为可用,并可以进行修改。

Empty Space 仅对 Smoke 元素有效。具体来说,低于该阈值填充的 Voxels 会被视为空并在模拟中忽略,从而节省计算时间。

接下来我们进入 Gas 部分。首先是 Buoyancy Density 和 Heat 参数,它们表示气体的向上作用力,第一个基于气体密度,第二个基于气体温度。这两个数值并不直接表示温度和密度,而是表示由它们产生的向上浮力。

这些参数的工具提示非常清晰,说明提高这些数值会让气体上升得更快。特别是 Buoyancy Heat,表示由烟雾热量产生的向上作用力。烟雾温度与周围环境之间的初始差值是在每个 Inflow 对象中通过 Initial Temperature 参数定义的。在 Inflow 对象面板中,我们还可以找到 Density 参数,它与 Domain 的 Buoyancy Density 相关联。

Vorticity 控制烟雾的湍流程度,同时也会间接影响火焰。

Vorticity 值越高,烟雾扰动越强。需要注意的是,即使是较低的数值,也可能产生非常强烈的湍流效果。画面中还展示了随着 Buoyancy Density 提高,烟雾上升速度变快时的效果变化。

为了防止气体在顶部积聚,并且总体上让它们更快消失,我们可以启用 Dissolve,并调整 Dissolve Time 参数,该参数以帧为单位。

显然,Dissolve Time 数值越小,烟雾消失得越快,因为它在画面中停留的帧数更少。Dissolve Slow 选项会让气体以对数方式消散,也就是一开始消散较快,然后随着时间推移逐渐变慢。

Gas 部分还包含 Noise 和 Fire 两个选项,它们允许我们为火焰添加扰动。尤其是 Noise,主要影响火焰的轮廓,在边缘增加大量细节,因此非常适合制作例如篝火或壁炉火焰那样更加湍动、不那么均匀的效果。

Strength 和 Scale 参数分别直观地控制扰动的强度和尺度。

Upres Factor 参数表示在 Domain 基础分辨率之上额外应用的细分倍数,用于生成噪波细节。这也解释了为什么模拟会变慢,因为带有噪波的区域会以更高的分辨率进行计算。

在 Fire 部分中,我们会立即注意到这里同样有一个 Vorticity 参数,就像 Gas 部分一样。与烟雾类似,Vorticity 会为火焰引入湍流。火焰也具有温度,与烟雾相同,数值越高,上升得越快。将这两个参数结合起来,可以得到更高、更有活力的火焰效果。

最后是 Collections 部分,其中包含两个字段,可以指定名为 Flow 和 Effector 的 Collections。如果指定了 Collections,那么模拟中只会包含属于这些 Collections 的 Flow 和 Effector 对象。

Effectors 是特殊元素,用于定义能够偏转火焰和烟雾路径的对象。我们将在后续章节中介绍两种 Effectors 类型,即 Colliders 和 Guides。

默认情况下未指定任何 Collections,因此所有 Flow 对象和所有 Effector 对象都会被纳入模拟计算。

本网站仅用于展示我的部分作品,不具有任何推广或商业目的。请注意,目前我不接受,也不会回复任何定制项目、咨询服务或其他形式的合作请求。


高级隐私策略信息和cookie文件的使用