2017-09-27 138 views
0

我有一個固定攝像頭位置的世界空間中的3d對象的變換矩陣。如果對象沒有被轉換並且相機被轉換,我想導出相機矩陣(位置,查找向量,右向量)。我怎麼能計算出來?希望我的問題有道理從對象變換矩陣獲取相機矩陣

+0

旋轉然後翻譯對象由'M1 = T * R'完成。相反,轉換攝像頭是用'M2'完成的。問題是,如果從相機中看到物體*兩個選項都相同*表示'M1 = M2' – Ripi2

+0

這[看鏈接](https://www.khronos.org/registry/OpenGL-Refpages/gl2。 1/xhtml/gluLookAt.xml)演示如何在相機變換時導出矩陣。 – Ripi2

+0

請參閱[瞭解4x4同質變換矩陣](https://stackoverflow.com/a/28084380/2521214),例如,您只需在對象後面(相對於它)進行翻譯並做相反處理即可獲得具有以下內容的相機矩陣模式...但粗糙,你必須採取你的約定... – Spektre

回答

0

前提。我們用4x4矩陣表示座標變換。具體地,4×4矩陣Qab表示座標從幀b變換幀a的是這樣的:

  • 及其3x3的左上角子矩陣是旋轉矩陣Rab,即3×3正交矩陣,其列是的x_b,所述ordinately組件y_b,幀bz_b單位矢量,分解d在框架a
  • 及其3X1右上子矩陣是從幀a的原點到幀b的原點,在幀a分解平移向量t_ab
  • 其第4行是[0,0,0,1]。
  • 如果p是一個點的座標在幀bp_b= [px_b, py_b, pz_b, 1],然後在幀a在幀中的相同點的p_a= [px_a, py_a, pz_a, 1]p_a.T=Qab * p_b.T,其中x.T給出的座標指的是矢量x的轉置。請注意,我們附加一個1作爲虛擬第四個座標,以便能夠將3D點乘以4x4矩陣。

現在,你的問題。假設Qcw是代表來自世界參考框架的相機的旋轉和平移的4x4矩陣,並且Qow對象從世界的類似轉換。

然後你的答案是相機從對象變換Qco。我們可以通過注意到我們可以從oc,首先從ow,然後從wc來計算它。因此,這是Qco=Qcw * Qwo,其中Qwo=inv(Qow)Qow倒數,以及表示從所述對象看到的世界座標系。

+0

有點複雜,但我明白了。謝謝 – itsaMe