先给出原作链接支持原作!!!
之前有朋友在我的转载教程贴[unity3d特效] 用第二套UV实现固定方向的消融(转载)提到过用世界坐标Y轴可以实现类似的效果还不用分UV,也许有的朋友有兴趣想知道怎么做,这里就给出一个ShaderFoger的方法。
其实这个方法与二套UV法各有利弊,UV法可以一个shader通过不同UV实现各个方向的消融,甚至是分批次消融,转动模型也没有关系。
而用坐标法,基本上一个shader只能实现一个方向的消融,而且只有上下,左右,前后,否则shader会很庞大和难办,另外就是转动了模型效果可能就不是你想要的了,其次就是理解起来相对比较有难度。
这里先看下效果,对了,这个shader中给大家展示另外一种混合效果,看起来会更炫酷一些,大家可以可以用在其它shader里。
转载图片
依然是两个部分,一个是遮罩,一个是表现。
转载图片
ObjectPos这个节点返回的是模型的中心点的位置,而WorldPos返回的是所有面的空间位置,我们用模型的高度加上本身的位置减去模型面的空间位置,就可以得到一个随着模型位置改变的区间值可以拿来做遮罩。Hight这个值也可以是厚度或者宽度,配合Pos的XYZ三个轴向来实现上下,左右,前后的消融效果。
转载图片
这里在混合表现上把贴图本身的颜色乘了一个颜色的反色值再进行混合,反色主要是配合下面Value使用的是相反值,让大家所见即所得。这种反向计算会表现出一种很强的叠加高亮感。
同样给出shader源文件,需要5.4以上Unity版本。(转载文章,支持原作,请到原作链接下载)
网友评论