1. 程式人生 > >Unity3d 頂點著色器傳入的頂點資料

Unity3d 頂點著色器傳入的頂點資料

一、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:逆轉置模型*視矩陣
8、UNITY_MATRIX_TEXTURE0 to UNITY_MATRIX_TEXTURE3:紋理變換矩陣

四、內建向量

1、UNITY_LIGHTMODEL_AMBIENT:當前環境色