前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Unity Shader Graph 故障艺术

Unity Shader Graph 故障艺术

作者头像
CoderZ
发布2022-08-29 16:17:17
3920
发布2022-08-29 16:17:17
举报

故障效果越来越多的被应用于游戏开发,将事物发生故障的现象进行加工,形成了一种新的风格。本文实现了一个手电筒的故障效果,效果图如下,模型用的是Asset Store资源商店里的免费资源SciFi HandLight Free:

创建一个新的PBR Graph,创建以下属性:

1. Main Texture(Texture 2D):主贴图

2. Normal Texture (Texture 2D) :法线贴图

3. Emission Texture(Texture2D):发光贴图

4. Metallic Texture(Texture2D):金属度贴图

5. Emission Color (HDR 类型Color):用于控制发光的颜色

6. Malfunction Rate(Vector1):用于控制故障发生的比率,用Slider类型将取值范围限制到[0, 1]

首先需要创建四个Sample Texture 2D节点,用于各个贴图

Main Texture、Normal Texture、Metallic Texture连接的Sample Texture 2D节点直接输出到PBR Master主节点中的Albedo、Normal、Metallic,效果的实现主要通过Emission节点。创建一个Rangdom Range随机值节点,我们通过随机的比率实现灯光的闪烁,Speed的属性用Time节点来输入,最小值取0,最大值取1:

将上面Random Range的输出值与Malfunction Rate故障率进行比较,如果大等于该值则取1,表示不发生故障,否则取0,表示发生故障,灯熄灭,值比较通过Comparison节点实现,判断通过Branch分支节点实现:

将Branch节点输出值与Emission Color属性值相乘,再与Emission Texture连接的Sample Texture 2D的节点输出值相乘输出到PBR Master中的Emission节点,最终实现:

在Inspector面板调整材质的属性,当Malfunction Rate为0时,灯常亮,不会发生故障,为1时灯常灭,完全故障:

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

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

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

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

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