Shader "Simple Shader" { Properties { _Color ("Color Tint", Color) = (1, 1, 1, 1) } SubShader { Pass { CGPROGRAM #include "UnityCG.cginc" #pragma vertex vert #pragma fragment frag uniform fixed4 _Color; struct a2v { //POSITION语义告诉Unity:用模型空间的顶点坐标填充到vertex变量 float4 vertex : POSITION; //NORMAL语义告诉Unity:用模型空间的法线方向填充normal方向 float3 normal : NORMAL; //TEXCOORD0语义告诉Unity:用模型的第一套纹理坐标填充textcoord变量 float4 texcoord : TEXCOORD0; }; struct v2f { //SV_POSITION语义告诉Unity:pos里包含了顶点在裁剪空间中的位置信息 float4 pos : SV_POSITION; fixed3 color : COLOR0; }; v2f vert(a2v v) { v2f o; o.pos = UnityObjectToClipPos(v.vertex); o.color = v.normal * 0.5 + fixed3(0.5, 0.5, 0.5); return o; } fixed4 frag(v2f i) : SV_Target { fixed3 c = i.color; c *= _Color.rgb; return fixed4(c, 1.0); } ENDCG } } }
原文:https://www.cnblogs.com/michaelcecil/p/13906504.html