为了更新我的统一缓冲区对象,我使用glBufferSubData
。将glBufferSubData
或glMapBuffer
与glUnmapBuffer
一起使用会更快吗?
最佳答案
关于glMapBuffer
的好处是,您不需要先将数据复制到数组中,然后使用glBufferSubData
填充opengl缓冲区。使用glMapBuffer
,您可以将数据直接复制到内存的一部分,必要时opengl会将其提取到GPU。从我的角度来看,当您要填充将要经常更新的大缓冲区时,glMapBuffer
应该会更快。同样,如何将数据复制到glMapBuffer
和glUnmapBuffer
之间的缓冲区中也很重要。
如果向我们显示您正在使用glMapBuffer
的代码以及数据的大小,那么我们可以轻松地进行判断。无论如何,最终的测量结果可以告诉您哪个更好。
更新: OpenGL Insight Asynchronous Buffer Transfer Chapter。在本章中,implicit synchronization
和glMapBuffer
函数的glSubBufferData
可能对您很有趣。