Unity Shader Graph 制作 Fade 淡入淡出效果

简介: Unity Shader Graph 制作 Fade 淡入淡出效果

当相机与物体的距离越来越近,达到指定值时,我们让物体逐渐淡出,当相机与物体拉开距离后,再让其淡入,来处理当相机靠近物体时的穿模情况,效果图:

image.gif

创建一个新的PBR Graph,命名为Fade,在Blackboard黑板中创建以下属性:

       Main Texture(Texture2D 类型):用于主贴图

       Min Distance(Vector1 类型):用于设定淡入淡出的最小距离

       Max Distance (Vector2 类型) :用于设定淡入淡出的最大距离

image.gif

新建Sample Texture 2D节点用于Main Texture,输出至PBR Master中Albedo节点:

image.gif

新建一个Dither节点,关于该节点的官方文档介绍如下:

image.gif

其大致含义指Dither是一种特定格式的噪波,用于随机量化误差,用于防止大幅拉伸图片时出现的异常情况,在屏幕空间抖动来确保图案的均匀分布。此节点通常作为主节点上Alpha Clip Threshold的输入,为不透明对象提供透明的外观,而且仍然可以写入深度缓冲区。

我们这里用Dither节点来实现淡入淡出(透明),将其输出至PBR Master中的Alpha节点:

image.gif

创建Object节点获取物体位置信息,创建Camera节点获取相机位置信息,通过Distance节点求得二者之间的距离:

image.gif

创建Remap节点,将Distance的输出值,即相机与物体的距离,通过Min Distance、Max Distance即我们设定的最小、最大淡入淡出的距离,映射到[0,1]的取值范围,以便控制Alpha Clip Threshold:

image.gif

image.gif

至此,通过上图发现,当相机与物体距离越近时越是淡入,与我们想要的效果是相反的,因此通过创建一个One Minus节点来调整:

image.gif

image.gif

目录
相关文章
|
图形学 Android开发 iOS开发
|
8天前
|
图形学 异构计算
【Unity Shader 中Pass相关介绍_第四篇】
【Unity Shader 中Pass相关介绍_第四篇】
|
8天前
|
图形学 C++
【Unity Shader入坑篇---有ASE创建Unity Shader,那么Unity Shader代码的相关知识还有必要学或了解吗?】
【Unity Shader入坑篇---有ASE创建Unity Shader,那么Unity Shader代码的相关知识还有必要学或了解吗?】
|
8天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第八篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第八篇】
|
8天前
|
图形学
【#Unity Shader#Amplify Shader Editor(ASE)_第三篇】
【#Unity Shader#Amplify Shader Editor(ASE)_第三篇】
|
9天前
|
存储 图形学
【Unity Shader 中Pass相关介绍_第一篇】
【Unity Shader 中Pass相关介绍_第一篇】
|
9天前
|
图形学
【Unity Shader 中SubShader相关介绍】
【Unity Shader 中SubShader相关介绍】
|
7月前
|
存储 图形学
浅谈Unity之模型裁剪shader
Unity之模型裁剪shader
|
8月前
|
存储 编译器 图形学
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
使用Unity在材质球上实现绘画:详细解释每一行Shader代码!
104 0
|
算法 Java 程序员
Unity Shader 概述
Unity Shader 概述
160 0
Unity Shader 概述