博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DrawIndexedPrimitive参数详解
阅读量:6607 次
发布时间:2019-06-24

本文共 1240 字,大约阅读时间需要 4 分钟。

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计算。
出处:
作者:

转载地址:http://lsbso.baihongyu.com/

你可能感兴趣的文章
C# DllImport的用法
查看>>
ERP框架序设计与开发日记(下)
查看>>
Github-Client(ANDROID)开源之旅(二) ------ 浅析ActionBarSherkLock
查看>>
no identities are available for signing
查看>>
javascript 和 jquery插件开发
查看>>
Linux Shell文件差集
查看>>
eclipse中如何去除警告:Class is a raw type. References to generic type Class<T> should be parameterized...
查看>>
Gradle脚本基础全攻略
查看>>
Django模版中的过滤器详细解析 Django filter大全
查看>>
Linux中使用pwconv实现passwd中密码到shadow
查看>>
MongoDB C++ gridfs worked example
查看>>
Visual Studio 2017各版本安装包离线下载
查看>>
C#线程安全的那些事
查看>>
Mysql报错......\xE6\x80\xBB\xE7\x9B\x91' for column...
查看>>
【论文笔记】Social Role-Aware Emotion Contagion in Image Social Networks
查看>>
rpm安装PostgreSQL
查看>>
k sum(lintcode)
查看>>
28. extjs中Ext.BLANK_IMAGE_URL的作用
查看>>
Hibernate注解配置N:N关联
查看>>
Android 控件属性
查看>>