Unity Shader Graph 制作Dissolve溶解效果

举报
CoderZ1010 发表于 2022/09/25 04:33:07 2022/09/25
【摘要】 遵循国际惯例先看效果: 模型使用了Asset Store资源商店里下载的模型Robot Kyle,创建一个新的PBR Graph,命名为dissolve,双击进入shader graph编辑器,修改Main Preview预览窗口,使用Custom Mesh预览,选择Robot模型:  首先创建MainTextur...

遵循国际惯例先看效果:

模型使用了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节点:

最终效果: 

文章来源: coderz.blog.csdn.net,作者:CoderZ1010,版权归原作者所有,如需转载,请联系作者。

原文链接:coderz.blog.csdn.net/article/details/121699284

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。