討論下View矩陣
圖1
上圖黑色是我們世界坐標系,淺藍色是攝像機坐標系。
視圖矩陣作用一句話簡明表達就是世界坐標系轉換到攝像機坐標系。
從圖1 黑色的世界坐標系轉換到淺藍色的攝像機坐標系。
先說概念,我們根據攝像機的位置和旋轉信息可以構造出攝像機的坐標系矩陣C,但是這個C
你單純的乘上世界矩陣,是錯誤的。因為你的變化還是在世界坐標系做平移和旋轉。
我們要的目的是把世界坐標系的東西變換到Camera的坐標系。以Camera中心點做世界的原點,Camera的基向量做世界坐標系的軸。
那么於“原來的世界坐標系”的向量,都得除去“現在世界坐標”基向量的影響。
公式2:
矩陣乘上他的逆矩陣得到單位矩陣。那么我們對"原來世界坐標系"的向量乘上"現在世界坐標系"矩陣的逆矩陣。
我們分解逆矩陣
他位移部分Mt矩陣,他的平移矩陣位置。
他的位移矩陣的逆矩陣就是反向位移矩陣,那么我們可以構造下面逆矩陣
現在構造旋轉部分的逆矩陣,我們知道。旋轉矩陣是個正交矩陣,它的逆矩陣和轉置矩陣一樣得到下面。
那么構造出本身的旋轉矩陣,轉置就得到他的逆矩陣
矩陣旋轉構造,只要知道三個基向量就可以構造。
我們先用世界坐標系”Y軸基向量”,通過 look和eye點 得到Z軸基向量。
叉乘得X軸基向量,但是我們知道Y基向量,不是真正的基向量。重新叉乘得到真正的Y軸基向量。
有了三個坐標系基向量,構造旋轉矩陣。
轉置下
相乘就得到我們真正想要Camera矩陣
這個推導的矩陣是 左手系行向量的情況下視圖矩陣(DX情況下)
下步推導下右手系列向量情況下的矩陣
平移矩陣
平移逆矩陣
旋轉矩陣
逆矩陣
矩陣相乘不滿足交換律,所以列向量都是右乘
到目前,左右手系視圖矩陣推導完成。如果有錯誤謝謝指出。