1.我們已經(jīng)清楚了unity shader的基本結(jié)構(gòu)应狱,它包含了shader共郭,properties,subshader疾呻,fallback這樣的語(yǔ)義塊除嘹。看下面的結(jié)構(gòu)岸蜗。
#pragma vertex vert
#pragma fragment frag
這兩行編譯指令告訴unity哪個(gè)函數(shù)包含了頂點(diǎn)著色器代碼尉咕,哪個(gè)函數(shù)包含了片元著色器代碼。
float4 vert(float4 v:POSITION):SV_POSITION{
return mul(UNITY_MATRIX_MVP,v);
}
POSITION和SV_POSITION都是CG中的語(yǔ)義璃岳,這些語(yǔ)義告訴用戶需要輸入或者輸出是什么年缎,例如在上面所示POSITION代表把模型空間的頂點(diǎn)坐標(biāo)填充到輸入?yún)?shù)v中悔捶,SV_POSITION 表明了頂點(diǎn)著色器的輸出是裁剪空間中的頂點(diǎn)坐標(biāo)。在這個(gè)函數(shù)中的操作就是把頂點(diǎn)坐標(biāo)從模型空間轉(zhuǎn)換到裁剪空間单芜。
UNITY_MATRIX_MVP
UNITY_MATRIX_MVP矩陣是unity內(nèi)置的模型觀察投影矩陣蜕该。
fixed4 frag():SV_Target{
return fixed4(1,1,1,1)
}
SV_Targrt是HLSL中的一個(gè)語(yǔ)義,代表把用戶的輸出顏色存儲(chǔ)到一個(gè)渲染目標(biāo)中洲鸠。
點(diǎn)擊藍(lán)色字體關(guān)注---》歡迎關(guān)注我的微博堂淡,閑暇之余給大家?guī)?lái)歡樂(lè)