关于DrawIndexedPrimitive函数的调用
2020-12-13 04:10
标签:drawindexedprimitive 函数的原型如下所示: Type:D3DPRIMITIVETYPE枚举成员中的一个,表示绘制的图元类型 其中D3DPT_POINTLIST表示点列 D3DPT_LINELIST表示线段列 D3DPT_LINESTRIP表示线段带 BaseVertexIndex is a value that‘s effectively added to every VBIndex stored in the index buffer. 它是要添加到索引缓存中存储的顶点缓存的每一个值上的。 关于DrawIndexedPrimitive函数的调用,搜素材,soscw.com 关于DrawIndexedPrimitive函数的调用 标签:drawindexedprimitive 原文地址:http://blog.csdn.net/ddupd/article/details/37600337HRESULT DrawIndexedPrimitive(
[in] D3DPRIMITIVETYPE Type,
[in] INT BaseVertexIndex,
[in] UINT MinIndex,
[in] UINT NumVertices,
[in] UINT StartIndex,
[in] UINT PrimitiveCount
);
typedef enum D3DPRIMITIVETYPE {
D3DPT_POINTLIST = 1,
D3DPT_LINELIST = 2,
D3DPT_LINESTRIP = 3,
D3DPT_TRIANGLELIST = 4,
D3DPT_TRIANGLESTRIP = 5,
D3DPT_TRIANGLEFAN = 6,
D3DPT_FORCE_DWORD = 0x7fffffff
}D3DPRIMITIVETYPE, *LPD3DPRIMITIVETYPE;
D3DPT_TRIANGLELIST
表示三角面列
D3DPT_TRIANGLESTRIP
表示三角面带
D3DPT_TRIANGLEFAN
表示扇形面
BaseVertexIndex
顶点缓存中距离第一个顶点的偏移量,这里说的都是顶点缓存中的索引。
MinIndex
函数调用中最小的索引。这是以0为基础,相对于BaseVertexIndex的索引,当然是针对顶点缓存来说的。
NumVertices
函数调用过程中用到的顶点数,第一个顶点是BaseVertexIndex +MinIndex
StartIndex
当访问顶点缓存的时候用到的第一个索引的的索引,
PrimitiveCount
图元的个数
下面几幅图最能说明BaseVertexIndex,MiniIndex,StartIndex,以及NumVertices的含义
当BaseVertexIndex =0
此时的函数调用如下所示:
DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
0, // BaseVertexIndex
0, // MinIndex
4, // NumVertices
3, // StartIndex
1 ); // PrimitiveCount
当BaseVertexIndex ≠0
此时索引缓存中的没一个值都要加上一个BaseVertexIndex的值来表示真正的索引。函数的调用如下所示:
DrawIndexedPrimitive(D3DPT_TRIANGLELIST, // PrimitiveType
50, // BaseVertexIndex
0, // MinIndex
4, // NumVertices
3, // StartIndex
1 );