您的位置:首页 > 编程语言 > C语言/C++

【CSDN浅墨】读书笔记3

2013-07-07 16:03 204 查看
【顶点缓存步骤】

1.设计顶点缓存:灵活顶点格式(固定功能流水线)

灵活顶点格式(Flexible Vertex Fomat, FVF)

先声明格式:

例如:

#define D3DFVF_CUSTOMVERTEX (D3DFVF_XYZRHW|D3DFVF_DIFFUSE)
注:“()”内为FVF格式。

2.创建顶点缓存:

声明或定义一个指针指向IDirectVertexBuffer9,然后用CreateVertexBuffer(...)创建顶点缓存,传入指针变量,将内存地址复制给刚刚的那个指针变量。

3.访问顶点缓存

用上面声明的IDirectVertexBuffer9指针变量,LOCK和UNLOCK之间执行访问。

需要顶一个VOID*变量,类似数组形式进行锁定和解锁数据

void* pVertices;
g_pVertexBuf->Lock(0, 0, (void**)&pVertices, 0); //加锁
pVertices[0] = CUSTOMVERTEX( -80.0f, -80.0f,  0.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 0));     // V0
pVertices[1] = CUSTOMVERTEX( -80.0f, 80.0f,  0.0f, 1.0f, D3DCOLOR_XRGB(0, 255, 0));     // V1
pVertices[2] = CUSTOMVERTEX(  80.0f, 80.0f, 0.0f, 1.0f, D3DCOLOR_XRGB(0, 255, 0));   // V2
pVertices[3] = CUSTOMVERTEX(  80.0f, -80.0f 0.0f, 1.0f, D3DCOLOR_XRGB(255, 0, 255));     // V3
g_pVertexBuf->Unlock();  //解锁
4.图形的绘制

采用灵活顶点格式需要进行SetStreamSource、SetFVF、DrawPrimitive

SetStreamSource(...)把包含的几何体信息的顶点缓存和渲染流水线相关联

SetFVF(...)指定我们使用的灵活顶点格式

DrawPrimitive(...)根据顶点缓存中的顶点进行绘制

【索引缓存步骤】

1.设计顶点格式

2.创建顶点缓存以及索引缓存

3.访问顶点缓存以及索引缓存

3.1 填充顶点缓冲区

3.2 创建索引缓存数组

3.3 填充索引缓冲区

4.绘制图形

g_pd3dDevice->SetStreamSource( 0, g_pVertexBuffer, 0, sizeof(CUSTOMVERTEX) );
g_pd3dDevice->SetFVF(D3DFVF_CUSTOMVERTEX);
g_pd3dDevice->SetIndices(g_pIndexBuffer);
g_pd3dDevice->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, 17, 0, 16);
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  DirectX C++