在上期文章中,我们已经完成了单个爆破纹理的着色器设计,得到了一个随噪波纹理W值不断变化的火焰纹理,而且还利用空物体作为补偿,实现了复制多个爆破纹理也不会出现火焰纹理重复的目的,接下来我们就需要利用这些特性,结合粒子系统的参数设置来模拟完整的爆破视觉效果。
首先新建一个棱角球,这是发散类粒子系统最好的源体,因为它的所有点、线、面都有不同的法向,且相对经纬球而言不存在点在两极挤压的问题,顶点数量也不多,对硬件系统要求较低,粒子发射效果也最好,所以有类似的粒子系统制作需求都可以选择棱角球来作为源。
因为爆破的效果是从地面往上,所以我们只需要棱角球的上半部分就行,同时把棱角球沿Z轴向内缩放,并放在背景布上,最终获得如图1的效果。
然后我们为棱角球添加粒子效果,这一步需要对粒子系统的多项参数进行调整,才能达到满意的效果。首先如图2,我们要把发射数量从默认的1000个降低到50左右。注意,粒子系统的绝大多数参数,都可以在本教程设计的数值上进行自由浮动,大家可以自行寻找自己满意的视觉效果。
然后我们要把起始帧和结束点都设置为1,因为火焰都是第一时间同时喷发出来的,生命周期则需要完整覆盖整个时间轴,比如本教程是100帧,那么生命周期设置在100帧以上即可,当然你也可以给生命周期附加随机性,但建议随机性设置不要太高,否则效果可靠性会变差。
如果这时候播放视频,你会发现粒子全都往下掉,不是往上喷发,这是因为力场权重里的重力在起作用,我们需要将重力值调整为0,这时候就能看到粒子沿法向进行正确的喷发了。
但此时新的问题又接踵而至:粒子会一直向上跑,而现实中的爆破效果,火焰会在跑一小段后停下来,并最终化成浓烟。所以这时候我们要需要在粒子系统的物理选项卡中,调整力场的“阻尼”值,这个值就是为停止粒子运动而设计的,可以设置为0.1,这时候再播放视频就能看到粒子在喷发一段后缓慢停了下来。但粒子喷发的距离似乎太近了,别慌,我们回到粒子系统最顶端的速度选项卡,把法向速度调整到2m/s,粒子喷发的距离就会相应增大,此时只需要把阻尼和法向速度联动调整,就能获得如图3的效果了,具体的粒子系统参数设置可以参考图4。
然后我們把渲染选项卡里的“渲染为”设置成我们上期制作的火焰纹理,这时候记得勾选物体旋转选项,再播放视频,你会发现火焰纹理被粒子系统喷发出来,我们的第一步设计也就完成了。
目前我们的爆破视觉效果还存在几个问题:粒子大小恒定;火焰纹理没有变化;缺乏火花等细节。接下来我们就要逐步解决这些问题。
首先是粒子大小,爆破刚开始时,粒子尺寸应该很小,而完全爆炸后恢复到较大的尺寸,所以我们需要回到粒子系统,在第1帧给渲染缩放设置为0.01并打上关键帧,然后在第25帧改为1,再打上关键帧,此时播放视频,火焰纹理的变化就明显更合理了。
然后回到火焰纹理,我们要让火焰纹理在刚开始爆破时呈现高亮,而在爆破中后段逐渐转换为烟雾效果,这也正是我们上期为火焰纹理设置多个“映射范围”的原因。找到如图5所示的“映射范围”模块,在爆破刚开始时将“从最大值”设置为0.2,这时火焰纹理亮度很高,然后到第40帧左右设置为0.65,此时火焰纹理呈现正常的燃烧状态,边缘也开始浮现烟雾,再到最后一帧,设置为10,这时候就应该只剩下黑色的烟雾效果,设置完成后回放视频,符合视觉逻辑的爆破效果就基本形成了。
这时候我们还需要添加爆破时产生的火花效果,基本逻辑还是和之前的粒子系统一样,只是这次的渲染目标是一个低顶点数的棱角球,同时记得给这个棱角球设置类似火花的发光着色器。然后再给爆破源,也就是第一个棱角球新建一个粒子系统,以火花为目标,参照火焰纹理的设置来调整各项参数,以实现如图6的效果,这一步就留给大家自由发挥吧。
Blender有很多真实物理模拟系统,比如流体系统可以模拟水流、火焰和烟雾,刚体系统可以模拟各类碰撞,织物系统则实现了衣物、纺织品、布料视觉效果,但这些效果最大的弊端就是对电脑硬件性能要求很高,而且是想要效果越真实,算力和消耗的时间就越长,有时候10秒的动画就需要动辄两三天才能渲染完成。因此,像本次教程这样利用着色器来实现的效果,就成了Blender动画设计的必备技能,不仅可以大幅减小系统开销,增加工作效率,还能让你对3D设计有更深层次的理解,可谓益处多多。