d3d表面
idirect3dsu***ce9介面來描述表面
該介面最重要的方法有:
lockrect:該方法用於獲取指向表面儲存區的指標
unlockrect 如果呼叫了lockrect方法,而且已執行完訪問表面儲存區的操作,必須呼叫該方法來解除對表面儲存區的鎖定
getdesc 該方法可通過填充結構d3dsu***ce_desc來獲取該表面的描述資訊
以下是方法呼叫示例:
d3dsu***ce_desc su***cedesc;
_su***ce->getdesc(&su***cedesc);//假設_su***ce是指向idirect3dsu***ce9 inte***ce的乙個指標
d3dlocked_rect lockedrect;
_su***ce->lockrect(
&lockedrect,//接收鎖定資訊的指標
0,//鎖定整個表面
0);多重取樣
d3d初始化
(1)獲取介面idirect3d9的指標,該介面用於建立物理硬體裝置的資訊並建立介面idirect3ddevice,該介面代表了
用來顯示3d圖形的物理硬體裝置。
idirect3d9* _d3d9;
_d3d9=direct3dcreate9(d3d_sdk_version);
(2)檢查裝置效能d3dcaps9,判斷主顯示卡是否支援硬體頂點計算
例如:d3dcaps9 caps;
d3d9->getdevicecaps(
d3dadapter_default,
devicetype,
&caps);
(3)初始化d3dpresent_parameter結構指定即將建立idirect3ddevice9物件的特性
bcakbufferwidth 後台快取中表面的寬度,單位為畫素
backbufferheight 後台快取中表面的高度,單位為畫素
backbufferformat 後台快取的畫素格式
backbuffercount所需使用後台快取的個數
multisampletype後台快取所使用的多重取樣型別
multisamplequality多重取樣的質量水平
swapeffect d3dswapeffect列舉型別的乙個成員,該列舉型別指定了交換鏈中的快取的頁面置換方式
hdevicewindow與裝置相關的視窗控制代碼,指定了所要進行繪製的應用程式視窗
windowed為true時,表示視窗模式。為false時,表示全屏模式
enableautodepthstencil設為true
autodepthstencilformat深度快取或模板快取的畫素格式
重新整理頻率fullscreen_refreshrateinhz重新整理頻率
presentationinterval d3dpresent集合的乙個成員。完整的合法時間間隔列表請參閱sdk文件
d3dpresent_interval_immediate 立即提交
or d3dpresent_interval_default 由direct3d來選擇提交頻率.
(4)利用已初始化的d3dpresent_parameter建立idirect3ddevice9物件
d3dutility.h/cpp所提供的函式
initd3d該函式對應用進行direct3d初始化如果成功,將得到乙個指向idirect3ddevice9的指標
entermsgloop該函式封裝了應用程式的訊息迴圈,它接收乙個指向顯示函式的函式指標
D3D學習筆記(四)
光照 光照可分為環境光,漫射光,鏡面光三種 三種顏色的光均可用d3decolorvalue或d3dxcolor來表示,描述光線的顏色時,d3dxcolor中的alpha值將被忽略 材質 材質可用結構d3dmaterial9來表示 typedef struct d3dmaterial9d3dmater...
D3D學習筆記(七)
幾何資訊 id3dxbasemesh介面包含乙個頂點快取和乙個索引快取,可用以下方法得到指向這些介面的指標。hresult id3dxmesh getvertexbuffer9 vb 0 hresult id3dxmesh getindexbuffer9 ib 0 如果想鎖定快取進行讀寫操作,那麼可...
D3D學習筆記 繪製
1 頂點 索引緩衝區 頂點 索引緩衝區是一片儲存著頂點 索引資料的記憶體。頂點緩衝區通過idirect3dvertexbuffer9介面來定義的。索引緩衝區時通過idirect3dindexbuffer9介面來定義的。1.1 建立乙個頂點緩衝區和乙個索引緩衝區 建立頂點緩衝區函式原型 hresult...