火焰基本算法原理 : 溶解+纹理偏移
利用Opacity Mask值可以遮罩一部分不想显示的纹理,加上噪声后,就会得到自己想要的大概形状,这个过程就是溶解。在溶解的基础上加上纹理偏离,那么就可以得到动态溶解的结果。
想要有动态效果,可以动态改变Noise采样的UV值。另外如果想让噪声的上半部分溶解得更多,下半部分溶解得少一些,那么就要动态改变DissolveAmount,当采样到噪声UV上半部分时,DissolveAmount要裁剪力度大,值就要更大,当采样到噪声UV下半部分时,DissolveAmount要裁剪力度小,值就要更小。这个恰好和噪声采样的UV值是重合的,那么刚好就可以用这个UV的V值来做DissolveAmount。
按照这个思路连接如下图所示:
细化效果
1、添加颜色
2、后处理Bloom
3、软化边缘
4、用渐变图去代替V值去作为DissolveAmount,增强可控性。
进一步细化
1、内外火焰的颜色及范围控制
2、火焰形状Mask
3、增加火焰形状扰动
最后成为一团蜘蛛网。
总结:主要是理解溶解的核心算法。缺点:这个最后效果调节內焰和外焰形状控制得其实并不太好。并且这里面的内外焰颜色会互相影响。下一篇换另一种方法去做卡通火焰。