16

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

有人会认为这样做是“干净”的方式有用吗?还是我应该走快速而草率的路线?

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

4

1 回答 1

12

我会在编码时取消绑定以保持清洁,然后在发布时对其进行优化。

好处是你可以重新组织你的代码而不用担心状态变化,但最终仍然有优化的状态变化。而且您只会在实际优化上花费一小部分时间。

就性能影响而言,如果您有数千个额外的 unbind 调用,将会有一些开销,但它不太可能成为您的瓶颈。

于 2012-07-03T23:25:10.233 回答