1

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

4

2 回答 2

5

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

使用 glsl 着色器,该着色器使用来自属性 VBO 的数据转换立方体。(glVertexAttribPointer 等)。

于 2012-12-10T13:41:58.327 回答
1

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

使用一个大的 VBO 将是最快的,但如果您需要大量更改几何形状,那就不好了。您可以将几何图形分成几批(例如,每批 1000 个)。

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

于 2012-12-10T13:01:51.200 回答