librerias habilitar for ubuntu-12.04 opengl-3

habilitar - OpenGL y GLSL 3.3 en un HD Graphics 4000 bajo Ubuntu 12.04



opengl libraries ubuntu (3)

Estoy ejecutando esa configuración:

  • Ubuntu 12.04
  • Intel HD Graphics 4000

glxinfo dame esos parámetros:

OpenGL renderer string: Mesa X11 OpenGL version string: 2.1 Mesa 8.0.4 OpenGL shading language version string: 1.20 OpenGL extensions:

Mi objetivo era ejecutar OpenGL 3.3 (y por lo tanto GLSL 3.3). Si soy fácil con los problemas de desarrollo, me pierdo el hardware y los controladores. ¿Alguien sabe una manera de lograrlo con mi configuración?


¡¡¡Una gran noticia!!!

Mesa 10 está fuera, lo que significa soporte para Opengl 3.3 y GLSL 3.3 !

Esto se prueba en mi 4ta Generación Core i5 Mobile Processor con un chipset HD 4400 Graphics.

¡El desarrollo moderno de OpenGL ahora es posible en chipsets Intel integrados en Linux! Este es un gran paso adelante. Note that ubuntu 15.04 ship with Mesa 10.5

Aquí estoy renderizando un triángulo usando un Shader GLSL 3.3 :)

Ok, para obtener los controladores experimentales para hacer que esto funcione en Ubuntu 13.10 necesitarás hacer algunas cosas:

# Note this will take awhile! 1.) Add the PPA Repository $ sudo add-apt-repository ppa:oibaf/graphics-drivers 2.) Update sources $ sudo apt-get update 3.) Dist-upgrade (rebuilds many packages) $ sudo apt-get dist-upgrade 4.) Reboot! In your code make sure you request a Opengl 3.3 context!

Ejecute este comando glxinfo | grep OpenGL glxinfo | grep OpenGL debería obtener algo como ...

OpenGL vendor string: Intel Open Source Technology Center OpenGL renderer string: Mesa DRI Intel(R) Haswell Mobile OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.1.0-devel (git-f9cfe5c saucy-oibaf-ppa) OpenGL core profile shading language version string: 3.30 OpenGL core profile context flags: (none) OpenGL core profile profile mask: core profile

Artículos Fuente

http://www.phoronix.com/scan.php?page=news_item&px=MTQ5OTk

https://launchpad.net/~oibaf/+archive/graphics-drivers/


Así que he visto muchos hilos alrededor de esto y pensé que aquí sería un buen lugar para responder. Estoy ejecutando Ubuntu 15.04 con Intel Ivybridge. Después de usar la aplicación "Intel Graphics installer for linux", glxinfo proporciona la siguiente información con respecto a openGl:

OpenGL core profile version string: 3.3 (Core Profile) Mesa 10.6.0 OpenGL core profile shading language version string: 3.30 OpenGL version string: 3.0 Mesa 10.6.0 OpenGL shading language version string: 1.30

Ahora puede ver que el perfil del núcleo y la versión glsl son 3.3, pero openGl compatible es solo 3.0, por lo tanto, si desea que su código se ejecute con 3.3, debe especificar un perfil del núcleo opengl y un perfil del núcleo glsl . Los siguientes pasos deberían funcionar si estás usando freeglut y glew:

  • La versión # glsl debe especificar que desea el perfil principal:

#version 330 core

  • Especifica que quieres OpenGL 3.3:

glutInitContextVersion (3, 3);

  • y finalmente establezca glewExperimental en verdadero antes de glewInit ():

glewExperimental = GL_TRUE;

Editar:

Algo que olvidé mencionar, que parece ser relevante para la mayoría de los usuarios de * nix que usan freeglut, se refiere a las pruebas de profundidad, es decir, qué se debe dibujar (y qué no) de una malla desde un punto de vista particular:

Para utilizar pruebas de profundidad en Linux, no solo necesita habilitar pruebas de profundidad a través de

(glEnable(GL_DEPTH_TEST);

pero también necesita crear su contexto de saturación para tener un búfer de profundidad (Windows parece tener un búfer de profundidad por defecto, Linux no).

Usando freeglut significa que debes incluir GLUT_DEPTH en glutInitDisplayMode para que cree el contexto para tener un búfer de profundidad, por ejemplo

glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);

ps solo he estado usando freeglut porque el módulo de la universidad que tomé nos dio un código de demostración para que lo ejecutemos. Desde entonces definitivamente recomendaría cambiar a glfw . La primera parte de mi respuesta todavía se aplica bastante, solo con métodos glfw en su lugar.


Desafortunadamente, en este momento parece que esto no es posible, ya que los controladores de código abierto provistos por Intel son los únicos disponibles. Hay una versión más nueva que la suya (Mesa 9.0.1) pero aún es compatible con OpenGL 3.0 y GLSL 1.30, como puede leer en las notas de la versión en el sitio web de Intel Open Source .

El problema es que los controladores de código abierto están bloqueados con Mesa, que en este momento solo admite GLSL 1.40, como puede ver aquí: http://www.mesa3d.org/shading.html#support

Me temo que si necesita usar un entorno OpenGL 3.3, necesitará obtener una GPU dedicada con controladores binarios disponibles (tarjetas nvidia o ati).