我正在使用C++和OpenGL(àlaMinecraft)制作一个体素引擎,并且使用ATI X1600无法在我的3GHz上获得不错的fps ...我完全没有想法.
当我在屏幕上有大约12000个立方体时,它会降到20fps以下 - 可悲.
到目前为止,我的优化是:视锥体剔除,背面剔除(通过OpenGL的glEnable(GL_CULL_FACE)),引擎只绘制可见面(当然除了剔除面)并且它们在八叉树中.
我试过VBO,我不喜欢它们,它们不会显着增加fps.
Minecraft的引擎如何如此之快......我在10000立方体中挣扎,而Minecraft可以在更高的fps下轻松绘制.
有任何想法吗?
@genpfault:我分析连通性,只为外部可见表面生成面.VBO有一个我glTranslate()d的立方体
我不是OpenGL的专家,但据我所知,这将节省很少的时间,因为你仍然需要将每个立方体发送到卡上.
相反,你应该做的是为所有外部可见表面生成面,将其放在VBO中,然后将其发送到卡片并继续渲染VBO直到几何体发生变化.这可以节省您的卡实际等待处理器向其发送几何信息的大部分时间.
| 归档时间: |
|
| 查看次数: |
9597 次 |
| 最近记录: |