DirectX 3d 取景變換

2022-03-31 07:57:05 字數 685 閱讀 2064

在世界座標系中,幾何體和攝像機都是相對於世界座標系定義的。但是當攝像機的位置和朝向任意時,投影變換及其它型別的變的就略顯困難或效率不高。為了簡化運算,我們將攝像機變的至世界座標系原點,並將其旋轉,使攝像機的光軸與世界座標系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...