così Ho visto un sacco di discussioni che circondano questo e ho pensato qui sarebbe un buon posto per rispondere. Sto usando Ubuntu 15.04 con intel ivybridge.Dopo aver utilizzato il "programma di installazione di Intel Graphics per Linux" applicazione, glxinfo ha pronunciato la seguente informazioni per quanto riguarda 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
Ora da questo si può vedere che il profilo nucleo e la versione GLSL sono 3.3, ma compatibile OpenGL è solo 3.0 quindi se vuoi che il tuo codice sia eseguito con 3.3 devi specificare sia un profilo core opengl che un profilo glsl core. Le seguenti operazioni funzionano se state usando freeglut e Glew:
- il #version GLSL dovrebbe specificare che si desidera che il profilo di base:
#version 330 core
- specificare che si desidera OpenGL 3.3:
glutInitContextVersion (3, 3);
- e infine impostare glewExperimental su true prima glewInit():
glewExperimental = GL_TRUE;
Edit:
Qualcosa ho dimenticato di dire che sembra essere rilevante per la maggior parte * nix utenti che usano freeglut riguarda test di profondità, i, e cosa dovrebbe essere disegnato (e cosa non dovrebbe) di una maglia da un particolare punto di vista:
Per utilizzare il test di profondità su Linux, non solo necessario attivare il test di profondità tramite
(glEnable(GL_DEPTH_TEST);
ma è anche necessario per creare il contesto sovrabbondanza di avere un buffer di profondità (Windows sembra avere di solito un buffer di profondità per impostazione predefinita, Linux no).
Utilizzare freeglut significa che è necessario includere GLUT_DEPTH
in glutInitDisplayMode in modo che crei il contesto per disporre di un buffer di profondità, ad es.
glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH);
P.S. Ho usato solo freeglut perché il modulo college che ho preso ci ha dato il codice demo per usarlo. Da allora consiglierei di passare a glfw invece. La prima parte della mia risposta è ancora valida, solo con i metodi glfw.
Dopo aver installato molti driver e pacchetti diversi, riesco a eseguire l'aggiornamento a 'OpenGL version string: 3.0 Mesa 8.0.4 e OpenGL shading language string: 1.30'. Qualcuno riesce ad almeno OpenGL 3.3? – muxisar