小编nau*_*_rs的帖子

如何更改 VBO 中的数据?

我正在尝试使用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 不会绑定到任何其他内容。

java opengl 3d buffer lwjgl

3
推荐指数
1
解决办法
750
查看次数

标签 统计

3d ×1

buffer ×1

java ×1

lwjgl ×1

opengl ×1