一、Cg顶点程序必须在结构中传递顶点数据。几种常用的顶点结构定义在文件UnityCG.cginc中。在大部分情况下仅仅使用它们就够了。结构如下:
1、appdata_base: 包含顶点位置,法线和一个纹理坐标。
2、appdata_tan:包含顶点位置,切线,法线和一个纹理坐标。
3、appdata_full:包含位置、法线、切线、顶点色和两个纹理坐标。
4、appdata_img:包含位置和一个纹理坐标。
二、如果你想访问个别的顶点数据,你必须自己声明顶点结构。结构中的成员必须是属于以下列表中的:
1、float4 vertex:POSITION 顶点位置
2、float3 normal:NORMAL 顶点法线
3、float4 texcoord:TEXCOORD0 第一UV坐标
4、float4 texcoord1:TEXCOORD1 第二UV坐标
5、float4 tangent:TANGENT 切线向量(用在法线贴图中)
6、float4 color:COLOR 每个顶点(per-vertex)颜色
三、内置矩阵
1、UNITY_MATRIX_MVP:当前模型*视*投影矩阵。(注:模型矩阵为 本地->世界)
2、UNITY_MATRIX_MV:当前模型*视图矩阵
3、UNITY_MATRIX_V:当前视图矩阵
4、UNITY_MATRIX_P:当前投影矩阵
5、UNITY_MATRIX_VP:当前视图*投影矩阵
6、UNITY_MATRIX_T_MV:转置模型*视图矩阵
7、UNITY_MATRIX_IT_MV:逆转置模型*视矩阵