游戏开发论坛

 找回密码
 立即注册
搜索
查看: 4268|回复: 11

我发现顶点缓冲区有一个64K限制,该如何解决?

[复制链接]

16

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
发表于 2008-3-30 10:44:00 | 显示全部楼层 |阅读模式
如题,我建设立顶点缓冲区和索引缓冲区,设置200*300个点的顶点缓冲区正确显示,而200*400个点就不正确显示,最终把范围缩小到65536个点可以正确显示,再显示下一个点就成了显示第一个点,是这样吗?有什么好的解决办法或是代替方法?
我用的是DrawIndexedPrimitive(D3DPT_TRIANGLESTRIP,......);的方式画了网格,不超过64K个点就可以,超过就不行.我截了图的.
这一张是正确的点
点此看正确显示的网格
这一张是显示不正确的点,超出64K的点又开始与第一个点连接,所以显示不正确了,出现了一些斜线:点此看显示不正确的网格

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2008-3-30 11:41:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

format参数加上D3DFMT_INDEX32

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-3-30 13:21:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

超过16位索引64K点的限制不是那么容易的事。如果需要,可以将索引改成32bit的格式,如楼上所述。

35

主题

1735

帖子

1739

积分

金牌会员

Rank: 6Rank: 6

积分
1739
QQ
发表于 2008-3-30 14:08:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

还需要显卡的支持。

16

主题

43

帖子

43

积分

注册会员

Rank: 2

积分
43
 楼主| 发表于 2008-3-30 16:47:00 | 显示全部楼层

Re: Re:我发现顶点缓冲区有一个64K限制,该如何解决?

神秘的猫: Re:我发现顶点缓冲区有一个64K限制,该如何解决?

format参数加上D3DFMT_INDEX32

我看到了,我的是D3DFMT_INDEX16,原来是这样啊,不过只改动了数字,把16改成32,结果窗口背景全黑,里面什么都没有了,这又是怎么回事?是楼上说的显卡问题吗?我的显卡是集成,可魔兽争霸玩得很流畅啊.设成128M也一样

22

主题

309

帖子

353

积分

中级会员

Rank: 3Rank: 3

积分
353
QQ
发表于 2008-3-30 17:53:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

只要不是老掉牙的显卡都应该支持的..用GetDeviceCaps瞧瞧
另外..16位lock的是一个WORD指针.32位需要lock一个DWORD指针

59

主题

984

帖子

1200

积分

金牌会员

Rank: 6Rank: 6

积分
1200
发表于 2008-3-31 09:32:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

你用的什么显卡,很多intel的集成显卡都只支持16位索引

201

主题

1437

帖子

1963

积分

金牌会员

Rank: 6Rank: 6

积分
1963
QQ
发表于 2008-3-31 19:44:00 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

121

主题

2029

帖子

2034

积分

金牌会员

Rank: 6Rank: 6

积分
2034
QQ
发表于 2008-3-31 20:10:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?


超过16位索引64K点的限制不是那么容易的事。如果需要,可以将索引改成32bit的格式,如楼上所述。
-----------改为32bit的格式。注意这点,不是改个Enumuration就能搞定的,索引类型也从short改成int

5

主题

41

帖子

169

积分

注册会员

Rank: 2

积分
169
发表于 2008-4-1 21:09:00 | 显示全部楼层

Re:我发现顶点缓冲区有一个64K限制,该如何解决?

到64k时先把顶点缓冲区渲染了再重新清零.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-16 21:48

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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