为了更新我的统一缓冲区对象,我使用glBufferSubData。是使用glBufferSubData还是glMapBuffer使用起来更快glUnmapBuffer?
好处glMapBuffer是您不需要先将数据复制到数组中,然后再用于glBufferSubData填充 opengl 缓冲区。使用glMapBuffer,您可以将数据直接复制到 opengl 将在必要时提取到 GPU 的部分内存中。从我的角度来看,glMapBuffer当你想要填充一个经常更新的大缓冲区时应该更快。此外,您是如何将数据复制到之间的缓冲区glMapBuffer和glUnmapBuffer也很重要。
如果向我们展示您正在使用的代码glMapBuffer以及数据有多大,那么我们可以更容易地判断。无论如何,最终测量结果可以告诉您哪个更好。
更新: OpenGL Insight 异步缓冲区传输章节。在本章中,implicit synchronizationofglMapBuffer和glSubBufferData函数可能会让您感兴趣。