• 关于DrawIndexedPrimitive函数的调用


    函数的原型例如以下所看到的:

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


    D3DPT_LINELIST表示线段列


    D3DPT_LINESTRIP表示线段带


    D3DPT_TRIANGLELIST表示三角面列


    D3DPT_TRIANGLESTRIP表示三角面带


    D3DPT_TRIANGLEFAN表示扇形面



    <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


    此时的函数调用例如以下所看到的:

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

    <2>当BaseVertexIndex ≠0


    此时索引缓存中的没一个值都要加上一个BaseVertexIndex的值来表示真正的索引。

    函数的调用例如以下所看到的:

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



  • 相关阅读:
    Apache POI使用详解
    util.Date与sql.Date转换
    【转】javascript中not defined、undefined、null以及NaN的区别
    SELECT INTO 和 INSERT INTO SELECT 两种表复制语句
    DC维护工具Repadmin
    Outlook 配置exchange 缓慢,无法通过
    Windows 服务器站点设置
    Exchange 挂载点权限问题
    Windwos 查看WWN Number
    Exchange 2016 多站点创建oab shadow 副本
  • 原文地址:https://www.cnblogs.com/mfmdaoyou/p/7339974.html
Copyright © 2020-2023  润新知