我们希望模型表面某些区域的反光强烈一些,而某些区域弱一些。为了得到更加细腻的效果,我们就可以使用一张遮罩纹理来控制光照。 可以让美术人员更加精准(像素级别)地控制模型表面的各种性质。
流程: 通过采样得到遮罩纹理的纹素值,然后使用其中某个(或某几个)通道的值(例如texel.r)来与某种表面属性进行相乘,这样,当该通道的值为0 时,可以保护表面不受该属性的影响。
Shader "MaskTexture"
{
Properties
{
_Color("Color Tint",Color) = (1,1,1,1)
_MainTex("Main Tex",2D) = "white"{}
_BumpMap("Bump Tex",2D) = "bump"{}
_BumpScale("Bump Scale",float) = 1.0
_SpecularMask("Specular Mask",2D)= "white"{}
_SpecularScale("Specular Scale",float)=1.0
}
SubShader
{
Pass{
Tags{"LightMode" = "ForwardBase"}