首页 百科知识 粒子火焰应用

粒子火焰应用

时间:2023-10-16 百科知识 版权反馈
【摘要】:第四节 粒子火焰应用使用流体固然能够制作非常逼真的火焰效果,但是局限性却也不言而喻,这里我们就制作一个喷火的鸭子,这个特效只有用Cloud粒子才能制作:还是这只鸭子,不同的是这次为它制作了一段动画:这一节就配合最后那个张大嘴巴的动作制作一段喷火的效果,方法:使用cloud粒子。所以先为粒子添加RadiusPP粒子属性:接下来控制RadiusPP粒子属性,为了达到先小后大的效果我们可以简单的使用Ramp控制就可以了。

第四节 粒子火焰应用

使用流体固然能够制作非常逼真的火焰效果,但是局限性却也不言而喻,这里我们就制作一个喷火的鸭子,这个特效只有用Cloud粒子才能制作:

还是这只鸭子,不同的是这次为它制作了一段动画:

img597

这一节就配合最后那个张大嘴巴的动作制作一段喷火的效果,方法:使用cloud粒子。

这就开始做:

首先制作一个粒子发射器,并且将发射器固定在鸭子的嘴巴上面(其实就是让粒子发射器跟随鸭子的头移动),所以使用菜单命令Particles-CreateEmitter创建粒子发射器:

img598

img599

将粒子发射器连接到头部骨骼上:

img600

接下去为粒子发射器的发射率(Rate)设置关键帧,因为鸭子在前面作动作的时候是不发射粒子的:

img601

将动画播放到鸭子张大嘴巴喷出粒子的时间段,可以看到喷出粒子的运动状态不错,不需要控制什么了(如果愿意可以加一个动乱场产生点混乱的感觉):

img602

接下来就是把粒子渲染属性改成Cloud类型:

img603

然后跟着就是控制火焰粒子的大小状态了,粒子从嘴巴里出来的时候是很小的,可是到了快要烧尽的时候应该是最大的,所以就需要控制粒子的RadiusPP和生命周期了。

所以先为粒子添加RadiusPP粒子属性:

img604

接下来控制RadiusPP粒子属性,为了达到先小后大的效果我们可以简单的使用Ramp控制就可以了。

为粒子的RadiusPP属性添加Ramp控制:

img605

在调整Ramp的颜色结构前,把粒子的生命周期进行调整,因为默认的创建了Ramp控制以后粒子的生命周期会被设置成为Constan1的。

调整粒子的生命周期:

img606

通过调整Ramp的颜色结构和颜色映射值来达到控制粒子大小变化的目的:

在RadiusPP粒子属性上用鼠标右键单击:

img607

进入Ramp调整颜色结构,将粒子的大小先后顺序制作出来:黑色是产生时候,白色是结束时候:

img608

继续在RadiusPP粒子属性上用鼠标右键单击:

img609

进入调整颜色的映射值,通过映射值改变黑色和白色代表的数值,控制粒子最小的大小和最大的时候的大小:

img610

通过上面的调整,粒子的运动和控制就都差不多了,接下去就是控制cloud粒子的材质了。

通过为粒子材质的贴图制作出火焰的效果,首先为粒子添加新的体积材质ParticleCloud2和新的表面材质Lambert2:

添加新材质:

img611

对体积材质和阴影表面材质进行调整:

采用分开调整的方法(灯光不用制作了,因为场景里面已经有灯光了),首先把体积材质ParticleCloud2的浓度(Dysity)降低到0,这样就不会把体积材质渲染出来,从而达到屏蔽体积材质的效果:

img612

接下来调整表面材质的融合度,选中粒子进入属性编辑器,在渲染属性中对Surface Shading和Thershold进行控制:

img613

由于背景是黑色的,所以表面材质颜色暂时没有改成黑色(否则就和背景融合无法分辨了),还是使用默认的灰色,暂时性的用来调整融合度的测试,如果测试好了就可以把颜色改成黑色的(当然了,如果读者对火焰的阴影有独特的见解可以调整到其他的颜色):

渲染测试:

img614

如果觉得这种融合度满意了,就可以把表面材质的颜色设置成自己想要的颜色,同时把粒子的体积材质ParticleCloud2的浓度(Dysity)适当升高,产生与阴影的融合:

img615

有了满意的体积材质和表面材质的融合后,就可以进行体积材质的颜色制作了,制作这个火焰的颜色和制作爆炸的颜色几乎是一样的,首先给ParticleCloud2的LifeColor一个Ramp纹理:

img616

默认的,同时Color属性也同时被赋予了同样的Ramp纹理,也就意味着,粒子从出生到死亡依次表现出Ramp颜色结构里从下到上的颜色。

所以下一步就是对Ramp纹理的颜色结构进行设置。

对Ramp颜色结构进行调整:

img617

其中Crater的颜色设置如图:

img618

Crater的纹理坐标设置如图:

img619

这时的效果如下:

img620

大体效果已经出来,由于是做火焰,所以最重要的就是火焰要有撕裂的感觉,能够透出阴影融合出来,所以对BlobMap的控制就显得非常重要。

在BlobMap属性上进行贴图能够控制总体的透明,而不是每一个粒子的透明,所以通常会被用来“撕裂”体积材质。

给BlobMap属性一个Crater纹理:

img621

其中Crater的颜色设置如图:

img622

Crater的纹理坐标设置如图:

img623

这时的效果如下:

img624

撕裂的效果和阴影融合完全体现出来了,仔细观察发现火焰的透明是不对的,因为从最里面出来的时候火焰应该是最不透明的,在快要烧尽的时候应该是很透明的,所以要制作一个LifeTransparecy,来控制基于粒子生命周期的透明。

给LifeTransparecy属性一个Ramp纹理:

img625

Ramp的颜色结构如下:

img626

适当调整Noise参数和Roundness的数值然后进行渲染测试,直到满意为止。

img627

加一点glow效果就更好了:

img628

粒子的体积材质ParticleCloud2有了LifeTransparecy效果是不错,但是表面材质还没有LifeTransparecy,这样在粒子火焰燃烧尽头的地方就会有太多的阴影浓度:

img629

所以,表面材质Lambert2同样需要一个LifeTransparecy,但是普通的材质是没有这个属性的,那么我们就手工打造一个LifeTransparecy的材质节点:

在材质编辑器里面创建如图两个节点,一个ParticleSamples,一个Ramp纹理节点:

img630

使用ConnectEdior将ParticleSamples的OutUVCood属性与Ramp节点的纹理放置坐标节点的UVCood属性连接起来:

img631

有了ParticleSamples的接入,ramp纹理就能够产生类似LifeColor的那种,随着粒子年龄的增加依次体现ramp纹理从下到上的颜色的效果。

接下来调整Ramp的颜色结构,并且将纹理连接到表面材质Lambert2的Transparency。

调整Ramp的颜色结构如下:

img632

连接Ramp材质的输出颜色到表面材质Lambert2的Transparency:

img633

现在表面材质也有了LifeTransparecy,于是就不会出现体积材质透明的地方阴影效果过于明显的问题了,下面是对比:

img634

img635

最后,如果读者愿意,可以为ParticleCloud2的LIfeIncandidency进行贴图来取代简单的使用Glow来产生更加复杂的火焰。

下面这张图只是简单的将LifeColor的纹理连接到了LIfeIncandidency上面,同时关闭了glow属性的效果,两种效果各有特点,读者可以做一下比较:

LIfeIncandidency的效果:

img636

Glow属性的效果:

img637

如果渲染测试没有问题了,在进入实际渲染之前,依然是要制作材质动画,很简单的为crater的三维纹理坐标制作动画,有两个crater纹理,所以要为两个纹理坐标设置相同的动画:

img638

这里让纹理沿着Z轴运动,是因为鸭子是向Z轴喷火的。纹理和粒子运动方向一致就不会产生很奇怪的感觉了。

这里使用了很简单的表达式控制坐标物体的移动:

img639

最终效果如下;

img640

img641

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈