【发布时间】:2017-10-03 19:21:24
【问题描述】:
我见过很多程序在初始化阶段这样做(伪代码):
glGenVertexArrays(vao)
glBindVertexArray(vao)
glGenBuffers(vbo)
glBindBuffer(GL_ARRAY_BUFFER, vbo)
glBufferData(into the vbo)
glVertexAttribPointer(instruct the vao on vbo's memory organization)
glBindBuffer(GL_ARRAY_BUFFER, 0); // Unbind VBO
glBindVertexArray(0); // Unbind VAO
glGenBuffers(vbo for indices)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, vbo for indices)
glBufferData(populate indices vbo)
glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0); // Unbind vbo for indices
这是正确的做法吗? VAO 是否还存储对索引 vbo 的引用,以便我可以在索引的 vbo 也初始化后解除绑定 vao(并避免在绘图阶段完全绑定索引的 vbo)?
【问题讨论】:
标签: c++ opengl graphics vbo vao