游戏开发论坛

 找回密码
 立即注册
搜索
查看: 5806|回复: 10

在d3d9中如何动态的创建顶点缓存

[复制链接]

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
发表于 2006-10-23 17:09:00 | 显示全部楼层 |阅读模式
如果事先不知道要绘制的顶点的个数,必须动态地创建顶点缓存,即是说必须在游戏循环中使用CreateVertexBuffer(),我改了三个地方:
1、CreateVertexBuffer()的第二个参数改为D3DUSAGE_DYNAMIC。
2、CreateVertexBuffer()的第四个参数改为D3DPOOL_DEFAULT。
3、lock()的第四个参数改为D3DLOCK_DISCARD
但是仍然不行,运行程序后,fps一直降低,最后弹出对话框提示出错。
那位高手给点提示,谢谢!

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-23 19:57:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

你有没有release啊。

35

主题

370

帖子

376

积分

中级会员

Rank: 3Rank: 3

积分
376
发表于 2006-10-23 22:31:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

也可以不用反复的创建缓冲区释放缓冲区,你可以先创建一个较大的,每次使用时琐定缓冲区然后填充数据,然后根据填充数据的多少进行render

180

主题

3511

帖子

3520

积分

论坛元老

Rank: 8Rank: 8

积分
3520
发表于 2006-10-24 00:58:00 | 显示全部楼层

呵呵

还是用 OpenGL 吧。
不用 BUFFER

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-24 01:45:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

楼上的又是在开玩笑吧?
自己没学会就开始到处教人....
OpenGL不用buffer,你给我画几万个面给我看看 .....

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2006-10-24 09:40:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

请问xpertsoft如何释放掉已建立的顶点缓存,我没有查到这个命令。
我对顶点缓存的概念还有些模糊,它是不是和内存是一个性质的东西(但是显卡可以直接读取),如果是的话,按smile636的做法,一开始建立一个大的(比如10000)是不是对效率有很大的影响,请各位给个解释或推荐些文章。

36

主题

1047

帖子

1147

积分

金牌会员

Rank: 6Rank: 6

积分
1147
发表于 2006-10-24 10:28:00 | 显示全部楼层

Re: Re:在d3d9中如何动态的创建顶点缓存

playgameplay: Re:在d3d9中如何动态的创建顶点缓存

请问xpertsoft如何释放掉已建立的顶点缓存,我没有查到这个命令。
我对顶点缓存的概念还有些模糊,它是不是...

每桢动态创建、释放性能更低。建议看一下D3D 文档中性能优化的部分。

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-24 11:00:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

创建一个放那里别动。分配足够大的buffer。
比如你要绘制粒子,你不知道粒子个数,但是你可以规定一个最大数目,比如是2000个。这个数在粒子编辑器里是可以调节的。。。。

1

主题

3

帖子

0

积分

新手上路

Rank: 1

积分
0
 楼主| 发表于 2006-10-24 11:10:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

请问释放顶点缓存的命令是什么?

89

主题

4036

帖子

4132

积分

论坛元老

Rank: 8Rank: 8

积分
4132
发表于 2006-10-24 11:50:00 | 显示全部楼层

Re:在d3d9中如何动态的创建顶点缓存

pVB-Release
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2026-1-22 06:29

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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