概述
溶解是很常见的一个效果,在很多场合都会用到,比如人物死亡后溶解,或者裂地特效等等。
溶解的做法也有很多种,比如有clip方法,直接剔除一部分像素值,还有discard方法,直接采样一张噪声图,然后直接一个阈值和噪声图的采样值进行比较,如果小于某个阈值,就直接discard。
ASE官方的做法
整体原节点图如下:
思路:
-
1、消隐遮罩
(1)面板上输入0到1的值(DissolveAmount控制值),1减取反,然后重映射为-0.6到0.6值范围。
(2)采样噪声灰度图,和(-0.6,0.6)相加,输出到透明度接口。
结果:当DissolveAmount发生改变时,噪声图R通道值大于0.5的值将变成0以下的负数透明度,也即不显示。
-2、边缘溶解过渡作为自发光叠加色
(1)刚才采样到的噪声灰度图值(0,1),和(-0.6,0.6)相加后的值变成是(-0.6,1.6)。
(2)再将此结果重映射放大4倍,那么将得到一个张更加黑白分明的噪声灰度图。
(3)将此结果Clamp限定到0到1,再1减取反,用这个值去取样一张渐变图,得到溶解边缘的颜色值。
(4)最后将采样后的结果值和采样前的U坐标输入值(这里相当于透明度)进行相乘,那么采样到白色的地方透明度是0,采样到黑色的地方是1。
渐变图如下:
结果:噪声图灰度值为1的地方会采样全黑,0的地方会采样全白,中间值会采样渐变图的中间值。
如果不想用渐变式,想简单点做法也可以用两个颜色值代替,用Lerp函数去取这两个颜色值。比如用下面这样连: