通道通常是8位的灰度圖像,能夠顯示1-256種灰度,用來表示顏色的RGBA值。R紅色,G綠色,B藍色,A透明值, 其中RGB爲原色通道,A爲透明通道。
在通道中,以白色代替透明表示要處理的部分,以黑色表示不需處理的部分。所有通道取值範圍是 [0,255], 但是在Shader裏取值範圍是[0,1], 0和1分辨對應0和255
Alpha 檢測用於在 fragment 函數完成最終的計算之後,在即將寫入到幀中之前,通過和一個固定的數值比較,來決定當前fragment函數的計算結果到底要不要寫入到幀中,從而輸出到屏幕上。
Alpha檢測的具體比較數值可以在運行時確定,而AlphaTest的比較條件有
Greater 點的Alpha值大於 X時渲染,
GEuqal 點的Alpha值大於等於 X時渲染,
Equal 點的Alpha值等於 X時渲染,
NotEqual 點的Alpha值不等於X時渲染,
Less 點的Alpha值小於 X時渲染,
LEqual 點的Alpha值小於等於 X時渲染,
Always 全渲染,
Never 全不渲染
這8中情況。。。。。。。。
具體的Shader如下:
Shader "Custom/PassFour" {
Properties {
//定義一個貼圖
_MainTex ("Base (RGB)", 2D) = "white" {}
}
SubShader
{
Tags {"RenderType" = "Opaque" "IGNOREPROJECTOR" = "TRUE" "QUEUE" = "Transparent"}
LOD 200
Pass
{
//AlphaTest Greater 0.6
//AlphaTest Less 0.5
AlphaTest Always 1
AlphaTest Never 1
// 通過綁定固定通道來使用定點色
BindChannels
{
Bind "Vertex", vertex // 綁定定點
Bind "Normal", normal
Bind "Color", color
Bind "Texcoord", texcoord0
Bind "Texcoord", texcoord1
}
//給材質設置 貼圖
SetTexture [_MainTex]
{
Combine texture * primary double
}
}
}
FallBack "Diffuse"
}