最近我開始學習OpenGL,並開始學習它的新資產。一段時間以來,我一直試圖與VBO合作,從頂點數組中繪製一個簡單的立方體。我很難渲染它並理解函數中的一些參數。它不會拋出任何錯誤,但我認爲沒有任何錯誤。C++/OpenGL - 繪製立方體VBO
float cubeVertPoints[72]; //An array containing the vertex points
這裏是我的VBO初始化
void loadBufferData()
{
glGenBuffers(1, &cubeVBO);
glBindBuffer(GL_ARRAY_BUFFER, cubeVBO);
glBufferData(GL_ARRAY_BUFFER, sizeof(cubeVertPoints[0])*3, &cubeVertPoints[0], GL_STATIC_DRAW);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(cubeVertPoints[0])*3, (void*)sizeof(GL_FLOAT));
}
繪圖
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(-ratio, ratio, -1.f, 1.f, 1.f, -1.f);
glMatrixMode(GL_MODELVIEW);
glLoadIdentity();
glBindBuffer(GL_ARRAY_BUFFER, cubeVBO);
glEnableVertexAttribArray(0);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, sizeof(cubeVertPoints[0])*3, (void*)sizeof(GL_FLOAT));
glDrawArrays(GL_TRIANGLES, 0, 1);
glDisableVertexAttribArray(0);
glBindBuffer(GL_ARRAY_BUFFER, 0);
您可能有不正確的矩陣。 ModelView作爲身份不正確。另外,停止使用固定管道。它在新的GL中已被棄用,您聲稱它的目標。 –