一個簡單的頂點/片元着色器

一個簡單的頂點/片元着色器


參考資料: 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"
}

簡單着色器的效果

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章