学了一段时间unity(2018.1),自己做了几个小demo后,考虑着学一下shader,没有任何CG/HLSL的基础,所以真可谓是UnityShader学习从入门到放弃。。。。
于是本着踩到一个坑记录一个坑的原则,准备整理点东西。
刚开始学shader的头几个知识点中我们肯定会学到一个简单的顶点片元着色器的写法:
Shader "Custom/1" {
SubShader {
pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
struct a2v{
float4 vertex:POSITION;
float3 normal:NORMAL;
};
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+fixed3(0.5,0.5,0.5);
return o;
}
fixed4 frag(v2f i):SV_Target{
return fixed4(i.color,1.0);
}
ENDCG
}
}
}