Directx 顶点和顶点缓存
頂點
? ? 在dx11中,頂點由空間位置和各種附加屬性組成。D3D允許我們靈活地建立屬于自己的頂點格式。要創建一個自定義的頂點格式,必須創建一個包含頂點數據的結構體。
? ? 例如下面兩種不同類型的頂點格式,第一個由位置和顏色組成,另一個由位置、發現和紋理坐標組成。
struct Vertex1
{
? ? XMFLOAT3 Pos;
? ? XMFLOAT4 Color;
};
?
struct Vertex2
{
? ? XMFLOAT3 Pos;
? ? XMFLOAT3 Normal;
? ? XMFLOAT2 Tex0;
? ? XMFLOAT2 Tex1;
};
頂點緩存
? ? 物體模型是用多邊形網格來描述的,一般的是三角形,頂點緩存就是來存儲用來描述物體模型的所有多面形的頂點的信息,這些信息有頂點的三維坐標,頂點顏色,頂點法向量,紋理坐標等。
如何使用頂點緩存
? ? 使用頂點緩存分為四步
? ? 1 設計頂點緩存
? ? 就是用來說明你的頂點中有哪些信息
? ? 比如:?
struct MYVERTEX
{
float x,y,z;//頂點的三維坐標 x,y,z
DWORD color;//頂點的顏色值
}
? ? 然后用一個宏來描述頂點所包含的信息,以便隨后設置到環境中
? ? #deifne D3DFVF_MYVERTEX ?(D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
? ? 2 創建頂點緩存
? ? 函數 CreateVertexBuffer
LPDIRECT3DVERTEXBUFFER9g_pVertexBuffer = NULL;
if( FAILED( g_pd3dDevice->CreateVertexBuffer( 3*sizeof(CUSTOMVERTEX),
0, D3DFVF_CUSTOMVERTEX,
D3DPOOL_DEFAULT, &g_pVertexBuffer, NULL ) ) )
{
return E_FAIL;
}
? ? 3 訪問頂點緩存
? ? 訪問之前需要先把頂點緩存的內存鎖住,然后讀寫數據,然后解鎖,直接貼出代碼
? ? 4 繪制圖形
? ? 這里就是繪制三角形
總結
以上是生活随笔為你收集整理的Directx 顶点和顶点缓存的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 初步了解win32界面库DuiLib
- 下一篇: 电力3d gis