Pregunta

Estoy empezando a aprender OpenGL y no estoy seguro de cómo configurarlo en (Ubuntu) Linux.

Creo que esta podría ser una manera:

OpenGL es sólo un lenguaje gráfico especificación (o interfaz) y para usarlo correctamente tengo que descargar alguna biblioteca (para el sistema operativo específico) que implementos la especificación OpenGL.

Después de una larga búsqueda y de múltiples fuentes, descubrí que la biblioteca de gráficos 3D de Mesa sería la mejor para mí.

También encontré la biblioteca SDL (Simple DirectMedia Layer), pero parece ser una biblioteca para todo lo demás además de gráficos (p. ej.GUI, sonido, entrada de teclado y ratón, ...).Necesito SÓLO una biblioteca de gráficos para que implemente la especificación OpenGL.

Como interfaz gráfica de usuario uso la biblioteca Gtkmm y hasta ahora estoy "muy satisfecho" con ella, así que me gustaría "conectar" gtkmm con OpenGL - para eso encontré una extensión de la biblioteca gtkmm llamada gtkglextmm mediante el cual debería poder dibujar la animación OpenGL en una ventana (o DrawingArea en la jerga Gtkmm) en GUI (pero aún no lo he probado, así que espero que funcione :-)).

Y el último problema es la compilación cruzada de Linux a Windows (con el compilador cruzado MinGW).Hasta ahora, he compilado exitosamente (de Linux a Windows) todo mi trabajo realizado con la biblioteca Gtkmm.

Cuando lo combino con OpenGL, ¿no habrá ningún problema al realizar una compilación cruzada (p. ej.¿Necesito vincular algo especial al compilar con el compilador Gcc, o debería distribuir alguna biblioteca OpenGL de Windows con mi aplicación)?

Estaría muy contento si usted confirmara que estoy en la dirección correcta o me orientara en la dirección correcta para poder hacer algo más fácil o mejor.

¿Fue útil?

Solución

Hasta cierto punto, su tarjeta gráfica dependiente, los paquetes de controladores exclusivas más importantes son su propio libGL.so e incluyen también la libGL.la (a enlace en contra de la .so) y los archivos de cabecera relevantes.

  • Nvidia -. Librerías OpenGL y encabezados se incluyen en el paquete controlador propietario
  • ATi FGLRX -. Librerías OpenGL y encabezados se incluyen en el paquete controlador propietario
  • Open Source conductores - librerías OpenGL y las cabeceras se proporcionan como parte de la Mesa. Dependiendo de su distribución puede que tenga que instalar los paquetes * -devel para obtener los encabezados y bibliotecas enlazables que necesita.

Si está utilizando una tarjeta de Intel o Matrox, o que se está ejecutando una tarjeta ATI con el conductor rabia, radeon o radeonhd que está utilizando los controladores de código abierto.

GLUT será el camino más corto para un programa de trabajo. De lo contrario tendrá que escribir el código para crear el contexto OpenGL (OS específica) usted mismo.

Si usted todavía tiene problemas, vamos a saber más acerca de qué es que no trabaja para usted.

Editar He aquí algunos ejemplos de comandos / código que pueda ser relevante o útil.

GCC Compilación:

gcc -lGL glprogram.c -o glprogram

Incluye:

#include <GL/gl.h>
#include <GL/glu.h>
#include <GL/glut.h>

Otros consejos

Debe todo sólo trabajar fuera de la caja teniendo en cuenta los paquetes adecuados.

Dicho esto, aquí está el trozo correspondiente de la Build-Depends: se utiliza para construir el rgl paquete (que proporciona en el dispositivo de OpenGL para R ) en Debian. Como Ubuntu utiliza la misma configuración para su compilación del paquete, que realmente debería apostar establecido:

libgl1-mesa-dev | libgl-dev, libglu1-mesa-dev | libglu-dev, \
libpng12-dev, libx11-dev, libxt-dev, x11proto-core-dev

El medio alternativo |, para que pueda utilizar los paquetes o los basados-mesa que coincidan con su tarjeta de gráficos (como los diversos paquetes nvidia- *).

Sólo tienes que arrastrar algunos ejemplos OpenGPl desde algún lugar y probarlo.

Vas en la dirección correcta.Utilicé Eclipse CDT+ SDL + openGL para desarrollar mi aplicación en Ubuntu Linux (utilicé este tutorial para la configuración: http://www.ferdychristant.com/blog/articles/DOMM-72MPPE) y luego compilé exitosamente mi aplicación en Windows con Dev C++

No soy de mucha ayuda en el ámbito de Linux. Y estoy detrás de los tiempos cuando se trata de OpenGL. Sin embargo, parece que NeHe tiene un nuevo conjunto de tutoriales donde se está preparando algunos agradables código base.

Como dicen en el sitio:

  

Al escribir los nuevos tutoriales que tenemos   varios objetivos:

     
      
  • Escribir utilizando un estándar de codificación limpia, simple y consistente
  •   
  • Escribir utilizando moderna C ++
  •   
  • permanecer totalmente multiplataforma (que es la fuerza de OpenGL después de todo)
  •   
  • inspirar a la gente a presentar sus propias lecciones basadas en nuestra BaseCode
  •   

Así que me altamente recomiendo al menos dar su código de intentarlo. NeHe tiene una tradición de larga data de la creación de algunos tutoriales muy agradables.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top