我已经定义了一个VBO,其中有一部分顶点将被更新 定期由一个线程。 创建VBO并填充其缓冲区后,我检索了指针 到我要更改的部分。
在更改内容之前,我应该每次调用glMapBufferRange吗? 我的阵列? 该文档说,使用后必须将其取消映射,这意味着它无效。
我的理解是,以下伪代码必须出现在我的更新线程中
glBindBuffer(GL_ARRAY_BUFFER, id);
glBufferData(GL_ARRAY_BUFFER, size, null, GL_STATIC_DRAW);
ptr = glMapBufferRange( GL_ARRAY_BUFFER, 0, size, GL_MAP_WRITE_BITGL_MAP_INVALIDATE_BUFFER_BIT);
-> populate buffer
glUnmapBuffer(GL_ARRAY_BUFFER);
我是正确的,这是操纵VBO部分的最佳方法吗?