您当前的位置: 首页 >  unity

CoderZ1010

暂无认证

  • 6浏览

    0关注

    168博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Unity Shader Graph 制作Dissolve溶解效果

CoderZ1010 发布时间:2021-12-03 16:42:28 ,浏览量:6

遵循国际惯例先看效果:

模型使用了Asset Store资源商店里下载的模型Robot Kyle,创建一个新的PBR Graph,命名为dissolve,双击进入shader graph编辑器,修改Main Preview预览窗口,使用Custom Mesh预览,选择Robot模型: 

首先创建MainTexture属性,以便在Inspector面板添加贴图:

创建SampleTexture2D节点,将其Texture设为MainTexture属性,并将其输出连接至PBR中的Albedo节点:

添加Simple Noise噪声节点,并为Scale创建一个Noise Scale属性以便在Inspector面板进行调整,我们先将其设为60左右,将Simple Noise输出连接至PBR中的Alpha节点:

现在我们创建一个时间节点,使用其Sine Time实现溶解阈值从0至1、从1只0的循环效果,因为Sin函数取值范围为[-1, 1],因此我们再创建一个Remap节点将其取值范围映射到[0, 1]之间,最终将Remap输出节点连接至PBR中的AlphaClipThreshold节点,可以看到简单的溶解效果已经实现:

如果想要用C#脚本代码控制溶解过程,可以使用一个Vector1类型属性代替时间节点,在代码中调整该属性值以控制溶解过程。

为了实现溶解边缘发光效果,我们再创建一个Step节点,现在Simple Noise同时输出到Alpha和Step的Edge节点上,创建一个Vector1类型属性Edge Width用来调整溶解边缘的宽度,将其值用Add节点与时间正弦值相加输出到Step中的In节点:

最后,创建一个Color属性Edge Color以便调整溶解边缘发光的颜色,使用Multiply节点将Color值与Step输出值相乘,并输出到PBR中的Emission节点:

最终效果: 

关注
打赏
1653184800
查看更多评论
立即登录/注册

微信扫码登录

0.0599s