前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity Shader Graph制作溶解效果

Unity Shader Graph制作溶解效果

作者头像
CoderZ
发布2022-08-29 16:08:32
7210
发布2022-08-29 16:08:32
举报

遵循国际惯例先看效果:

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

最终效果:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-12-05,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 当代野生程序猿 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档