Unity Shader Graph 故障艺术

Unity Shader Graph 故障艺术故障效果越来越多的被应用于游戏开发 将事物发生故障的现象进行加工 形成了一种新的风格 本文实现了一个手电筒的故障效果 效果图如下 模型用的是 AssetStore 资源商店里的免费资源 SciFiHandLig 创建一个新的 PBRGraph 创建以下属性 1 MainTexture Texture2D 主贴图 2 NormalTextur Texture2D 法线贴图 3 EmissionText Texture2D 发光贴图

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

Unity Shader Graph 故障艺术

创建一个新的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]

Unity Shader Graph 故障艺术

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

Unity Shader Graph 故障艺术

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

Unity Shader Graph 故障艺术

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

Unity Shader Graph 故障艺术

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

Unity Shader Graph 故障艺术

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

Unity Shader Graph 故障艺术

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/213907.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月18日 下午5:23
下一篇 2026年3月18日 下午5:23


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号