Unity ASE案例解析—Environment Gradient(环境渐变效果)
效果图:
环境渐变效果主要是对贴图(Albedo)进行处理,改变它的纹理和色值。
目录
6、自定义贴图(红色通道上的环境光遮挡,绿色通道上的边缘式曲率贴图)
10、把相加后的自定义贴图和边缘高亮做范围限制然后赋值给Albedo
1、 获取世界坐标Y轴矢量遮罩(Mask)
主要用于做线性插值计算。
2、利用 1、中的Y轴遮罩做物体 顶部 颜色渐变的插值计算
可以得到物体顶部颜色变化。
3、利用 1、中的Y轴遮罩做物体 底部 颜色渐变的插值计算
根据上述(1、)法线y向量使2种渐变底色变色。
4、创建世界场景下渐变效果
利用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的矢量的各个分量。
- 最小值:如果输入值小于最小值,则返回此值
- 输入:如果输入值介于最小和最大之间,则返回此值
- 最大值:如果输入值大于最大值,则返回此值
注意:如果每个输入端口的通道数量不同,则进行强制转换以匹配通道数量最多的端口。
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、根据世界梯度来做底部和顶部颜色的插值
6、自定义贴图(红色通道上的环境光遮挡,绿色通道上的边缘式曲率贴图)
7、利用制定好的渐变色和自定义贴图相乘
先给自定义贴图(6、)R通道做指数(Exp)控制。
然后合并Power(自定义贴图R通道 6、)和lerp(底部和顶部颜色的插值 5、)
8、创建影响边缘高光(custom map g通道)的属性
9、做边框高亮(8、)与相乘后自定义贴图(7、)相加
10、把相加后的自定义贴图和边缘高亮做范围限制然后赋值给Albedo
最后Clamp,如果要为HDR产生大于1的值,则可以禁用它或增加最大值。
最后,把法线贴图加上
得出最终效果。