6
我只是嘗試使用VBOs渲染第一個紅皮書示例(白色四邊形)。
它適用於即時模式和頂點數組。使用OpenGL的VBO問題
但是,當使用VBOs屏幕保持黑屏。我想我一定錯過了一些重要的東西。
初始化:
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的VBO(不工作):
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頂點數組(工作):
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真棒!我有完全相同的問題,非常感謝你! – 2012-11-11 11:40:31