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的瓶颈.

相关文章

本程序的编译和运行环境如下(如果有运行方面的问题欢迎在评...
水了一学期的院选修,万万没想到期末考试还有比较硬核的编程...
补充一下,先前文章末尾给出的下载链接的完整代码含有部分C&...
思路如标题所说采用模N取余法,难点是这个除法过程如何实现。...
本篇博客有更新!!!更新后效果图如下: 文章末尾的完整代码...
刚开始学习模块化程序设计时,估计大家都被形参和实参搞迷糊...