DrawIndexedPrimitive()函数

DrawIndexedPrimitive()函数有几个参数

  D3DPRIMITIVETYPE Type,
  INT BaseVertexIndex,
  UINT MinIndex,
  UINT NumVertices,
  UINT StartIndex,
  UINT PrimitiveCount

D3DPT_POINTLIST 画点 
D3DPT_LINELIST 画线:12,34,56
D3DPT_LINESTRIP 画线:12,23,34,45,56
D3DPT_TRIANGLELIST ,三角形:顶点必须是3的倍数。123,345。 
D3DPT_TRIANGLESTRIP ,三角形:123,234,345,456
D3DPT_TRIANGLEFAN ,三角扇形:123,134,145,156等
参数BaseVertexIndex:这个参数与索引缓冲区中的索引相加之后得到的值才是顶点缓冲区 中的真实位置。有了这个参数,我们可以用一个索引缓冲区去渲染放 在同一个顶点缓冲区中的多个Mesh。当然,这几个Mesh的顶点绘制顺 序必须一致。
参数MinIndex:索引缓冲区中最小的索引号
参数NumVertices:渲染过程需要处理的顶点数。
参数StartIndex:索引缓冲区中从那个索引开始渲染顶点。
参数PrimitiveCount :渲染图元的个数。

例:

vertex buffer = |v0|v1|v2|v3|v4|v5|v6|v7|v8|
index buffer = 0,2,1,1,2,3

那么假如你要画的三角形是5,6,7三个点组成的,那么
BaseVertexIndex = 4 表示索引的0对应的是v4
minIndex=1, 表示索引的最小值是1
NumVertices = 3 表示有3个点
StartIndex = 3 表示绘制从索引buffer的第3个元素开始
PrimitiveCount = 1

原文地址:https://www.cnblogs.com/huking/p/1747935.html