首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >OpengGL ES顶点缓冲区

OpengGL ES顶点缓冲区
EN

Stack Overflow用户
提问于 2010-06-29 09:35:12
回答 1查看 210关注 0票数 1

我在iPad上使用OpenGL中的顶点缓冲区时遇到了休眠的情况:-以30fps渲染一些对象-删除对象并创建新对象(杀死所有实体并生成其他实体)-渲染新对象

FPS会下降到10,持续几秒钟,然后慢慢恢复到30。我使用了一些计时器,我看到渲染时间在几秒钟内从30ms增加到100ms。仅当加载新对象(一帧)且发送到渲染时间恒定时,更新时间才会增加。我认为问题出在顶点缓冲区缓存上。有没有一种方法可以强制缓存而不是等待OpenGL这样做?你对这个问题还有其他的看法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-06-29 09:44:46

另一种可能的选择是不销毁对象并重新创建它们,而是使用glBufferSubData()更新其中的数据。

这可能仍然不能解决缓存问题,因为您仍然将新数据放入缓冲区,但我认为这肯定比销毁和重新创建缓冲区更快。

完成此更改后,您可以尝试的另一件事是尝试使用glBufferData()usage参数,并将其更改为GL_DYNAMIC_DRAWGL_STREAM_DRAW。这些都应该给OpenGL一个提示,缓冲区正在频繁地改变,也许这将促使它适当地优化缓存。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3139433

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文