透明处理 :
1、使用Blending命令,需要加上标签 :tags = { "Queue" = "Transparent" }
2、使用贴图的a通道 :如果想要使用贴图的透明通道来实现透明化,有两种方式
Properties
{
_MainTex("MainTex" , 2d) = "white" {}
_SecondTex("Second" , 2d) = ""{}
_ConstantColor("ConstantColor" , color) = (1,1,1,1)
}
SubShader
{
tags = { "Queue" = "Transparent" }
Pass
{
Blend SrcAlpha OneMinusSrcAlpha // Alpha Blending 透明化处理
material
{
diffuse[_Color]
ambient[_Ambient]
specular[_Specular]
shininess[_Shininess]
emission[_Emission]
}
lighting on
separatespecular on
settexture[_MainTex] { --> 固定命令 :设置纹理
combine texture * primary double }
settexture[_SecondTex] {
//1、第二个texture代表只取了当前纹理的Alpha通道,如果在combine命令的第二位置填写了Alpha值,就只能针对这个位置取Alpha运算,之前的顶点部分的Alpha运算都会失效。 如果用这种方式,想要看到透明效果,需要将这张贴图的Alpha from Grayscal (灰度系数)启用
combine texture * previous double , texture }
//2、使用constantColor命令
constantColor[_ConstantColor]
combine texture * previous double , texture * constant // 命令是constantColor,透明度乘的是constant。达到通过改变_ConstantColor来改变透明度的效果
}
}