Foros - Stratos

Programadores => Programación gráfica => Mensaje iniciado por: tamat en 22 de Octubre de 2008, 01:31:35 PM

Título: Opengl en linux sin ventana
Publicado por: tamat en 22 de Octubre de 2008, 01:31:35 PM
Resulta que tengo una aplicación en OpenGL que genera N frames y los dumpea a disco. La aplicación se comporta como un comando, tu lo llamas pasandole unos parametros y te genera un output en disco.

Me gustaría que esta aplicación estuviese en un servidor como un servicio (sería llamada desde el servidor http) el problema es que opengl requiere de una ventana para funcionar, sin la cual no se crea el contexto.

Existe alguna manera de lanzar openGL sin tener el sistema de ventanas activado? supongo que no ya que el driver de opengl va adherido al sistema de ventanas pero quizá alguien sepa algun truco.

Gracias
Título: Re: Opengl en linux sin ventana
Publicado por: Prompt en 24 de Octubre de 2008, 09:56:22 AM
No requiere una ventana para funcionar, eso es falso, yo tengo una consola de test y para hacer pruebas de render no necesito una ventana, solo el contexto.

Mira en los ejemplos de glew como se crea el contexto de OpenGL. No obstante OpenGL si necesita de aceleracion por hardware (aunque nVidia tiene un software para simular y tal...) que no es comun en tarjetas graficas de servidores.
Título: Re: Opengl en linux sin ventana
Publicado por: tamat en 24 de Octubre de 2008, 11:24:48 AM
hablas de una consola abierta en tu escritorio, no de una consola abierta remotamente en un PC que no tiene Xs. verdad?
Título: Re: Opengl en linux sin ventana
Publicado por: Prompt en 24 de Octubre de 2008, 12:03:48 PM
Un proceso vamos, sin Xs

Quizas el driver obligatoriamente necesite tener las X por algun motivo, pero seria estupido, así que estoy seguro de que podrias tener un servicio, una aplicacion con contexto de renderizado de OGL al cual por TCP/IP le pases cosas.
Título: Re: Opengl en linux sin ventana
Publicado por: fjfnaranjo en 25 de Octubre de 2008, 09:40:47 PM
¿Cómo vas con esto, has conseguido algún avance?

Estaba interesado en el tema porque una vez me encontré con un problema similar desarrollando un GIS.
Título: Re: Opengl en linux sin ventana
Publicado por: davidgf en 03 de Noviembre de 2008, 07:27:24 AM
Diría que buscas esto:

http://en.wikipedia.org/wiki/VirtualGL (http://en.wikipedia.org/wiki/VirtualGL)

Si lo hacer funcionar avisa cómo ;)

Saludos!
Título: Re: Opengl en linux sin ventana
Publicado por: wereoffs en 03 de Noviembre de 2008, 02:09:18 PM
Hola, para crear un contexto de opengl se necesitan las X, así que creo que actualmente no es posible poder utilizar la gpu mediante opengl si no se tienen las X corriendo. Aunque supongo que podrás usar perfectamente las glx aunque no tengas ninguna ventana, pero necesitarás algun buffer donde pintar. Si tu tarjeta soporta framebuffer object, creo que podras  crear el buffer interno y pintar ahí. Aunque tal vez sólo te ionmteresa hacer cálculos con la gpu y recoger la informacion con glgetmatrixf.

Para crear el contexto no hay que crear ninguna ventana:

Primero hay que buscar un visual  con glxChooseVisual
Despues a partir de ese visual crear el contexto con glxCreateContext

Un saludo.
Título: Re: Opengl en linux sin ventana
Publicado por: tamat en 04 de Noviembre de 2008, 11:27:20 AM
Es para generar videos on demand, cada frame se dumpea a disco donde se comprime a flash video y se envia al cliente. pero creo que al final da igual, dejaré las Xs y ya está.

Gracias a todos.