游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2132|回复: 5

关于DX8里面DrawIndexedPrimitive的两点疑问

[复制链接]

55

主题

263

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
发表于 2006-2-9 20:46:00 | 显示全部楼层 |阅读模式
HRESULT DrawIndexedPrimitive(
  D3DPRIMITIVETYPE Type,
  UINT MinIndex,
  UINT NumVertices,
  UINT StartIndex,
  UINT PrimitiveCount
);
1  MinIndex 有何作用? 看帮助文档也没看理解过来
2  这个函数使用了多少个索引值,是不是由Type于PrimitiveCount共同决定。(如果Type为
   D3DPT_TRIANGLESTRIP ,那么索引值总数是不是就是PrimitiveCount * 3 ?)
3 这个函数取索引值的时候是从索引缓存区的哪个偏移开始取?
4 顶点又是从顶点缓存区的哪个偏移开始?
谢谢

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-10 01:19:00 | 显示全部楼层

Re:关于DX8里面DrawIndexedPrimitive的两点疑问

1.作用是:索引中的0表示第MinIndex个顶点
2.如你所言,不过要看大小,如果建立的索引缓冲区不够大的话会出错
3.StartIndex
4.你参考我的回答1.

55

主题

263

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
 楼主| 发表于 2006-2-10 16:14:00 | 显示全部楼层

Re:关于DX8里面DrawIndexedPrimitive的两点疑问

一个回答都没看明白 :(

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-10 16:22:00 | 显示全部楼层

Re:关于DX8里面DrawIndexedPrimitive的两点疑问

1.MinIndex是顶点从顶点缓冲区的偏移值
2.有图元类型和图元数量决定
3.从StartIndex开始取
4.如果你明白第一个回答,那这个就不用说了

55

主题

263

帖子

263

积分

中级会员

Rank: 3Rank: 3

积分
263
 楼主| 发表于 2006-2-10 18:42:00 | 显示全部楼层

Re:关于DX8里面DrawIndexedPrimitive的两点疑问

int        WINAPI        My_DrawIndexedPrimitive(int _this,int PrimitiveType,int MinIndex,int NumVertices,int StartIndex,int PrimitiveCount)
{
          ........
        pdev->GetStreamSource(0,&pVB,&Stride);
        pdev->GetIndices(&pIB,&BaseVertexIndex);
        pVB->GetDesc(&vDesc);
        pIB->GetDesc(&iDesc);
我想把本次渲染所用到的Vertics和indics全部拦截下来,但是不知道该从哪个地方开始lock,lock多大的数据。
        pVB->Lock(?,?,&pbuf,0);
pIB->Lock(?,?,&pbuf,0);

132

主题

1341

帖子

1341

积分

金牌会员

Rank: 6Rank: 6

积分
1341
发表于 2006-2-10 19:12:00 | 显示全部楼层

Re:关于DX8里面DrawIndexedPrimitive的两点疑问

全部?当然是0 0 0 0
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2026-1-23 10:43

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表