游戏开发论坛

 找回密码
 立即注册
搜索
查看: 2687|回复: 2

DX9的D3DUSAGE_DYNAMIC到底怎么用?

[复制链接]

9

主题

26

帖子

62

积分

注册会员

Rank: 2

积分
62
发表于 2013-1-5 00:23:13 | 显示全部楼层 |阅读模式
我在写好一个粒子系统的时候发现我创建顶点缓存是用的D3DUSAGE_WRITEONLY加D3DPOOL_MANAGED的,然后我意识到粒子系统应该使用D3DUSAGE_DYMAMIC加D3DPOOL_DEFAULT的,改成这样过后发现原本还算实时的粒子系统的渲染结果变成了巨卡的状态了,这只是一个demo,结果最后的效果完全达不到实时的要求。请问这个D3DUSAGE_DYNAMIC到底应该啊怎么用?

0

主题

398

帖子

577

积分

高级会员

Rank: 4

积分
577
发表于 2013-1-5 10:16:53 | 显示全部楼层
打开D3D 的 Debug 模式,看输出信息.

9

主题

26

帖子

62

积分

注册会员

Rank: 2

积分
62
 楼主| 发表于 2013-1-5 12:20:35 | 显示全部楼层
嗯,谢谢,不过我还是解决了,目前的原因是我使用的集成显卡,切换成高性能显卡就好了。我再问一个问题,在粒子系统渲染粒子时,分配的粒子数A和分配的顶点数B不匹配时会不会出现谁制约谁的情况?我现在是当A>B时只能渲染B个粒子,当A<B时能渲染A个粒子,但我觉得顶点缓存是不停地在Discard和Noverwrite的,即使A>B的时候,一次渲染应该也能渲染A个粒子才对,不知道是不是我的程序的原因还是本来就是这么回事?
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-6-11 08:19

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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