2012-07-03 7 views
16

Wydaje mi się być czystsze, aby odłączyć przy użyciu glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0) i/lub glBindBuffer(GL_ARRAY_BUFFER, 0) na końcu danego połączenia rysowania. Lubię być pewnym, że nic nie jest związane, co nie powinno być; jednak czy jest w tym dużo uderzenia wydajności?OpenGL, czy warto jawnie rozłączać po wywołaniu remisu?

Czy ktokolwiek rozważy zrobienie tego "czystego" sposobu, aby być w ogóle użytecznym? Czy powinienem po prostu zjechać szybką, niezauważalną trasą &?

(Tak, zdaję sobie sprawę, że związany obiekt bufora zostanie zastąpiony przez następny obiekt bufora, który będzie związany z tym obiektem docelowym, tak czy inaczej - w tej lub następnej aktualizacji renderowania. Ale szybka ludzka reakcja byłaby miła.)

Odpowiedz

12

Usunąłbym czystość podczas kodowania, a następnie zoptymalizuję to wszystko w pobliżu wydania.

Korzyścią jest to, że możesz zreorganizować swój kod bez martwienia się o zmiany stanu, ale wciąż masz zoptymalizowane zmiany stanu na końcu. I będziesz spędzać tylko ułamek czasu na faktycznej optymalizacji.

Jeśli chodzi o wydajność, jeśli masz tysiące dodatkowych niezwiązanych połączeń, będzie trochę nad głową, ale jest mało prawdopodobne, że będzie to wąskie gardło.

Powiązane problemy