D3D9利用頂點緩衝區繪製三角形

2021-10-10 06:53:38 字數 1912 閱讀 3813

#include

//附加依賴項 d3d9.lib

//利用頂點緩衝區繪製三角形

const tchar szclassname[max_path]

=text

("冒險島class");

const tchar sztiltename[max_path]

=text

("冒險島");

lpdirect3d9 g_pd3d =

null

;//direct3d物件

lpdirect3ddevice9 g_pd3ddevice =

null

;//direct3d裝置物件

lpdirect3dvertexbuffer9 g_pvb =

null

;//頂點緩衝區物件

struct customvertex

;#define d3dfvf_customvertex (d3dfvf_xyzrhw| d3dfvf_diffuse)

//頂點格式

hresult init3d

(hwnd hwnd)

hresult initvb()

,,,}

; hresult hr = g_pd3ddevice-

>

createvertexbuffer

(sizeof

(customvertex)*3

,0, d3dfvf_customvertex, d3dpool_default,

&g_pvb,

null);

if(failed

(hr)

)return e_fail;

void* pvertices;if(

failed

(g_pvb-

>

lock(0

,sizeof

(vertices),(

void**

)&pvertices,0)

))return e_fail;

memcpy

(pvertices, vertices,

sizeof

(vertices));

g_pvb-

>

unlock()

;return s_ok;

}void cleanup()

void render()

//將在後台緩衝區繪製的圖形提交到前台緩衝區顯示

g_pd3ddevice-

>

present

(null

,null

,null

,null);

}lresult callback wndproc

(hwnd hwnd, uint msg, wparam wparam, lparam lparam)

return

defwindowproc

(hwnd, msg, wparam, lparam);}

int winapi wwinmain

(hinstance hinstance,

hinstance hprevinstance,

lptstr lpcmdline,

int ncmdshow)

else}}

}unregisterclass

(szclassname, hinstance)

;return0;

}

抄的**

效果圖

記得在此處新增附加依賴項

D3D 9和D3D 11繪製流水線對比

繪製流水線 pipline 是圖形學程式設計中屬於各種圖形學框架的骨架。windows平台下3d遊戲開發幾乎都會用到d3d來進行遊戲引擎的設計。d3d 9是使用比較廣泛的乙個版本,d3d 9 中比較核心的就是固定渲染管線 fixed function pipline 下圖是從官方的sdk中翻譯的,從...

(一)D3D9渲染原理

su ce和texture。使用su ce相對來說比使用texture要簡單一些,但是不如使用texture靈活。抽象概念 direct3d的抽象概念包括 devices 裝置 swap chains 交換鏈 和resources 資源 device 裝置 用於渲染3d場景。例如單色裝置就會渲染黑白...

D3D9學習筆記之顏色

學習目標 顏色的表示 在 direct3d 中,顏色用 rgb 三元組來表示。將顏色分解為紅色 red 綠色 green 藍色 blue 這三個分量的加性混合決定了最終的顏色。我們可用該三個分量的不同組合來表示上百萬種顏色。rgb資料可用兩種不同的結構來儲存 第一種是結構是 d3dcolor,它實際...