最重要的命令 :settexture 设置纹理
combine命令 :合并当前纹理,只有当前纹理会生效,之前计算的顶点数据等就不会有效果了,所以需要乘上primary(之前计算得到的数据)。又因为这个两个值都是浮点数,相乘得到的结果会比之前都要小,所以需要使用Unity的double(双倍)或者quad(四倍)操作。
一个settexture只可以带一个参数,如果想要合并两个以上纹理,则需要新的settexture
primary :之前顶点的计算的结果
previous :之前所有的计算的结果(包括顶点和贴图),当要合并两张(或多张)纹理的时候,第二张纹理使用primary,只会计算之前的顶点结果,第一张纹理就失效了
Properties
{
_MainTex("MainTex" , 2d) = "white" {}
_SecondTex("Second" , 2d) = ""{}
}
SubShader
{
Pass
{
material
{
diffuse[_Color]
ambient[_Ambient]
specular[_Specular]
shininess[_Shininess]
emission[_Emission]
}
lighting on
separatespecular on
settexture[_MainTex] { --> 固定命令 :设置纹理
combine texture * primary double }
settexture[_SecondTex] {
combine texture * previous double }
}
}