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

效果图:

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第1张图片

 环境渐变效果主要是对贴图(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)

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第2张图片

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

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第3张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第4张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第5张图片

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

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第6张图片

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

Divide 除法节点

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

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

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

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

 

Clamp

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

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

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第7张图片

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

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

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第8张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第9张图片

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

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第10张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第11张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第12张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第13张图片

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

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第14张图片

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

 

最后,把法线贴图加上

Unity ASE案例解析—Environment Gradient(环境渐变效果)_第15张图片

得出最终效果。

 

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

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(Shader)