为了更新我的统一缓冲区对象,我使用glBufferSubData。将glBufferSubDataglMapBufferglUnmapBuffer一起使用会更快吗?

最佳答案

关于glMapBuffer的好处是,您不需要先将数据复制到数组中,然后使用glBufferSubData填充opengl缓冲区。使用glMapBuffer,您可以将数据直接复制到内存的一部分,必要时opengl会将其提取到GPU。从我的角度来看,当您要填充将要经常更新的大缓冲区时,glMapBuffer应该会更快。同样,如何将数据复制到glMapBufferglUnmapBuffer之间的缓冲区中也很重要。

如果向我们显示您正在使用glMapBuffer的代码以及数据的大小,那么我们可以轻松地进行判断。无论如何,最终的测量结果可以告诉您哪个更好。

更新: OpenGL Insight Asynchronous Buffer Transfer Chapter。在本章中,implicit synchronizationglMapBuffer函数的glSubBufferData可能对您很有趣。

10-06 14:46