OpenGL,在绘制调用后是否值得明确取消绑定?

Eng*_*eer 16 opengl-es vbo opengl-es-2.0

在给定的绘图调用中解除使用glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0)和/或glBindBuffer(GL_ARRAY_BUFFER, 0)结束时,对我来说似乎更清晰.我喜欢确定什么都不应该是不应该的; 但是,这有很大的性能影响吗?

有人会认为这样做是"干净"的方式吗?或者我应该沿着快速而漫长的路线走下去?

(是的,我知道绑定的缓冲区对象将被下一个要绑定在该目标上的缓冲区对象替换 - 无论是在这个还是下一个渲染更新中.是的,我可以进行性能测试.但是快速的人类反应会很好.)

Rob*_*ani 12

我会在编码时解除清洁,然后在释放后将其全部优化.

好处是您可以重新组织代码而不必担心状态更改,但最终仍然优化了状态更改.而且你只会花一点时间在实际的优化上.

在性能损失方面,如果你有数千个额外的非绑定调用会有一些开销,但它不太可能是你的瓶颈.