GLuint vao;
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
glEnableVertexAttribArray(0);
vbo.bind(GL_ARRAY_BUFFER);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glDisableVertexAttribArray(0);
ibo.bind(GL_ELEMENT_ARRAY_BUFFER); //where do I put this?
glBindVertexArray(0);
while (glfwGetWindowParam(GLFW_OPENED)) {
glClear(GL_COLOR_BUFFER_BIT);
glBindVertexArray(vao);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, 0);
glfwSwapBuffers();
}
私がVAOを理解する方法は、vaoハンドルを作成し、このようにバインドすることです
glGenVertexArrays(1, &vao);
glBindVertexArray(vao);
これで、VAO にこれら 3 つのコマンドを入力できます
vbo.bind(GL_ARRAY_BUFFER);
glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 0, 0);
glDisableVertexAttribArray(0);
ここで独自の vbo クラスを使用したことに注意してください。
そして、VAOを次のように閉じます
glBindVertexArray(0);
そして、それをレンダーループにロードするだけです
glBindVertexArray(vao);
glDrawElements(GL_TRIANGLES, 3, GL_UNSIGNED_INT, 0);
しかし、出力が得られません。
今、それは私のインデックス付き配列と関係があると思います。(ibo) IBO で VAO を使用するにはどうすればよいですか?