2012-07-03 13 views
16

Mi sembra più pulito per me di separare utilizzando glBindBuffer(GL_ELEMENT_ARRAY_BUFFER, 0) e/o glBindBuffer(GL_ARRAY_BUFFER, 0) al termine di una determinata chiamata pareggio. Mi piace essere sicuro che nulla sia vincolato a ciò che non dovrebbe essere; tuttavia, c'è un grande impatto sulle prestazioni?OpenGL, vale la pena in modo esplicito non vincolante dopo una chiamata pareggio?

Qualcuno potrebbe considerare il modo "pulito" di essere utile? O devo solo andare giù il digiuno & percorso sciatta?

(Sì, sono a conoscenza del fatto che l'oggetto buffer associato verrà sostituito dal successivo oggetto buffer da associare a tale destinazione, indipendentemente dal fatto che si tratti di questo aggiornamento di rendering successivo. test. Ma una risposta umana rapida sarebbe bello.)

risposta

12

avrei svincolare per la pulizia durante la codifica e quindi ottimizzare via tutto nei pressi di rilascio.

I vantaggi sono che è possibile riorganizzare il codice senza preoccuparsi di cambiamenti di stato, ma hanno ancora cambiamenti di stato ottimizzato alla fine. E ti verrà spesa solo una frazione del tempo sull'ottimizzazione vero e proprio.

In termini di risultati di prestazioni, se si dispone di migliaia di chiamate aggiuntive in unbind ci sarà un po 'di spese generali, ma è improbabile che sarà il collo di bottiglia.