ドキュメント¶
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
とできる。