Shader “Unity Shaders Book/Chapter 5/5-1” { Properties{ //主要用于声明一些属性,可以没有 _Color(“Color Tint”,Color)=(1.0,1.0,1.0,1.0) //声明了一个可以编辑的颜色属性 } SubShader { Pass { CGPROGRAM #pragma vertex vert #pragma fragment frag fixed4 _Color; struct a2v{ //声明一个结构体,应用阶段传递到顶点阶段 float4 vertex:POSITION; float3 normal:NORMAL; float4 texcoord:TEXCOORD0; }; struct v2f{ //声明一个结构体,顶点阶段传递到片元着色器阶段 float4 pos:SV_POSITION; fixed3 color:COLOR0; }; v2f vert(a2v v)//:SV_POSITION 这里会报错,由于版本的原因直接删除就好 { v2f o; o.pos = UnityObjectToClipPos (v.vertex); o.color = v.normal * 0.5 ; return o; //mul (UNITY_MATRIX_MVP,v)新的写法,将顶点坐标从模型空间转换到裁剪空间 } fixed4 frag(v2f i):SV_TARGET0{ fixed3 c=i.color; c = _Color.rgb; //c其实是会等于(v.normal * 0.5) _Color.rgb这个为可以编辑的一个颜色属性 return fixed4(c,1.0); } ENDCG } } }
|