上述之间是否存在差异,因为它们似乎都具有相同的效果,我的假设是un-map缓冲区方法针对un映射进行了更优化,而不是将缓冲区绑定到0以取消映射
答案 0 :(得分:3)
上述之间是否存在差异,因为它们似乎都具有相同的效果,
它们之间不仅有一些区别,它们完全不同。
glBindBuffer un- /选择以下OpenGL操作引用的缓冲区对象。
glUnmapBuffer是glMapBuffer的补充。 glMapBuffer将缓冲区映射到主机地址空间,即在映射缓冲区之后,可以通过指针访问其内容。 glUnmapBuffer释放此映射,即缓冲区内容从主机进程地址空间中消失。
因为两个功能都是正交绑定状态对地址空间映射没有影响,并且地址空间映射对绑定状态没有影响。
答案 1 :(得分:2)
不,它们没有相同的效果。绑定缓冲区0只是从一些绑定目标解除绑定缓冲区,它不会取消映射它。缓冲区映射仍然有效,可以使用。您还可以同时映射多个缓冲区。 glUnmapBuffer()
只需取消映射当前绑定到目标点的缓冲区。