1. 程式人生 > >UnityShader中的數學(矩陣)

UnityShader中的數學(矩陣)

PS:本文章摘取自《UnityShader入門精要》一書。

對於UnityShader中的數學,向量,標量什麼的在之前的文章中已經有過介紹這裡就不在敘述,這裡重點的說一下矩陣,矩陣是什麼東西,什麼時候要用到矩陣,矩陣的存在能幫我們解決什麼問題,下面就解釋這些:

Shader中使用的矩陣有平移矩陣,旋轉舉證,縮放矩陣,其中平移矩陣和旋轉矩陣比較好理解簡單一點,從名字中就能看出每個矩陣的功能,使用來執行平移,旋轉和縮放的,還有在進行座標的轉換時都會用到矩陣,想了解矩陣的可以直接百度搜索,這裡主要介紹在UnityShader中是怎麼用矩陣來實現我們想要的效果的,對於UnityShader 中的矩陣使用沒有了底層的東西,Unity全都封裝好了供給我們使用,但是還是建議大家去看看矩陣的底層實現,因為我這裡對矩陣只能說是自己會,但是理解還是不是很深,所以就不寫出來了,下面寫出UnityShader中使用矩陣的方法:

UNITY_MATRIX_MVP       把模型空間座標轉換為裁剪空間座標

UNITY_MATRIX_MV       把模型空間座標轉換為觀察空間座標

UNITY_MATRIX_V       把世界空間座標轉換為觀察空間座標

UNITY_MATRIX_P       把觀察空間座標轉換為裁剪空間座標

UNITY_MATRIX_VP       把世界空間座標轉換為裁剪空間座標

UNITY_MATRIX_T_MV       UNITY_MATRIX_MVP的轉置矩陣

UNITY_MATRIX_IT_MV       把法線從模型空間座標轉換到觀察空間座標 UNITY_MATRIX_MVP的逆轉置矩陣,逆矩陣

_Object2World       模型矩陣,把模型空間座標轉換到世界空間座標

_World2Object       _Object2World的逆矩陣,把世界空間座標轉換到模型空間座標

以上的東西很可能看起來有點蒙,先記住,在之後的文章中會一點一點的用到,上面寫出的就是UnityShader中使用矩陣進行座標空間的轉換,為了方便之後的計算,所有的座標都必須保持在同一座標空間先進行,所以上面的東西很重要,在之後的指令碼中會經常使用。