c – OpenGL体素引擎速度慢

前端之家收集整理的这篇文章主要介绍了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&C++相关文章