关于D3D的绘制函数DrawIndexedPrimitive的问题

zouxiangliusha 2011-10-11 09:59:21
网上关于这个函数的介绍我已经看了好多,知道这个函数的参数有以下几个

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

但是关于这几个参数的介绍,各个版本的理解却不一样(MSDN中貌似也有笔误的地方),D3DPRIMITIVETYPE这里写入类型没什么问题,关键是后面这几个参数MinIndex,最小索引,有人说最好写0,有人说用那个顶点,就定那个顶点,但是我每次改成非0的数之后就都变得怪怪的。NumVertices这个也是有人说是需要几个实际的顶点,也有人说是跨度中用到了几个顶点,这个我也没试明白,StartIndex这个是索引缓存的起始值,应该没什么问题,PrimitiveCount画几个多边形,应该也没有问题。
所以我希望能有比较明白的人帮我讲解一下,BaseVertexIndex,MinIndex,NumVertices这几个真正用法和解释。

举例说明,我在场景中画了11个顶点,分别编号0—10。
然后想使用3—10号顶点绘制三角形。
索引是 {3,4,5, 3,5,6, 3,7,6, 7,10,6, 3,4,8, 8,7,3, 6,5,9, 9,10,6, 4,8,9, 9,5,4 };
然后我一次性批量画出这个全部的三角形,然后我DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,3,11,0,10);程序运行得很正确
但是接下来,我想每次只画出2个三角形,画5次,然后就不知道该怎么设置了,第一次的画DrawIndexedPrimitive(D3DPT_TRIANGLELIST,0,3,11,0,2);运行正确,之后该怎么设置参数呢?不管我怎么试都有问题……
求帮助……求指教……



...全文
354 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
Kevin_qing 2012-02-23
  • 打赏
  • 举报
回复
http://hi.baidu.com/%C4%A6%F4%C9%D1%DB%C0%E1/blog/item/d97d24a3d8e37e8fd043582c.html


青春的加贝 2012-02-23
  • 打赏
  • 举报
回复
楼主,问题解决了没? 新手,求教!!!
woaitmac1314 2011-10-11
  • 打赏
  • 举报
回复
似乎不能分开绘制?mark。。。求大大解答~

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧