座標系與變換矩陣

2021-06-22 15:07:52 字數 1350 閱讀 9431

1.世界座標系和模型幾何變換

settransform(d3dts_world,&world)

物體在圖形學中通常通過乙個4x4矩陣來表示三圍物體的空間幾何變換,表示三圍物體在世界空間中集合變換的矩陣稱為世界變換矩陣,簡稱世界矩陣,在direct3d中通過為direct3d裝置介面設定世界矩陣完成其模型幾何變換。模型集合變換有三種基本型別:平移(translate),旋轉(rotae),縮放(scale),其他任何複雜的變換都是由這三種基本變換符合而成的。復合變換是通過將每個單一的幾何變換矩陣依次相乘形成的。

2.觀察座標系和取景變換

d3dxmatrixlookatlh()

settransform(d3dts_view,&view)

若把圖形顯示過程比作攝影過程,則就像攝影中的攝像機的擺放一樣,在三維圖形程式中,需要設定乙個虛擬的相機,螢幕顯示的圖形就是虛擬相機拍攝的景物。以相機位置為參考原點,相機觀察方向為座標軸,建立的座標系稱為觀察座標系,物體在觀察座標系中的相對座標稱為觀察座標,頂點從世界座標到觀察座標的轉換稱為取景變換或觀察變換。

3.投影座標系和投影變換

d3dxmatrixperspectivefovlh()

settransform(d3dts_projection, &proj)

物體頂點座標從世界座標轉換到觀察座標後,就可以將三維物體投影到二維平面上,即投影到虛擬相機的膠片上,這個過程稱為投影變換。以膠片為參考遠點的空間座標系稱為投影座標系,物體在投影座標系中的座標表示稱為投影座標。

投影變換的取景範圍是乙個截頭體(如圖2所示)

4. 視區變換

視區變換是direct3d頂點變換流水線的最後一步,通過定義螢幕顯示區域的實際寬高度度,將頂點從投影座標轉換為最終顯示的以畫素為單位的螢幕座標。視區變換主要有兩個作用:頂點裁剪,將頂點投影座標轉換為螢幕座標。

5. 最後說明

direct3d中的座標變換雖然過程很複雜,但是對於程式設計師來說就是建立並設定世界矩陣,觀察矩陣,投影矩陣。

世界矩陣用來對空間中的物體進行平移,旋轉,和縮放處理的,通常不同的物體需要進行不同的世界變換,所以在程式中最好為每個物體都準備乙個世界矩陣,這樣程式更加清晰,而且空間中的物體的位置和姿態通常隨時都在變換,例如一輛欲動的汽車,這樣在渲染每幀前都需要為其設定世界變換矩陣來不斷改變其位置和姿態。而觀察變換和投影變換通常針對整個場景的,不是針對某個物體的,相對固定,所以觀察矩陣和投影矩陣通常在建立了direct3d裝置介面後進入圖形渲染迴圈之前就設定好。

座標系變換與座標變換理解

在slam中經常用到空間點的座標變換。假設已獲得相機某一位置的位姿pose,pose包括相機座標系相對於世界座標系的旋轉r和平移t,此時若已知某點p在相機座標系下的座標為pc,計算點p在世界座標系下的座標pw,可使用 pw r pc t t pc 開始的時候我有這樣的疑問 t表示世界座標到相機座標系...

矩陣與座標變換

一,在平面中,乙個點繞任意點旋轉 度後的點的座標 假設對二維空間上任意點 x1,y1 繞乙個座標點 x0,y0 逆時針旋轉a角度後的新的座標設為 x2,y2 有公式 x2 x1 x0 cos a y1 y0 sin a x0 y2 x1 x0 sin a y1 y0 cos a y0 由該公式易得,...

矩陣變換座標系 深入理解

矩陣座標系變化理解 讓我們從乙個實際的例子入手 下圖是乙個用兩維的笛卡爾座標系表示的二維空間。其中,黑色座標系 x y代表乙個二維空間 藍色座標系 i j代表另外乙個二維空間。已知藍色座標系軸在黑色座標系下對應的值是i 1,1 j 1,1 又知橙色向量 p 處在 i j 空間中,其座標值為 2,1 ...