Я работаю над личным проектом Java OpenGL (JOGL), и я использую некоторые пользовательские объекты с отдельными функциями рисования и вершинами.Должен ли я использовать несколько glDrawArrays() или собрать все вершины в один большой вызов glDrawArrays?
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?
Я не уверен, что вы имеете в виду под «списком». ArrayList или VertexBufferObject, или я пропущу здесь пункт? – JulenissensHjelper
Мои приличия, если это было непонятно ... Их называют «CallList» или «DisplayList». http://www.swiftless.com/tutorials/opengl/displaylists.html – Erwald
Хорошо, спасибо. Я посмотрю на это. – JulenissensHjelper