论文部分内容阅读
说到爆破效果,Blender本身自带的流体物理模拟系统有着非常不错的表现,但问题在于流体物理模拟对电脑硬件的要求非常高,而且对效果真实度要求越高,烘焙的时间就越长,渲染的时间就更是要再翻好几番,而且无论做多小的修改都要重新烘焙,使用起来并不算特别友好。所以,我们其实更希望能使用其他硬件开销更小的方法达到一定程度的替代,而利用着色器制作爆破的光影变化,再结合粒子系统来模拟分布,就能实现这一目的。考虑到可能需要较为细致的设计,所以这次的教程我们将分为数期来完成,今天先讲第一部分:着色器。
为了让爆破效果更具视觉观感,搭建一个可以呈现其照明效果的环境很重要,所以我们的第一步就是搭建环境,当然,环境可以很简单,如图1所示,新建一个平面,再把一条边沿Z轴向上挤出一段,接下来给转折的边做多级的倒角,一个简单的背景墙就完成了。接下来只需要给它赋予一个材质,可以是UV网格的图片,也可以是纯色的原理化BSDF。最后再把摄像机机位调整成正面面对背景墙,这一步就算完成了。
接下来我们就可以开始制作爆破效果了,首先新建一个平面,让它面对摄像机,因为接下来我们制作的着色器效果部分全都会基于它来展开。
紧接着给平面赋予一个新的材质,因为我们将使用Eevee渲染器来实现这一效果,而且要结合透明度,但这时候你如果直接调整Alpha信息时不难发现,把Alpha调到0,平面就变成了黑色,并不是我们想要的透明,这就是Eevee渲染器的特点,我们需要进入材质选项的设置菜单,把混合模式设置为“Alpha混合”,就能实现如图2的效果了。
然后就要开始对着色器进行设置了,为平面添加渐变纹理,选择二次型球面,以纹理坐标的UV连接映射,再在渐变纹理后加入映射范围和颜色渐变,这时候连接到原理化BSDF的Alpha,就能看到如图3的效果了。
但這时候的图像太平滑,没有爆破时火焰燃烧的视觉质感,所以我们要继续细化着色器,接下来的操作会相对比较繁琐,请大家的思维尽量跟上,这一步完成后的着色器如图4所示,大家可以对照着来理解。
先使用噪波纹理与之前的渐变纹理相乘,系数为1,噪波纹理设置为4D,并给W值加伤害“#frame*0.01”的驱动器,爆炸就会呈现出动态的效果。这时候记得要用纹理坐标的“物体”来连接噪波纹理,这是因为我们后面还需要复制平面,需要额外用空物体来实现纹理的补偿,让复制的平面呈现的效果存在视觉差异。
然后将位于流水线最后的颜色渐变,设置为如同火焰喷发一样的效果,这个步骤可以一边预览一边调整,火焰的大小取决于前一级的映射范围的“到最大”,可以通过设置驱动器来实现爆破的动画效果。最后把它连接到原理化BSDF的“发光”,并把发光强度设置为10或更高,记得也要把原理化BSDF的颜色调整为纯黑色,然后把渲染属性里的“辉光”选项打开。
接着再新建一个映射范围,用于连接Alpha,这里可以调整“从最大”值,可以通过透明度的变化,来模拟爆炸边缘的黑色烟雾效果。
然后我们复制两个刚刚做好的平面,这时候你会发现所有爆破效果都是完全相同的,这显然不符合现实观感,所以我们需要再新建一个空物体,然后把噪波纹理的纹理坐标物体设置为空物体。这样一来,如图5所示,虽然三个平面都使用了同一个着色器,但因为有空物体进行补偿,所以每个呈现出的视觉效果都有细微差别,无论移动平面还是空物体,都能看到爆破效果的变化。
利用渐变纹理和噪波纹理来制作火焰效果算是大多数情况下的常规思路,但调整方式的差异就会影响最终的表现,比如大量使用映射范围来控制爆破的呈现效果,通过空物体补偿来实现爆破纹理的细微差别,这些都能在减少计算量的情况下,实现更真实的效果。在下一章节中我们将会结合粒子系统来实现爆破烟雾,欢迎大家持续关注!
第一步:搭建爆破效果环境
为了让爆破效果更具视觉观感,搭建一个可以呈现其照明效果的环境很重要,所以我们的第一步就是搭建环境,当然,环境可以很简单,如图1所示,新建一个平面,再把一条边沿Z轴向上挤出一段,接下来给转折的边做多级的倒角,一个简单的背景墙就完成了。接下来只需要给它赋予一个材质,可以是UV网格的图片,也可以是纯色的原理化BSDF。最后再把摄像机机位调整成正面面对背景墙,这一步就算完成了。
第二步:新建平面,制作着色器效果
接下来我们就可以开始制作爆破效果了,首先新建一个平面,让它面对摄像机,因为接下来我们制作的着色器效果部分全都会基于它来展开。
紧接着给平面赋予一个新的材质,因为我们将使用Eevee渲染器来实现这一效果,而且要结合透明度,但这时候你如果直接调整Alpha信息时不难发现,把Alpha调到0,平面就变成了黑色,并不是我们想要的透明,这就是Eevee渲染器的特点,我们需要进入材质选项的设置菜单,把混合模式设置为“Alpha混合”,就能实现如图2的效果了。
然后就要开始对着色器进行设置了,为平面添加渐变纹理,选择二次型球面,以纹理坐标的UV连接映射,再在渐变纹理后加入映射范围和颜色渐变,这时候连接到原理化BSDF的Alpha,就能看到如图3的效果了。
但這时候的图像太平滑,没有爆破时火焰燃烧的视觉质感,所以我们要继续细化着色器,接下来的操作会相对比较繁琐,请大家的思维尽量跟上,这一步完成后的着色器如图4所示,大家可以对照着来理解。
先使用噪波纹理与之前的渐变纹理相乘,系数为1,噪波纹理设置为4D,并给W值加伤害“#frame*0.01”的驱动器,爆炸就会呈现出动态的效果。这时候记得要用纹理坐标的“物体”来连接噪波纹理,这是因为我们后面还需要复制平面,需要额外用空物体来实现纹理的补偿,让复制的平面呈现的效果存在视觉差异。
然后将位于流水线最后的颜色渐变,设置为如同火焰喷发一样的效果,这个步骤可以一边预览一边调整,火焰的大小取决于前一级的映射范围的“到最大”,可以通过设置驱动器来实现爆破的动画效果。最后把它连接到原理化BSDF的“发光”,并把发光强度设置为10或更高,记得也要把原理化BSDF的颜色调整为纯黑色,然后把渲染属性里的“辉光”选项打开。
接着再新建一个映射范围,用于连接Alpha,这里可以调整“从最大”值,可以通过透明度的变化,来模拟爆炸边缘的黑色烟雾效果。
然后我们复制两个刚刚做好的平面,这时候你会发现所有爆破效果都是完全相同的,这显然不符合现实观感,所以我们需要再新建一个空物体,然后把噪波纹理的纹理坐标物体设置为空物体。这样一来,如图5所示,虽然三个平面都使用了同一个着色器,但因为有空物体进行补偿,所以每个呈现出的视觉效果都有细微差别,无论移动平面还是空物体,都能看到爆破效果的变化。
本章小结
玩着色器其实就是玩细节
利用渐变纹理和噪波纹理来制作火焰效果算是大多数情况下的常规思路,但调整方式的差异就会影响最终的表现,比如大量使用映射范围来控制爆破的呈现效果,通过空物体补偿来实现爆破纹理的细微差别,这些都能在减少计算量的情况下,实现更真实的效果。在下一章节中我们将会结合粒子系统来实现爆破烟雾,欢迎大家持续关注!