从应用程序传递到顶点函数得语义
POSITION 顶点坐标(模型空间下的)
NORMAL 法线 (模型空间下)
TANGENT 切线(模型空间)
TEXCOORD0 ~ n 纹理坐标
COLOR 顶点颜色
从顶点函数传递给片元函数得语义
SV_POSITION 裁剪空间中得顶点坐标(一般是系统直接使用)
COLOR0 可以传递一组值 4个
COLOR1 可以传递一组值 4个
TEXCOORD0 ~ 7 传递纹理坐标
片元函数传递给系统
SV_Target 颜色值,显示在屏幕上得颜色
// Upgrade NOTE: replaced 'mul(UNITY_MATRIX_MVP,*)' with 'UnityObjectToClipPos(*)'
Shader "My/02 shader"{
SubShader{
Pass{
CGPROGRAM
#pragma vertex vert
#pragma fragment frag
//application to vertex
struct a2v
{
float4 vertex:POSITION;
float3 normal:NORMAL;
float4 texcord:TEXCOORD0;
};
struct v2f
{
float4 position:SV_POSITION;
float3 temp:COLOR1;
};
struct f2t
{
fixed4 t:SV_Target;
};
v2f vert(a2v v){
v2f f;
f.position = UnityObjectToClipPos(v.vertex);
f.temp = v.normal;
return f;
}
f2t frag(v2f f){
f2t t;
t.t = fixed4(f.temp,1);
return t;
}
ENDCG
}
}
}