1

ここで質問の作成者と同じチュートリアルに従おうとしています。 残念ながら、そのページの下部にあるサンプル コードを実行しようとすると、次のエラーが発生します。

Traceback (most recent call last):
  File "C:\Users\Matt\workspace\pygletTest\main.py", line 9, in <module>
    from gletools import ShaderProgram, FragmentShader, VertexShader
  File "build\bdist.win32\egg\gletools\__init__.py", line 9, in <module>
    # See the README file for information on usage and redistribution.
  File "build\bdist.win32\egg\gletools\texture.py", line 454, in <module>
  File "build\bdist.win32\egg\gletools\texture.py", line 455, in ArrayTexture
NameError: name 'GL_TEXTURE_2D_ARRAY' is not defined

Windows Vista で Python 2.6 と Eclipse を使用しています。これを解決する方法についてのアイデアはありますか?

4

1 に答える 1

1

あなたはおそらく gletools を書いた人とは異なるバージョンの pyglet を使用しています。残念ながら、彼はこれに関して少し不明確でした. OpenGL 定数へのバインドが間違っています。

C:\Python\Lib\site-packages\pyglet\gl などの pyglet\gl フォルダーに移動し、glext_nv.py を見つけます。このファイルには、すべての OpenGL 定数のマッピングが含まれています。GL_TEXTURE_2D_ARRAY (GL_TEXTURE_2D_ARRAY_EXT などの名前が付いている可能性があります) を検索します。私のシステムでは、

GL_TEXTURE_2D_ARRAY_EXT = 35866     # GL/glext.h:3183

たとえば texture.py を編集して、キーワード自体の代わりに定義の後に整数を使用します。例えば

#target = GL_TEXTURE_2D_ARRAY
target = 35866

または、バインディングの名前を更新することもできますが、何らかの理由でこれはうまくいきませんでした。同様の変更をいくつか行う必要がある場合があります。

于 2013-03-08T10:38:06.087 に答える