Hola:
No se hasta que punto este es el lugar idoneo para hacer esta pregunta pero, ahi va y espero que alguien me pueda ayudar.
Estoy trabajando con Directx y Openscenegraph àra capturar de un dispositivo digital ( en la fase de pruebas trabajo con una webcam 640 x 480 para la plicacion ereal se usara una camara 800 x 600 ), capturo con el filtro framegrabber y luego recojo la imagen patra colocarla como fondo ( un plano en vertical que ocupa toda la pantalla en proyeccion ortografica ), mi problema es que pierdo mucho tiempo en el registro de la textura. lo que actualmente hago es indicar la textura que se va a usar:
// Capturar e buffer con la imagen
pFrame = capture->getFrame();
// Crear y Registrar la textura
background->setImage(camWindth,camHeight,0,GL_RGB, GL_BGR, GL_UNSIGNED_BYTE, pFrame, osg::Image::NO_DELETE,4);
// Aplicarla
backgroundTexture->setImage(background);
Y me olvido de ella, hasta el refresco que lo hago de la siguiente manera:
// Vuelvo a pedir l aimagen que queda almacenada en el buffer comun de directx y osg
capture->grabFrame();
// Realizar el refresco de la misma
background->dirty();
Este ultimo paso ->dirty(), creo que vuelve a registrar la textura ( lo mas costoso de toda programacion grafica ) por lo que tengo un rendimiento pobre a 640 x 480, y me temo que peor aun a 800 x 600, la aplicacion debe correr en tiempo real y ademas esta el inconveniente de que debe tener la resolucion que os comento...
¿ Es posible hacer una carga optimizada de texturas, es posible mediante osg cargar las texturas directamente en hardware ? como lo hariais ??
Gracias.