Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: javiel en 26 de Enero de 2006, 01:58:19 PM

Título: Guardar Pantalla Con Opengl
Publicado por: javiel en 26 de Enero de 2006, 01:58:19 PM
 Estoy usando SDL + OpenGL y necesito guardar la imagen que hay en pantalla en jpg, o lo que sea, png, bmp, etc..

Existe alguna manera sencilla de hacerlo??

gracias a todos y un saludo
Título: Guardar Pantalla Con Opengl
Publicado por: zupervaca en 26 de Enero de 2006, 02:30:18 PM
 Si es guardar lo que estas renderizado tu mismo necesitas crear pbuffers que son como los render targets de direct3d, lo unico que tienes que mirar si tienes o no la extension.
Título: Guardar Pantalla Con Opengl
Publicado por: Ithaqua en 26 de Enero de 2006, 03:08:21 PM
 pbuffers para que?

javiel: lo que puedes hacer es usar glReadPixels() para leer el contenido del framebuffer y guardarlo en una zona tuya de memoria. El siguiente paso sería volcarlo a disco en algún formato relativamente sencillo a mano (bmp, tga) o usando alguna librería externa para guardarlo en jpg, png etc.
Título: Guardar Pantalla Con Opengl
Publicado por: ethernet en 26 de Enero de 2006, 03:16:34 PM
 En cone3d hay una función muy útil, la llamas y te guarda en un fichero (tga) la pantalla actual:

http://cone3d.gamedev.net/cgi-bin/index.pl...age=code/shotta

Título: Guardar Pantalla Con Opengl
Publicado por: marcode en 26 de Enero de 2006, 03:20:17 PM
 Aquí hay un ejemplo para guardarlo en tga.

No se si es el mismo que acaba de poner Ethernet.
Título: Guardar Pantalla Con Opengl
Publicado por: ethernet en 26 de Enero de 2006, 03:41:03 PM
Cita de: "marcode"Aquí hay un ejemplo para guardarlo en tga.

No se si es el mismo que acaba de poner Ethernet.
Es similar, quizás más completo y claro el que has puesto tú. Yo he usado el que he puesto yo y funciona perfectamente.
Título: Guardar Pantalla Con Opengl
Publicado por: nsL en 26 de Enero de 2006, 06:58:30 PM
 No se como funciona SDL+OGL. si realmente usas surfaces, o solo usas SDL para crear la pantalla a la que le pasas el contexto de ogl. En cualquier caso si finalmente trabajas con una surface como pantalla puedes usar la funcion SDL_SaveBMP que te pasa una surface a .bmp . Link

Saludos!
Título: Guardar Pantalla Con Opengl
Publicado por: ALRAZ en 01 de Febrero de 2006, 02:22:38 AM
 DevIL hace todo ese trabajo por ti:

http://openil.sourceforge.net/

te permite cargar varios tipos de imagenes.
además ha sido planeado para integrarse bien con opengl

y por si eso fuera poco, puedes guardar a varios formatos de imagen, asi como tomar Escrin Chots  (ole)