Pergunta
Eu estou tentando converter um openGL [edit: (?) "Cartão que eu desenhei" :) thx descontrair] contendo um monte de texturas (nada em movimento) em um arquivo PNG que eu posso usar em outra parte do quadro Eu estou trabalhando com. Existe uma biblioteca C ++ que faz isso?
Obrigado!
Solução
Se você simplesmente significa "dar uma cena renderizada por OpenGL e guardá-lo como uma imagem," então é bastante simples. Você precisa ler a cena com glReadPixels () e, em seguida, converter os dados para um formato de imagem como PNG ( http://www.opengl.org/resources/faq/technical/miscellaneous.htm ).
Existem também as formas mais eficientes de alcançar este objectivo, como o uso FBO s. Em vez de tornar a cena diretamente no framebuffer, você pode torná-lo a uma textura através de um FBO, em seguida, processar essa textura como um quad-tela cheia. Você pode então tomar essa textura e salve-o em um arquivo (usando glGetTexImage , por exemplo).
Outras dicas
O que é um "arquivo OpenGL"? OpenGL é uma API de gráficos, ele não especificar quaisquer formatos de arquivo. Você quer dizer um arquivo DDS, ou algo assim?
Existem maneiras melhores de fazer uma textura compor de desenhá-los com a placa gráfica. Isto é realmente algo que você gostaria de fazer antes da mão sobre o cpu, armazenar e, em seguida, usar como e quando você precisar dele com OpenGL