Necesito renderizar muchas (decenas de miles) imágenes fuera de la pantalla con OpenGL.
Me estoy ejecutando bajo Windows y usando QT como marco. la solución solo puede ser windows, realmente no importa.OpenGL: representación fuera de pantalla rápida
De lo que he encontrado a través de Google hay una serie de opciones para hacer esto This article que parece bastante anticuado sugerir algunas de las formas, de los cuales los más relevantes son:
- específico de Windows - Uso
CreateDIBSection
y de alguna manera vinculan la textura a ella. - Utilice la extensión pbuffers que parece ser compatible con mi tarjeta.
This thread (mensaje 6) sugiere una forma específica de QT de hacer esto utilizando QGLWidget::renderPixmap
Mi pregunta es - ¿cuál sería la forma más rápida? pbuffers parece ser la apuesta más segura, ya que se garantiza que se realizará en el hardware pero no está utilizando el método CreateDIB, también pasa por el hardware. ¿Qué hay del método QT? parece que hay un problema de creación de contexto con este. seguramente no me gustaría crear un nuevo contexto para cada imagen que creo.
¿Alguien tiene alguna buena experiencia con esto?
EDITAR: Contestación del comentario -
tengo una escena constante que no cambia en absoluto y estoy haciéndolo desde muchos puntos de vista diferentes. Por ahora, las imágenes vuelven al usuario y serán procesadas por la CPU. Posiblemente en el futuro se procesarán en la GPU.
¿De dónde vienen las imágenes? ¿Estás representando la misma escena una y otra vez, tal vez desde diferentes puntos de vista? ¿O estás cargando textura después de la textura del disco? ¿Y a dónde van las imágenes? En un cálculo de GPU? En el disco? Tu respuesta depende de los detalles. – ejgottl
la respuesta a la pregunta – shoosh
Tal vez este enlace puede ser útil, aquí utilicé objetos framebuffer con 'QGLFrameBuffer' http://stackoverflow.com/questions/19934102/qglwidget-and-fast-offscreen-rendering/ – linello