của OpenGL Tôi vừa cố gắng hiển thị ví dụ sổ đỏ đầu tiên (Quad trắng) bằng cách sử dụng VBO.
Nó hoạt động tốt với chế độ ngay lập tức và mảng đỉnh.Sự cố khi sử dụng VBO
Nhưng khi sử dụng VBO, màn hình vẫn đen. Tôi nghĩ rằng tôi đã phải bỏ lỡ một cái gì đó quan trọng.
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 cho VBO (không hoạt động):
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 cho mảng đỉnh (làm việc):
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 Awesome! Tôi đã có chính xác cùng một vấn đề, cảm ơn bạn rất nhiều! –