Acabo de intentar renderizar el primer ejemplo de redbook (el Quad blanco) usando VBO.
Funciona bien con modo inmediato y matrices de vértices.Problema al usar el VBO de OpenGL
Pero al usar VBO, la pantalla permanece en negro. Creo que me he perdido algo importante.
init:
unsigned int bufIds[2];
glGenBuffers(2, bufIds);
GLfloat vertices[] = {
0.25, 0.25, 0.0,
0.75, 0.25, 0.0,
0.75, 0.75, 0.0,
0.25, 0.75, 0.0
};
glBindBuffer(GL_ARRAY_BUFFER, bufIds[0]);
glBufferData(GL_ARRAY_BUFFER, 12, vertices, GL_STATIC_DRAW);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glClearColor(0, 0, 0, 1);
glColor3f(1, 1, 1);
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
renderloop para VBO (no funciona):
glClear(GL_COLOR_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, bufIds[0]);
glVertexPointer(3, GL_FLOAT, 0, 0);
glDrawArrays(GL_QUADS, 0, 12);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glDisableClientState(GL_VERTEX_ARRAY);
renderloop para las matrices de vértices (de trabajo):
glClear(GL_COLOR_BUFFER_BIT);
glEnableClientState(GL_VERTEX_ARRAY);
glBindBuffer(GL_ARRAY_BUFFER, 0);
glVertexPointer(3, GL_FLOAT, 0, vertices);
glDrawArrays(GL_QUADS, 0, 12);
glDisableClientState(GL_VERTEX_ARRAY);
+1 impresionante! Tenía exactamente el mismo problema, ¡muchas gracias! –