一個簡單的頂點/片元着色器
參考資料: Unity Shader 入門精要 馮樂樂著 第5章開始Unity Shder 學習之旅 P101
頂點/片元着色器的結構
在Unity 中,Unity Shader 大致包含以下Shader 、SubShader 、Properties 、Pass 等語義塊。
Shader "Custom/test_shader_light"
{
Properties
{
//1、聲明瞭一個屬性
_Color ("Color Tint",Color) =(1.0,1.0,1.0,1.0)
}
SubShader
{
Pass{
CGPROGRAM
//2、編譯指令,它們將告訴Unity ,哪個函數包含了頂點着色器的代碼,哪個函數包含了片元着色器的代碼
#pragma vertex vert
#pragma fragment frag
//1、在Unity 中,必須要有變量名與Properties 中定義的的屬性名保持一致
fixed4 _Color;
//頂點着色器的代碼,它將模型空間的點轉換到裁剪座標系中。
float4 vert(float4 v:POSITION):SV_POSITION{
return UnityObjectToClipPos(v);
}
//片元着色器的代碼,直接使用定義的Color 屬性
fixed4 frag():SV_Target{
return _Color;
}
ENDCG
}
}
FallBack "Diffuse"
}