在世界座標系中,幾何體和攝像機都是相對於世界座標系定義的。但是當攝像機的位置和朝向任意時,投影變換及其它型別的變的就略顯困難或效率不高。為了簡化運算,我們將攝像機變的至世界座標系原點,並將其旋轉,使攝像機的光軸與世界座標系z軸正方向一致。同時,世界空間中的所有幾何幾都隨著攝像機一同進行變換,以保證攝像機視聲恆定。這種變換稱之為取景變換(view space transformation),我們稱變換後的幾何體位於觀察座標系中(view space)。
假定攝像機位於(5,3,-10),其觀察點為世界座標系的原點(0,0,0),我們可以這樣建立取景變換矩陣。
d3dxvector3 position( 5.0f,3.0f,-10.0f);//攝像機在世界坐繫中的位置
d3dxvector3 target(0.0f, 0.0f, 0.0f); //
被觀察點
d3dxvector3 up(0.0f, 1.0f, 0.0f); //
世界座標系中向上的方向向量
d3dxmatrix v;
d3dxmatrixlookatlh(&v, &position, &target, &up);//
得到取景變的矩陣,即觀察矩陣
取景變換
device->settransform(d3dts_view, &v); //取景變換
Directx3D框架程式
include include lpdirect3d9 g pd3d null lpdirect3ddevice9 g pd3ddevice null hresult initalized3d hwnd hwnd return true void render g pd3ddevice presen...
DirectX 3D 基本框架 四
繼續擴充套件原來的d3d基本框架。這次將新增地形類庫。做出如下修改 1.增加乙個terrain頭 庫檔案。清單 file terrain.h by tianzhihen 2008.10.27,msvc 8.0 ifndef terrainh define terrainh include d3dut...
DirectX3D中繪製立方體
idirect3ddevice9 g device null idirect3dvertexbuffer9 g vb 0 立方體頂點 idirect3dindexbuffer9 g ib 0 索引資料 struct vertex vertex float x,float y,float z floa...