从应用阶段传递模型数据给顶点着色器
POSITION:模型空间中的顶点位置,通常是float4类型
NORMAL:顶点法线,通常是float3类型
TANGENT:顶点切线,通常是float4类型
COLOR:顶点颜色,通常是fixed4或float4类型
TEXCOORDn,如TEXCOORD0、TEXCOORD1:该顶点的纹理坐标,TEXCOORD0表示第一组纹理坐标,依此类推,通常是float2或float4类型
其中TEXCOORDn中n的数目是和Shader Model有关的,例如一般在Shader Model 2(即Unity默认编译到的Shader Model版本)和Shader Model 3中,n等于8,而在Shader Model 4和Shader Mode 5中,n等于16。通常情况下,一个模型的纹理坐标组数一般不超过2,即我们往往只使用TEXCOORD0和TEXCOORD1。在Unity内置的数据结构体appdata_full中,它最多使用了6个坐标纹理组。
从顶点着色器传递数据给片元着色器
SV_POSITION:裁剪空间中的顶点坐标,结构体中必须包含一个用该语义修饰的变量。等同于DirectX9中的POSITION,但最好使用SV_POSITION
COLOR0:通常用于输出第一组顶点颜色,但不是必须的
COLOR1:通常用于输出第二组顶点颜色,但不是必须的
TEXCOORD0~TEXCOORD7:通常用于输出纹理坐标,但不是必须的
片元着色器输出
SV_Target:输出值将会存储到渲染目标(render target)中。等同于DirectX9中的COLOR语义,但最好使用SV_Target