Unity ASE案例解析—Environment Gradient(环境渐变效果)

效果图:

 环境渐变效果主要是对贴图(Albedo)进行处理,改变它的纹理和色值。

 

目录

 

1、 获取世界坐标Y轴矢量遮罩(Mask)

2、利用 1、中的Y轴遮罩做物体 顶部 颜色渐变的插值计算

3、利用 1、中的Y轴遮罩做物体 底部 颜色渐变的插值计算

4、创建世界场景下渐变效果

5、根据世界梯度来做底部和顶部颜色的插值

6、自定义贴图(红色通道上的环境光遮挡,绿色通道上的边缘式曲率贴图)

7、利用制定好的渐变色和自定义贴图相乘

8、创建影响边缘高光(custom map g通道)的属性

9、做边框高亮(8、)与相乘后自定义贴图(7、)相加

10、把相加后的自定义贴图和边缘高亮做范围限制然后赋值给Albedo

最后,把法线贴图加上


 

1、 获取世界坐标Y轴矢量遮罩(Mask)

主要用于做线性插值计算。

2、利用 1、中的Y轴遮罩做物体 顶部 颜色渐变的插值计算

可以得到物体顶部颜色变化。

3、利用 1、中的Y轴遮罩做物体 底部 颜色渐变的插值计算

根据上述(1、)法线y向量使2种渐变底色变色。

4、创建世界场景下渐变效果

利用GradientHeight常量控制物体的整体渐变效果。 

Divide 除法节点

Divide 节点(快捷键:D键)进行算术除法,其中A除以BA / B。除以零将导致无穷大,这通常会转化为非预期结果。

多通道数据类型之间的划分是按通道完成的。如果A和B的频道数量不同,则进行强制转换以匹配具有最多频道数量的频道。

注意:除法不是可交换的,因此值的顺序重要。

http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Divide

 

Clamp

Clamp节点输出其输入值或[ MinMax ]范围之间Clamp的矢量的各个分量。

  • 最小值:如果输入值小于最小值,则返回此值
  • 输入:如果输入值介于最小和最大之间,则返回此值
  • 最大值:如果输入值大于最大值,则返回此值

注意:如果每个输入端口的通道数量不同,则进行强制转换以匹配通道数量最多的端口。

Input PortDescriptionType
Input要限制在[最小,最大]范围之间的值。当Alpha = 0时完全输出。Float [1]
Minclamp 操作的最小值(如果该值小于Min的最小值,则为返回值)。Float [1]
Maxclamp 操作的最大值(如果该值大于Max的最大值,则为返回值)。Float [1]

http://wiki.amplify.pt/index.php?title=Unity_Products:Amplify_Shader_Editor/Clamp

5、根据世界梯度来做底部和顶部颜色的插值

6、自定义贴图(红色通道上的环境光遮挡,绿色通道上的边缘式曲率贴图)

7、利用制定好的渐变色和自定义贴图相乘

先给自定义贴图(6、)R通道做指数(Exp)控制。

然后合并Power(自定义贴图R通道 6、)和lerp(底部和顶部颜色的插值 5、)

8、创建影响边缘高光(custom map g通道)的属性

9、做边框高亮(8、)与相乘后自定义贴图(7、)相加

10、把相加后的自定义贴图和边缘高亮做范围限制然后赋值给Albedo

最后Clamp,如果要为HDR产生大于1的值,则可以禁用它或增加最大值。

 

最后,把法线贴图加上

得出最终效果。

 

https://img-blog.csdnimg.cn/20200109105210173.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQwMTIwOTQ2,size_16,color_FFFFFF,t_70

 

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值