2011-02-05 9 views
6

Me preguntaba si se recomienda eliminar todas las llamadas opengl redundantes.Haciendo llamadas OpenGL redundantes

Por ejemplo, debería hacer algo así (envuelto en una función):

if(foobuffer != boundbuffer) { 
    glBindBuffer(GL_BAR_BUFFER, foobuffer); 
    boundbuffer = foobuffer; 
} 

O es el conductor haciendo automáticamente estas cosas y esto es en realidad una redundancia reduntant-Check?

Respuesta

5

Probablemente deberías evitarlo. Here (específicamente 22.040, tendrá que desplazarse hacia abajo de la página ya que no tiene ancla), se señala que las llamadas redundantes generalmente son malas prácticas, aunque algunas implementaciones intentan minimizar el impacto.

Las herramientas como gDEBugger también se pueden usar para ayudarlo a localizar dónde puede realizar llamadas redundantes, si se encuentra en una situación en la que no está seguro de cuántas puede estar haciendo en su código base.

3

Me acaban eliminando muchas de estas llamadas desde una aplicación para Android, por lo que puedo decir de primera mano que es importante en esa plataforma (en esa versión específica del sistema operativo y hardware). Aumentó la velocidad de fotogramas en unos pocos fps, yo diría alrededor del 5-10% de ganancia.

Cuestiones relacionadas