2012-07-03 6 views
16

Es scheint mir sauberer zu sein, mit glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0) und/oder glBindBuffer(GL_ARRAY_BUFFER, 0) am Ende eines bestimmten Zeichenaufrufs zu lösen. Ich mag es, sicher zu sein, dass nichts gebunden ist, was nicht sein sollte; Wird jedoch viel Leistung davon beeinflusst?OpenGL, lohnt es sich explizit nach einem Remisaufruf zu lösen?

Würde jemand in Betracht ziehen, es "sauber" zu machen, um überhaupt nützlich zu sein? Oder sollte ich einfach die schnelle & schlampige Route runter gehen?

(Ja, mir ist klar, dass das gebundene Pufferobjekt durch das nächste Pufferobjekt ersetzt wird, das auf diesem Ziel gebunden werden soll - ob in diesem oder dem nächsten Renderupdate. Und ja, ich könnte Leistung bringen Aber eine schnelle menschliche Antwort wäre nett.)

Antwort

12

Ich würde für die Sauberkeit beim Codieren loslassen und dann alles in der Nähe von Release optimieren.

Die Vorteile bestehen darin, dass Sie Ihren Code reorganisieren können, ohne sich über Statusänderungen Gedanken machen zu müssen, und dennoch am Ende Statusänderungen optimiert haben. Und Sie werden nur einen Bruchteil der Zeit für die eigentliche Optimierung aufwenden.

In Bezug auf die Leistung, wenn Sie Tausende von zusätzlichen unbind Anrufe haben, gibt es einige Overhead, aber es ist unwahrscheinlich, dass es Ihr Engpass sein wird.