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

举报
CoderZ1010 发表于 2022/09/25 06:12:26 2022/09/25
1.3k+ 0 0
【摘要】 当相机与物体的距离越来越近,达到指定值时,我们让物体逐渐淡出,当相机与物体拉开距离后,再让其淡入,来处理当相机靠近物体时的穿模情况,效果图: 创建一个新的PBR Graph,命名为Fade,在Blackboard黑板中创建以下属性:         ...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

作者其他文章

评论(0

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

    全部回复

    上滑加载中

    设置昵称

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

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

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