Fixed Function Shader透明度

Fixed Function Shader透明度

Shader "Custom/Shader1"
{
    
    
	properties{
    
    
		_Color("color",Color) = (1,1,1,1)
		_Ambient("Ambient",color)=(0.3,0.3,0.3,0.3)
		_Specular("Specular",color)=(1,1,1,1)
		_Shininess("Shininess",range(0,8))=4
		_Emission("Emission",color)=(1,1,1,1)
		_MainTex("MainTex",2d) = "white"{
    
    }
		_SecondTex("SecondTex",2d) = ""{
    
    }
		_Constant("Constant Color",color)=(1,1,1,0.3)
	}
    
    SubShader
    {
    
    
	//渲染队列
		Tags {
    
    "Queue" = "Transparent"}

		pass {
    
    
		//使用“当前Alpha值”和“1-当前Alpha值”去混合,得到效果 透明效果
			Blend SrcAlpha OneMinusSrcAlpha

			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”那么alpha值只能使用texture作为计算,原来做的处理全部失效
			//constantColor可用作alpha值的单独控制
				constantColor[_Constant]
				combine texture * previous double,texture*constant
			}
		}
    }
    
}

猜你喜欢

转载自blog.csdn.net/Bug1997/article/details/112214724