Shader学习之纹理遮罩
纹理遮罩在很多商业游戏中都可以见到他的身影,简单来讲,遮罩允许我们可以保护某些区域,使他们免于被修改。例如,在之前的实现中,我们都是把高光反射应用到模型表面的坐在地方,即所有像素使用同样大小的高光强度和高光指数。但有时,我们希望模型表面某些区域的反光强一些,而某些区域弱一些。为了得到更加细腻的效果,就可以使用一张遮罩纹理来控制光照。另一种常见的应用是在制作地形材质时需要混合多张图片,例如表现草地的纹理,表现石子的纹理,表现裸露土地的纹理等,使用遮罩纹理可以控制如何混合这些纹理。代码及注释如下:
Shader "Unity Shaders Book/Chapter 7/7.4Test"
{
Properties
{
_Color ("Color Tint", Color) = (1,1,1,1)
_MainTex ("Main Tex)", 2D) = "white" {
} //主纹理
_BumpMap ("Normal Map",2D)= "bump" {
} //法线纹理
_BumpScale("Bump Scale",Float)=1.0
_SpecularMask("Specular Mask",2D)="white"{
} //需要使用的高光反射遮罩纹理
_SpecularScale("Specular Scale",Float)=1.0 //控制遮罩影响度的系数
_Specular("Specular",Color