跳转到内容

Blender 3D:菜鸟到高手/制作火焰

来自 Wikibooks,开放世界的开放书籍
图 1:我心目中的粒子火焰。

我们将使用简单的粒子系统创建一个篝火。本教程基于Blender 手册中描述的方法。本教程的结果如图 1 所示,Blend 文件包含在本页底部。

如果您需要更逼真的火焰,您应该使用BlenderArt 杂志第 16 期中描述的方法,尽管该方法更高级,并且大量使用了合成节点。

本教程的起点是火焰的物理行为。火焰是由热气体组成的。由于其密度低于周围环境中的冷空气,因此它们向上加速。火焰中间最热最亮,外围则较暗。

粒子系统

[编辑 | 编辑源代码]
图 2a:一个简单的场景

我已经创建了通常的场景,其中有一些石头和几块木头(木头是 Teeth 提供的)。(图 2a)。

新手说明:我通过添加一个 3 次细分的 Icosphere 来制作石头,然后使用比例编辑衰减(OKey)和随机衰减模式。然后细分并平滑。
新手说明 2:对于木头,我使用了一个用 GIMP 创建的图像纹理修改后的平面
  • 在石头中间添加一个平面

这将成为粒子发射器。

  • 平面对象重命名为 "Emitter"。

如果您使用好名字,您将在以后更容易地在场景中定位自己。拥有 100 个名为 "Cube.something" 的对象将使您很难快速选择所需的物体。

  • 编辑模式下细分平面一次。
  • 改变平面的形状,使其形状等于火焰的底部。
  • 切换到物体模式。
图 2b:粒子系统
  • 切换到物体按钮的粒子按钮。
  • 创建一个粒子系统(在粒子系统面板中添加新 - 确保平面被选中!)。
  • 类型:发射器 平面发射粒子。
    • 数量: 9000 粒子的总数。
    • Sta: -45 模拟应在渲染之前开始,以便在第一帧中拥有完全展开的火焰。
    • 结束: 200 模拟应持续 200 帧 - 这里:粒子在第 200 帧之前发射。
    • 寿命: 16.6 我已经调整了粒子的寿命以匹配其速度。这两个参数共同调节火焰的高度。
    • 随机: 0.5 寿命是随机变化的。
  • 从以下位置发射
    • 随机
    • 均匀
    • 随机

这将在发射器对象的面上创建随机分布的粒子。

Note:

请注意,只有当烘焙面板中的烘焙参数与粒子的正寿命匹配时,粒子模拟才会完全计算。如果您想让模拟运行超过 250 帧,您还必须在烘焙面板中增加结束帧。这与您是否要烘焙无关。

粒子的运动由粒子物理学控制。您设置初始速度,其余部分让物理学来处理。

  • 法线: -0.099 粒子略微朝着面法线相反的方向发射。这会导致火焰底部稍微更宽。
  • 随机: 0.014 这会在速度和方向上创建一个随机的起始速度(您可以使用纹理仅随机化速度,请参阅讨论页面以获取相关信息)。

在您为粒子赋予初始速度后,它们会受到力的影响而移动。

  • AccZ: 2.57 正 Z 方向(向上)的力。
Note:

据我所知,AccZ 在更高版本(我的版本是 2.69)中不存在;替代方法似乎是将物理设置为流体,并设置正浮力(大约 0.75 似乎合理)。

  • 阻力: 0.1 空气阻力使粒子减速。
  • 布朗: 1.99 随机运动模拟了空气运动的激动。
图 2c:没有材质的粒子

粒子系统已经完成。到目前为止,它看起来并不像很多(见图 2c 中的白色 Blob)。因此,发射器将获得一种材质,这种材质将被动画化。

图 3a:发射器对象的材质。
  • 为发射器创建一个新材质,将材质命名为Flames
  • 链接和管道面板中激活光晕按钮。否则,我们就无法设置粒子参数。粒子将使用默认的光晕值进行渲染。
  • 光晕颜色:1/0/0(红色)
  • Alpha: 0.8 粒子应始终略微透明。
  • 光晕尺寸: 0.132 我想要很多,但相当小的粒子。
  • 硬度: 45 从完全透明到完全不透明的过渡。
  • 添加: 0.875 几个光晕叠加在一起,将它们的强度结合起来。这使得火焰中心非常明亮。
  • 光晕纹理:光晕可以包含一个单独的纹理,但只评估第一个纹理槽中的纹理。

为了让光晕有更多结构,给它一个纹理

  • 在第一个纹理槽中添加一个新纹理。
  • 映射到
    • 颜色
    • 颜色:亮黄色 (1/1/0.664)
图 3b:调整后的纹理
  • 使用调整后的云朵纹理,噪声尺寸为 0.6。

粒子材质的动画

[编辑 | 编辑源代码]
图 3c:Alpha 值的动画

粒子“突然”出现,然后突然消失。我们应该改变这一点。因此,我们将对粒子的Alpha 值进行动画处理。

  • 确保材质按钮在按钮窗口中可见。
  • 切换到第 21 帧,将鼠标光标悬停在按钮窗口上,然后按I->Alpha。这将是粒子的最大可见度。
  • 切换到第 1 帧。将Alpha 值更改为 0,并插入下一个关键帧。
  • 切换到第 100 帧。将Alpha 值再次更改为 0,并插入第三个关键帧。

如果您想在IPO 编辑器窗口中查看 IPO 曲线,则必须将窗口标题中的IPO 类型选择器从物体更改为材质

Note:

注意:粒子材质的动画从前 100 帧映射到粒子的寿命。即,如果材质在前 100 帧内淡出(ipo 曲线长 100 帧),则粒子将在其自身寿命内淡出,无论其寿命有多长。但这只适用于可视化粒子,不适用于物体可视化。

因此,Alpha 值在每个粒子的单独寿命期间从 0 变为 0.8,然后又变回 0(图 3c)。

Note:

注意:在 Blender 2.6 中,IPO 曲线不再存在。选择图形编辑器视图可以获得相同的功能。另外请注意,在上一节的纹理设置中,您需要在“影响”部分中启用(并设置为 1)Alpha 设置,否则 Alpha 动画将应用于整个粒子系统,而不是应用于单个粒子。

我们的粒子动画已经完成。

  • 在渲染按钮的Anim 面板中将结束帧更改为 200,然后单击Anim

注意:如果渲染后粒子太小,以至于火焰看起来不逼真,请尝试稍微增加光晕尺寸。我使用了 0.300 而不是 0.132

为了让火焰真正发光,您必须使用一个或多个灯,并且也要对它们进行动画处理。但这将是另一个教程的一部分……

华夏公益教科书