我正在开发一个个人 Java OpenGL (JOGL) 项目,并且正在使用一些具有单独绘制函数和顶点的自定义对象。
public class Cube extends PhysicalObject {
public void draw(GL gl) {
gl.glColor3f(1.0f, 1.0f, 0.0f);
gl.glEnableClientState(GL.GL_VERTEX_ARRAY); // Enable Vertex Arrays
gl.glEnableClientState(GL.GL_TEXTURE_COORD_ARRAY);
gl.glVertexPointer(3, GL.GL_FLOAT, 0, vertices);
gl.glTexCoordPointer(2, GL.GL_FLOAT, 0, texCoords);
gl.glDrawArrays(GL.GL_QUADS, 0, 4*6);
gl.glDisableClientState(GL.GL_VERTEX_ARRAY);
gl.glDisableClientState(GL.GL_TEXTURE_COORD_ARRAY);
}
然后我遍历一大堆这些立方体,调用它们的绘制函数。我的问题如下:我是否应该将所有顶点收集到一个大 glDrawArrays 调用,即将所有顶点收集到一个大数组并绘制它?它对性能和fps有很大帮助吗?