微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c – OpenGL体素引擎速度慢

我正在使用C和OpenGL(我的minecraft)制作一个体素引擎,并且使用ATI X1600无法在我的3GHz上获得不错的fps …我完全没有想法.

当我在屏幕上有大约12000个立方体时,它会降到20fps以下 – 可悲.

到目前为止,我的优化是:视锥体剔除,背面剔除(通过OpenGL的glEnable(GL_CULL_FACE)),引擎只绘制可见面(当然除了剔除面)并且它们在八叉树中.

我试过VBO,我不喜欢它们,它们不会显着增加fps.

minecraft的引擎如何如此之快……我在10000立方体中挣扎,而minecraft可以在更高的fps下轻松绘制.

有任何想法吗?

解决方法

您应该对代码进行概要分析,以确定应用程序中的瓶颈是否在cpu或GPU上.例如,你的剔除/ octtree算法可能很慢,在这种情况下它根本不是一个OpenGL问题.

我还会计算你在每一帧上绘制的立方体数量,并在屏幕上显示.这样您就知道您的剔除程序按预期工作了.

最后你没有提到你的立方体是否有纹理.尝试使用较小的纹理或禁用纹理,并查看帧速率增加了多少.

gDEBugger一个很棒的工具,可以帮助您找到OpenGL的瓶颈.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐