unity中cg代码的另一种写法


/**
在unity中写cg还是比较方便的.下面是用CGINCLUDE和ENDCG块,将cg代码包含起来,然后再subshader中的指定vertex和fragment的处理方法.
*/
Shader "Level4/test"{
	Properties{
		_MainTex("MainTex",2D) = ""{}
	}
	CGINCLUDE
	//将代码写在CGINCLUDE...ENDCG中
		#include "UnityCG.cginc"
		sampler2D _MainTex;
		
		struct v2f{
			float4 pos : POSITION;
			float2 uv	: TEXCOORD; 
		};
		
		v2f vert(appdata_full v):POSITION{
			v2f o;
			o.pos = mul(UNITY_MATRIX_MVP,v.vertex);
			o.uv = v.texcoord;
			return o;
		}
		
		float4 frag(v2f v):COLOR{
			float4 texColor = tex2D(_MainTex,v.uv);
			return texColor;
		}
	ENDCG
	SubShader{
		Pass{
			CGPROGRAM
			#pragma vertex vert
			#pragma fragment frag
			//这里只 指定 顶点和片段着色程序即可
			ENDCG
		}
	}
}

你可能感兴趣的:(cg,cginclude)