OpenGL 2.1 と GLSL 1.2 を使用していることに気付いたとき、シェーダーに問題がありました。ジオメトリ シェーダーは 1.5 までサポートされていないため、別の OpenGL、GLSL バージョンを使用する必要があります。しかし、どのように?最大 15 のスレッドを読んだと思いますが、何もうまくいきませんでした。
私の Mac は 10.9.3 で PyOpenGL 3.0.2 を実行しています。サポートされているバージョンと拡張機能を確認するために、OpenGL 拡張ビューアーをダウンロードしました。Intel HD Graphics 4000 と NVIDIA GeForce 650M は、コア プロファイルで OpenGL 3.2 をサポートしますが、互換性プロファイルではサポートしません。
互換性プロファイルが、ジオメトリ シェーダーをコンパイルできない理由だと思います。2.1までのOpenGLのみをサポートしています。
プロファイルを次のように変更しようとしました。
glutInitContextVersion (3, 2)
glutInitContextProfile(GLUT_CORE_PROFILE)
しかし、両方の関数は未定義です。また、GL_SHADING_LANGUAGE_VERSION (1.2) と GL_VERSION 2.1 は同じままです。
ジオメトリ シェーダーで使用した別のスレッド#version 150 core
が原因でしたが、これも効果がありませんでした。
ジオメトリ シェーダーを使用するためにコンテキスト/バージョンを変更するにはどうすればよいですか?