iriya_ufo’s blog

Curiosity was simply the first derivative of knowledge.

Python で 3D

Pygame は基本的に 2D しか扱えません.

なので Python で 3D を扱いたい場合にはどうすればいいのか調べてみました.

OpenGL を使う方法

PyOpenGL というのがあるらしいです.
Python から OpenGLAPI を叩けるようにしたものです.

$ sudo apt-get install python-opengl

自分の環境には既にインストールされていました.
サンプルプログラムを適当に拾ってきて実行してみました.
Compiz が動いてる環境で実行するとタイトルバーを含めた外枠が表示できません.
バグだと思いますが,直し方がさっぱり分からないので放置します.

Soya3D を使う方法

Soya3D とは Python のための 3D エンジンのことです.

$ sudo apt-get install python-soya python-pyrex

とすればインストールできました.
公式サイトよりチュートリアルをダウンロードして試してみます.
ウィンドウを移動させると画面がちらつきます.たぶんこれも Compiz のせいです.

Panda3D を使う方法

Panda3D とは Python のための 3D エンジンのことです.
詳しくは知りませんが,Soya3D とほとんど一緒だと思います.
Panda3D の方が Soya3D より高機能な操作ができるらしいです.
さて最新バージョンをインストールしようと思いましたが,debパッケージが在りません.
ソースからインストールを試みましたが,複雑すぎたので諦めました.


以上3つの中で,Soya3D がいい感じだったのでこれを使って遊んでみることにします.
Soya3D と Panda3D については日本語の情報はほぼ皆無です.
PyOpenGL はいくらかあるようです.