火焰的形状用圆形变形一半获得. 用Perlin noise使坐标变形制作随机抖动. 用Emission node渲染发光效果.
用graph editor和noise texture -> 飞行器火焰
步骤
参考RuiHuang_art在b站的教学视频 , 和做车流用到的功能差不多
- world property: 加入一个背景的贴图
- 制做一个平面的火焰:
- 添加一个Plane mesh
- 分成两半: 在Edit编辑模式下, 按Ctrl+R加loop cut , 在edge中间添加新的顶点,
- 把一半拉长: 选中顶点后按G+Y在Y轴拉伸
- shader: 目的是制作一个自发光, 半透明, 抖动的效果
- 颜色效果:
- 用texture Coordinate 生成uv坐标
- 在mapping里把x,y的location调到-2, scale调到4
- uv坐标系好像范围是(-scale/2, scale/2)
- 用Gradient Texture 的spherical: 制作从外到内的渐变
- 自发光: 用Color Ramp 做一个 蓝->白->红->黄 的渐变
- 调整透明度: 用Color Ramp 做一个 透明->半透明->透明 的渐变
- 连接bsdf
- 把Emission和transparent bsdf用Mix shader连接在一起
- 用texture Coordinate 生成uv坐标
- 抖动效果:
- 用texture Coordinate 生成object坐标
- 用Noise Texture 扭曲坐标, 制作抖动效果: noise texture和displacement的cloudy texture效果差不多
- 用Mix Node 的Multiply把两个坐标混合
- 用Graph Editor 调整mapping的y坐标的location, 形成动态的扭曲
- 颜色效果:
- 把火焰的plane mesh旋转复制出多个绕y轴一圈
- 在shader里选中一个materail复制给所有mesh
- 复制完想修改所有的mesh形状但是没找到方法
- 结果: 我复制的次数比较少, 而且颜色也不好看, 形状也拉的不太对
shader流程

用displacement+粒子系统 -> 卡通火焰
步骤:
参考小红书KurTips的教学
- 制作火焰形状
- 添加一个cube mesh
- 在modifier里加subdivision surface
- 在Edit Mode, 打开Propotional Editing(衰减编辑), 选择最上面vertex, 按G+V可以在z轴拉伸
- 制作焰心: 复制一个更小的放在前面
- 选中两个object, 右键shade smooth
- shader计算时, 三角形内的normal vector由三个顶点的normal vector插值得到
- 合并两个object: Ctrl+J
- shader: 设置texture Coordinate generate->Separate XYZ->Gradient Texture->ColorRamp-> Emission
- 把大小两块用不同的材质
- 进入Edit Mode, 随便选中一个点, Ctrl+L可以把原本的大小两个object分别选中
- 在Material添加材质
- ColorRamp颜色: 外焰: 红->黄 ; 焰心: 红->橙红
- 把大小两块用不同的材质
- 抖动效果: 用displacement实现
- 在Modifier添加displace: 选Clouds材质, 调整Size, Depth=1, displacement的Stength
- 让displacement的强度从上到下渐变: 用顶点组实现
- 定义顶点组: 在Edit Mode开透视模式, 选中上面一部分顶点; 在Oject的Data里添加vetex group, 把刚才选中的部分顶点assign给这个顶点组
- 在Weight Paint模式, 增加weight->smooth->iteration: 让 in Vertex Group-> outside Vertex Group 的渐变更光滑
- smooth操作的每个iteration都是和邻域的顶点做平滑
- 在displace的vertex group选择顶点组
- 制作displacement的动态: 通过绑定一个空坐标轴实现
- 在displace的Coordinates选择object, 物体选择我们的空坐标轴
- 修改空坐标轴的Oject->Transform的z轴的值, 改为:
#frame/100(帧数/100)- 这样做比用Graph Editor 方便不少👍
- 制作火星: 用粒子系统
- 在火焰里添加一个圆环mesh
- 进入Edit Mode, 填充: 快捷键F
- 修改Particles参数:
- Field Weight-> Gravity改为0: 让粒子向上
- Velocity-> normal改为2
- Emission: 调整Frame_start, Frame_end, lifetime(和velocity共同控制粒子移动的距离)
- Physics-> Brownian改为10.5: 让粒子做布朗运动
- 调整火星材质:
- 制作一个多面体mesh, subdivision改成1: 减小计算量
- 把多面体的shader改成自发光, 调整color, strength适当增大
- 打开eevee渲染器的bloom(辉光) 功能 : 通过blur发光区域模拟光线在周围大气散射的效果
- 制定Particles->Render参数:
- Render As调成Object模式, Render->Instance选择我们的制作的多面体mesh
- scale调小, scale Randomness调大: 让粒子大小不一
- 结果: 因为焰心的制作方法, 只能在一定角度看.
火焰效果的片段
[1] 冰海战记s2ep5的放火场景
reference
[1] https://zhuanlan.zhihu.com/p/484222862 辉光效果