Shader-基本結構與屬性定義

Shader "LXC/ 01 myshader"//這裏指定的shader名字,不要求和文件名一致,/前的爲路徑
{
	//屬性
	Properties
	{
		//屬性的定義 屬性名("Inspector顯示名",類型)=(默認值);
		_Color ("Color",Color)=(1,1,1,1)		//(R,G,B,A)					float4
		_Vector("Vector4",Vector)=(1,2,3,4)									//float4
		_Int("Int",Int)=3231												//float
		_Float("Float",Float)=4.5											//float
		_Range("Range",Range(1,11))=5										//float
		_2D("Texture2D",2D)=""{}		//""可以隨意指定顏色也可以不指定	sampler2D
		_Cube("Cube",Cube)=""{}			//立方體紋理,天空盒				samplerCube
		_3D("Texture3D",3D)=""{}											//sampler3D
	}

		//SubShader可以有很多個 顯卡運行效果的時候,選擇一個可以運行的
		SubShader
	{
		//可以有很多Pass塊
		Pass
		{
		//在這裏寫Shader代碼
		CGPROGRAM
		//使用CG語言編寫Shader代碼
		//屬性使用的時候需要重新定義不用賦值
		//float4 _Color;		//使用float的地方可以用half和fixed代替,float使用32位來存儲,half 16位-6W~+6W,fixed 11位 -2~+2
		fixed4 _Color;			//顏色一般用fixed存儲
		float4 _Vector;
		float _Int;
		float _Float;
		float _Range;
		sampler2D _2D;
		samplerCube _Cube;
		sampler3D _3D;


		ENDCG
		}		
	}

	//顯卡不支持SubShader的最後方案
	Fallback "VertexLit"	//VertexLit爲系統方案

}

 

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