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为系统方案

}

猜你喜欢

转载自blog.csdn.net/qq_42459006/article/details/83999398