在opengl 2中渲染10000多个动态多维数据集

时间:2012-12-10 12:48:46

标签: java opengl opengl-es-2.0 lwjgl jogl

如何在opengl 2(JOGL)中有效地绘制大量可移动的立方体?我是否必须构建一个包含所有立方体副本并在单个调用中绘制的巨大VBO / VAO?或者为每个通过MVP矩阵的立方体实例调用glDraw以便能够移动特殊立方体? 当然立方体共享相同的纹理,顶点,normak等。 我需要在绘制10000+时获得最佳性能,但有可能改变粒子立方体的位置

2 个答案:

答案 0 :(得分:5)

对所有立方体几何体,法线等使用单个vbo。

使用glsl着色器,使用来自属性VBO的数据转换多维数据集。 (glVertexAttribPointer等)。

答案 1 :(得分:1)

如果你单独绘制每个立方体,你会看到非常高的批量计数,这将非常糟糕。

使用一个大VBO将是最快的,但如果你需要经常更改几何体,那就不好了。您可以将几何体分成几个批次(例如,1000个/批次)。

也许将实例化或伪造的实例视为另一种选择。 http://www.gamerendering.com/2008/10/21/instancing/