我正在尝试使用glMapData()和glBufferSubData()方法来修改现有的 VBO。
我目前的代码如下:
public void updateBufferData(int vaoID, int vboID, long index, int value){
GL30.glBindVertexArray(vaoID); //bind VAO
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, vboID); //bind VBO
IntBuffer buffer = storeDataInIntBuffer(new int[]{value}); //I'm not sure if I should do it like this?
GL15.glBufferSubData(vboID, index, buffer); //set data
GL15.glBindBuffer(GL15.GL_ARRAY_BUFFER, 0); //unbind VBO
GL30.glBindVertexArray(0); //unbind VAO
}
Run Code Online (Sandbox Code Playgroud)
但是,当我调用此方法时,它似乎对 VBO 没有任何影响。渲染的对象仍然相同。
我很确定在updateBufferData()调用该方法时,VBO/VAO 不会绑定到任何其他内容。