关于DrawIndexedPrimitive函数的调用

时间:2014-07-10 22:20:01   收藏:0   阅读:490

函数的原型如下所示:

HRESULT DrawIndexedPrimitive(
 [in]  D3DPRIMITIVETYPE Type,
 [in]  INT BaseVertexIndex,
 [in]  UINT MinIndex,
 [in]  UINT NumVertices,
 [in]  UINT StartIndex,
 [in]  UINT PrimitiveCount
);

<1>  Type:D3DPRIMITIVETYPE枚举成员中的一个,表示绘制的图元类型

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_POINTLIST表示点列

bubuko.com,布布扣

D3DPT_LINELIST表示线段列

bubuko.com,布布扣

D3DPT_LINESTRIP表示线段带

bubuko.com,布布扣

D3DPT_TRIANGLELIST表示三角面列

bubuko.com,布布扣

D3DPT_TRIANGLESTRIP表示三角面带

bubuko.com,布布扣

D3DPT_TRIANGLEFAN表示扇形面

bubuko.com,布布扣


<2> BaseVertexIndex

顶点缓存中距离第一个顶点的偏移量,这里说的都是顶点缓存中的索引。

BaseVertexIndex is a value that‘s effectively added to every VBIndex stored in the index buffer.

它是要添加到索引缓存中存储的顶点缓存的每一个值上的。

<3> MinIndex

函数调用中最小的索引。这是以0为基础,相对于BaseVertexIndex的索引,当然是针对顶点缓存来说的。

<4> NumVertices

函数调用过程中用到的顶点数,第一个顶点是BaseVertexIndex +MinIndex

<5> StartIndex

当访问顶点缓存的时候用到的第一个索引的的索引,

<6> PrimitiveCount

图元的个数

 

下面几幅图最能说明BaseVertexIndex,MiniIndex,StartIndex,以及NumVertices的含义

<1> 当BaseVertexIndex =0

bubuko.com,布布扣

此时的函数调用如下所示:

DrawIndexedPrimitive( D3DPT_TRIANGLELIST, // PrimitiveType
                    0,                  // BaseVertexIndex
                    0,                  // MinIndex
                    4,                  // NumVertices
                    3,                  // StartIndex
                    1 );                // PrimitiveCount

<2>当BaseVertexIndex ≠0

bubuko.com,布布扣

此时索引缓存中的没一个值都要加上一个BaseVertexIndex的值来表示真正的索引。函数的调用如下所示:

DrawIndexedPrimitive(D3DPT_TRIANGLELIST, // PrimitiveType
                    50,                 // BaseVertexIndex
                    0,                  // MinIndex
                    4,                  // NumVertices
                    3,                  // StartIndex
                    1 );   



关于DrawIndexedPrimitive函数的调用,布布扣,bubuko.com

评论(0
© 2014 mamicode.com 版权所有 京ICP备13008772号-2  联系我们:gaon5@hotmail.com
迷上了代码!