ドキュメント

PyOpenGL は Python におけるラッパーに過ぎない。OpenGL が一通り使える技術があれば、必要な勉強は C 言語でのプログラミングと Python でのそれとの差分を確認するだけということになる。

PyOpenGL for OpenGL Programmers

公式サイトの “PyOpenGL for OpenGL Programmers” という章を読む。

  • PyOpenGL は実行速度については期待できない。

    そもそも速度が欲しいならば肚をくくって C/C++ 環境を検討するし、ここでは学習目的が主なので速度は二の次だ。

    • プログラミングの柔軟性、利便性、堅牢性を重視しているらしい。

    • 速度を期待しないとは言ったが、頂点毎の各種演算はやはりアホみたいに遅い。よって、最低でも配列ベースの演算でコードを書くようにする。

  • PyOpenGL は SIWG ではなく ctypes を利用して実装されている。

  • 一部関数シグニチャーが C 言語版と PyOpenGL 版とで異なる。といっても、配列モノの API が Python 風に表現されているだけだ。

  • PyOpenGL は OpenGL 操作中でのエラー発生時に例外を送出する。プログラマーが手で glCheckError を書かずにすむというわけだ。

    • デバッグが終わったら OpenGL.ERROR_CHECKING = False すればよい。

  • PyOpenGL はエラーをログ出力する。OpenGL.ERROR_LOGING = False で無効化。

  • PyOpenGL では、関数の型別サフィックスが省略できる。例えば glDrawElements{ub,us,ui} はいずれも glDrawElements とできる。