HRESULT DrawIndexedPrimitive(
[in]  D3DPRIMITIVETYPE Type,
[in]  INT BaseVertexIndex,
[in]  UINT MinIndex,
[in]  UINT NumVertices,
[in]  UINT StartIndex,
[in]  UINT PrimitiveCount
);
MinIndex:这个是相对于VertexBuffer而言,它是指绘画中用到的VertexBuffer的最小索引,感觉他只是提示IndexBuffer数组里最小的Index是值。网上的有一种扯蛋的说法误导了我很久。实际上我觉得这个参数一点用都没有,这个参数可以通过StartIndex和PrimitiveCount遍历IndexBuffer算出来。而且实际中我测试这个参数好像也是没有任何用处的,某种意义上,他可以为导出顶点的起始索引减法有帮助。
 
NumVertices:它不是实际画的顶点数目,而是使用到的VertexBuffer区域大小,比如要画一个三角形,有可能NumVertices=4,说明中间有一个顶点没有用到如下图所示:


MinIndex和NumVertices决定了本次绘画时,用到的VertexBuffer 顶点区间。
StartIndex:它是对于IndexBuffer而言的,IndexBuffer使用的开始位置。
BaseVertexIndex:他的影响是每一个vb Indexbuffer的值都要加上这一个数值见见图1,,顶点缓存的第一个顶点索引的偏移位置,偏移是因为当多个顶点缓存合并成一块全局缓存中时每块都有一个基准的offset值,例如合并多个顶点缓存减少渲染batch数,提高性能,但是较少使用。


决定VertexBuffer在绘图中使用到的顶点区间:
起始:
1.SetStreamSource 中的Offset
2.如果BaseVertexIndex不为0,则代表,IndexBuffer每一个值都要加上这个值。所以BaseVertexIndex+Offset就可以被认为是VertexBuffer的起始位置。
3.如果MinIndex不为0,有两种可能,未经BaseVertexIndex转化的话,MinIndex是50,这样在VertexBuffer的时候不可以加上这个MinIndex,这样起始位置就是Offset+BaseVertexIndex+(MinIndex-BaseVertexIndex)。如果经过BaseVertexIndex转化之后的话,Minindex是0,则起始位置就是Offset+BaseVertexIndex+MinIndex。
大小:
不知道MinIndex对NumVertice的影响在实际中要查看一下。 关于IndexBuffer区间:
起始:直接为startIndex
大小:目前只可以通过按prim计算。

DrawIndexedPrimitive参数详解的更多相关文章

  1. Nginx主配置参数详解,Nginx配置网站

    1.Niginx主配置文件参数详解 a.上面博客说了在Linux中安装nginx.博文地址为:http://www.cnblogs.com/hanyinglong/p/5102141.html b.当 ...

  2. iptables参数详解

    iptables参数详解 搬运工:尹正杰 注:此片文章来源于linux社区. Iptalbes 是用来设置.维护和检查Linux内核的IP包过滤规则的. 可以定义不同的表,每个表都包含几个内部的链,也 ...

  3. chattr的常用参数详解

    chattr的常用参数详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在实际生产环境中,有的运维工程师不得不和开发和测试打交道,在我们公司最常见的就是部署接口.每天每个人部署的 ...

  4. mha配置参数详解

    mha配置参数详解: 参数名字 是否必须 参数作用域 默认值 示例 hostname Yes Local Only - hostname=mysql_server1, hostname=192.168 ...

  5. $.ajax()方法所有参数详解;$.get(),$.post(),$.getJSON(),$.ajax()详解

    [一]$.ajax()所有参数详解 url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. type: 要求为String类型的参数,请求方式(post或get)默认为get.注 ...

  6. linux PHP 编译安装参数详解

    linux PHP 编译安装参数详解 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc -- ...

  7. 【转】jqGrid 各种参数 详解

      [原文]http://www.cnblogs.com/younggun/archive/2012/08/27/2657922.htmljqGrid 各种参数 详解 JQGrid JQGrid是一个 ...

  8. HTML滚动字幕代码参数详解及Js间隔滚动代码

    html文字滚动代码 <marquee style="WIDTH: 388px; HEIGHT: 200px" scrollamount="2" dire ...

  9. mysql5.6主从参数详解

    mysql5.6的主从相当的不错,增加了不少参数,提升了主从同步的安全和效率,以下是mysql5.6主从参数详解. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 ...

随机推荐

  1. clock divider

    一个clock的产生: 1) Clock source的选择: cgm_mux5(.clk_out, .clk_in0, .clk_in1, .clk_in2, .clk_in3, .clk_in4, ...

  2. 【海岛帝国系列赛】No.7 海岛帝国:神圣之日

    50237242海岛帝国:神圣之日 [试题描述] 战争持续九个月了.“购物券”WHT的军队还在跟恐怖分子僵持着.WHT和LJX已经向“公务员”告急,情况不宜乐观.YSF为守护帝国决定打开“够累 的”星 ...

  3. java类的访问权限

    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...

  4. 用grunt搭建自动化的web前端开发环境实战教程(详细步骤)

    用grunt搭建自动化的web前端开发环境实战教程(详细步骤) jQuery在使用grunt,bootstrap在使用grunt,百度UEditor在使用grunt,你没有理由不学.不用!前端自动化, ...

  5. android 中 listview 设置自动匹配高度

    1.布局文件 <ScrollView xmlns:android="http://schemas.android.com/apk/res/android" android:l ...

  6. linux信号机制 - 用户堆栈和内核堆栈的变化【转】

    转自:http://itindex.net/detail/16418-linux-%E4%BF%A1%E5%8F%B7-%E5%A0%86%E6%A0%88 此文只简单分析发送信号给用户程序后,用户堆 ...

  7. PHP安全函数phpinfo()

    phpinfo() 功能描述:输出 PHP 环境信息以及相关的模块.WEB 环境等信息. 危险等级:中 passthru() 功能描述:允许执行一个外部程序并回显输出,类似于 exec(). 危险等级 ...

  8. Swoole 遇上 PHP会是怎样的结果呢

    一直想写点Swoole的东西,毕竟它重新定义了php,却一直不知道怎么下手写 Swoole涉及的知识点非常多,互为表里,每次想写都发现根本理不出一个头绪 Swoole是一个php的扩展,它的核心目的就 ...

  9. 3、JavaScript

    1.    JavaScript简介 1.1. JavaScript由来 Netscape 发明了 JavaScript JavaScript由Netscape 在1995年发明.早期的主要目的是处理 ...

  10. php连接函数implode()和分割explode()

    php可以将字符串分割成数组,同时翻过了也可以将数组连接成字符串,确切的说是可以将数组元素连接成字符串,有了这两个函数我们就可以在数组与字符串之间进行自由转换了,下面看正文的例子吧. implode( ...