Hola a todos.
He estado intentando encontrar información sobre cómo usar Triple Buffering con OpenGL bajo Windows y no he encontrado nada. En MSDN he visto la función wglSwapLayerBuffers, pero no me queda muy claro si es la adecuada para el triple buffering o es su finalidad (no lo menciona por ningún lado, además es engorrosa de utilizar).
¿Alguien sabe cómo hacer Triple Buffering con OpenGL bajo Windows?
Muchas gracias a todos.
Un saludo.
Ruben3d
Y para que quieres tres buffers? no querras usar el stencil?
Hola.
El uso de tres buffers aprovecha mejor el tiempo. Mientras que con dos la situación es ésta:
- Pinto en el backbuffer
- Copio el contenido a la memoria de video.
y no puedo pintar mientras se copia a la memoria de video, con tres puedo:
- Pinto en el backbuffer A.
- Copio a la memoria de video el backbuffer A mientras pinto en el B.
- Copio a la memoria de video el B mientras pinto en el A.
- Así sucesivamente, alternando entre A y B.
De esta forma puedo pintar mientras se está copiando a la memoria de video.
Sé que se puede hacer con DirectX, pero ni idea de cómo hacerlo con OpenGL. A ver si alguien me puede ayudar.
Un saludo.
Ruben3d
OGL no soporta triple buffering en la especificacion, de momento se lo tienen q currar los drivers.
OGL2 soportara triple buffering y posiblemente n-buffering.
Creo q ATI esta mas puesta y se puede habilitar, nVidia no hace los deberes.
PD: En mi voodoo 3 se podia forzar triple buffering, la hecho de menos :(
Podía haber enloquecido buscando cómo se hace.
Muchas gracias por la respuesta.
Un saludo.
Ruben3d
Gracias por la info Ruben3D, parece interesante :)