我正在开发一个个人的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调用中,即将所有顶点收集到一个大数组中并进行绘制吗?这对性能和帧率有很大影响吗?