世界坐標空間與觀察坐標系之間的轉換


1.世界坐標空間與觀察坐標系之間的轉換
已知:觀察坐標系相對世界坐標系的u,v,w軸與起點q,將世界坐標系中一點變換到觀察坐標系
使用左手坐標系推導
  • u = ( ux , uy , uz , 0 )
  • v = ( vx , vy , vz , 0 )
  • w = (wx , wy , wz , 0 )
  • q = ( qx , qy , qz , 1 )
觀察坐標系中的點可以表示為:
p = au+bv+cw+q
即為 (a,b,c,1)
展開上述公式
p =  a * ux * x + a * uy * y + a * uz * z + 0 * w
  b * vx * x + b * vy * y + b * vz * z + 0 * w
  c * wx * x + c * wy * y + c * wz * z + 0 * w
  1 * qx * x + 1 * qy * y + 1 * qz * z + 1 * w
 
= ( a * ux + b * vx + c * wx + qx) x+
   ( a * uy + b * vy + c * wy + qy) y+
   ( a * uz + b * vz + c * wz + qz) z +
        w
        ux uy uz   0     x
= ( a , b , c , 1 ) (  vx vy vz    0  )( y )
        wx wy wz 0     z
        qx qy qz  1     w
 
世界坐標系中的點可以表示為
                   x
p' = a'x+b'y+c'z + w = ( a', b', c' , 1) *( y )
                   z
                   w
 
p與p'是同一點,只是表示相對坐標系不同,因此有
p = p'
 
 
 
 
 
 
通常情況下,我們是確保u,v,w相互垂直,因此有第二步的等式,因為其為正交矩陣,矩陣的逆等於矩陣的轉置。
因此我們得到世界坐標到觀察坐標系之間的轉化
其中[a b c 1]表示觀察坐標系中的點
[a' b' c' 1]表示世界坐標系中的點
  • u = ( ux , uy , uz , 0 )
  • v = ( vx , vy , vz , 0 )
  • w = (wx , wy , wz , 0 )
  • q = ( qx , qy , qz , 1 )
u,v,w分別為觀察坐標系的x,y,z軸在世界坐標系的表示,q表示觀察坐標系原點在世界坐標系中的表示。
在游戲場景中,我們的攝像機通常會給出一個指點的位置Q,看向目標位置T,
通過上述三個公式,u,v,w可以輕易的計算出來,整個變化矩陣也就推導出來了。
 
參考資料:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM