Unity-ShaderLab:舊版 BindChannels
BindChannels?命令用于指定頂點數(shù)據(jù)映射到圖形硬件的方式。
注意:使用頂點程序時,BindChannels 不起作用,因為在種情況下,綁定是由頂點著色器輸入來控制的。建議現(xiàn)在使用可編程著色器,而不是固定函數(shù)頂點處理。
默認情況下,Unity 會為您計算綁定,但在某些情況下,您可能希望使用自定義綁定。
例如,您可能會映射要在第一個紋理階段中使用的主 UV 集,并映射要在第二個紋理階段中使用的輔助 UV 集;或者告知硬件應(yīng)將頂點顏色考慮在內(nèi)。
語法
指定頂點數(shù)據(jù)?source?映射到硬件?target。
Source?可以是下列值之一:
__Vertex__:頂點位置
__Normal__:頂點法線
__Tangent__:頂點切線
__Texcoord__:主 UV 坐標
__Texcoord1__:輔助 UV 坐標
__Color__:每頂點顏色
Target?可以是下列值之一:
__Vertex__:頂點位置
__Normal__:頂點法線
__Tangent__:頂點切線
Texcoord0、Texcoord1?等等:相應(yīng)紋理階段的紋理坐標
__Texcoord__:所有紋理階段的紋理坐標
__Color__:頂點顏色
詳細信息
Unity 對于哪些源 (source) 可以映射到哪些目標 (target) 設(shè)置了一些限制。Vertex、Normal、Tangent?和?Color?的源和目標必須匹配。網(wǎng)格中的紋理坐標(__Texcoord__ 和?Texcoord1__)可以映射到紋理坐標目標(對于所有紋理階段來說,是?Texcoord__;對于某個特定階段來說,是 __TexcoordN__)。
BindChannels 有兩個典型用例:
將頂點顏色考慮在內(nèi)的著色器。
使用兩個 UV 集的著色器。
示例