当相机与物体的距离越来越近,达到指定值时,我们让物体逐渐淡出,当相机与物体拉开距离后,再让其淡入,来处理当相机靠近物体时的穿模情况,效果图:
创建一个新的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节点来调整:
效果和上面的比较相似,Photoshop CS图像黑白调整功能的计算公式为:
gray= (max - mid) * ratio_max + (mid - min) * ratio_max_mid + min
公式中:gray为像素灰度值,max、mid和min分别为图像像素R、G、B分量颜色的最大值、中间值和最小值,ratio_max为max所代表的分量颜色(单色)比率,ratio_max_mid则为max与mid两种分量颜色所形成的复色比率。
默认的单色及复色比率为:
Unity3D Shader学习笔记系列,由于是个人理解后写的,因此可能会出现描述错误,理解不到位的地方。另外没有完全从基础的知识开始,对于刚开始学习的同学还需要看更基础的知识进行补充。
一、顶点动画
将顶点的坐标与三角函数进行算术运算,就可以得到一个在原始位置“左右上下”来回的动画效果。还可以通过定义一个_Direction方向向量来进行来回摆动方向。
图2 面版参数
简单的消融效果,Threshold的值是随时间从0-1进行变化。对扰动图采样取r值,通过比较Threshold与R值的大小来进行消融。Noise图可以控制消融的形状,代码如下。
今天给大家分享一个如何点击图片生成物体的脚本,可以把这个脚本稍微封装一下,以后也可以方便使用。 主要试用与点击图片时候响应事件,具体用法还要大家多多摸索