glUnmapBuffer(GL_ARRAY_BUFFER) vs glBindBuffer(GL_ARRAY_BUFF

glUnmapBuffer(GL_ARRAY_BUFFER) vs glBindBuffer(GL_ARRAY_BUFFER,0)

本文关键字:GL ARRAY glBindBuffer BUFF vs glUnmapBuffer BUFFER      更新时间:2023-10-16

上述两者之间是否存在差异,因为它们似乎都具有相同的效果,我的假设是unmap缓冲区方法更适合于unmapping,而不是将缓冲区绑定到0以取消映射

这两者之间有什么区别吗?因为它们看起来都有相同的效果,

它们之间不仅有一些不同,它们做的事情完全不同。

  • glBindBuffer un-/选择下面OpenGL操作引用的缓冲对象

  • glUnmapBuffer是glMapBuffer的补充。glMapBuffer将缓冲区映射到主机地址空间,也就是说,在映射缓冲区之后,它的内容可以通过指针访问。glUnmapBuffer释放这个映射,即缓冲区的内容从主机进程地址空间中消失。

由于两个功能是正交的,绑定状态对地址空间映射没有影响,而地址空间映射对绑定状态没有影响。

不,它们没有相同的效果。绑定缓冲区0只是从某个绑定目标上解除缓冲区的绑定,它没有解除它的映射。缓冲区映射仍然有效,可以使用。您还可以同时映射多个缓冲区。glUnmapBuffer()只是解除当前绑定到目标点的缓冲区的映射。