マツド・サイエンス研究所

物理エンジン

PhysX と言う物理エンジンを使ってみた。

Ubuntu で スパコン

にも書いたように、私のデスクトップ機は Athlon64 X2 4200+ の CPU に GeForce 8400 GS を使っている。SP数 16 なので大したことは無いが、並列計算ができる。

で、これを使った物理エンジンである PhysX を試してみた。

最初は、WindowsXP で試したが、このやり方は、Web上でも数多く紹介されているので省略。

その後、Ubuntu で試してOKだったので、これを紹介する。

元ネタは、HowTo: Setup PhysX SDK in Linux。ただし、ここには64ビット版 Ubuntu へのインスト法は載っているが、32ビット版は、もっと簡易にインストできるので、それを紹介する。

使った Ubuntu は 8.10。実は、最近、新しいのは 9.04、安定版としては 8.04 を使っていて、使わなくなった 8.10 のパーティションが余っていたので、それにインストしただけなので、Ubuntu のバージョンに深い意味は無い。

とにかく、カーネル等を最新の状態にアップデートした後、NVIDIA グラフィックドライバも最新の 180 にアップデートする。私の場合、常に Compiz (3Dデスクトップ) が使えるようにしているくらいだから、glx 等も入っている。

この状態で、NVIDIA PhysX SDK Downloadsから PhysX_2.8.1_SDK_CoreLinux_deb.tar.gz をダウンロード

$ tar zxvf PhysX_2.8.1_SDK_CoreLinux_deb.tar.gz

$ sudo dpkg -i *.deb

$ sudo vim /etc/ld.so.conf

<< 下行を追加 >>

/usr/lib/PhysX/v2.8.1/

$ sudo /sbin/ldconfig

$ /usr/sbin/PhysX_Samples_2.8.1_FC4/Bin/linux/SampleBoxes

とやるとサンプルが動く。

使い方は

・ キーボードの 2,4,6,8 でカメラ(視点)を動かし、マウスでカメラを回す。

・ w,t,s,b とスペースキーで色々な物を作り、qで、最後に作った物を消す。

・ 0で、フレームレート表示をトグルする。

調子に載って、プログラムの構築にも挑戦。

さきに、Synaptic で freeglut3-dev をインストしておく。

HowTo: Setup PhysX SDK in Linuxから、SampleBoxes.tar.gz をダウンロード。

$ tar zxvf SampleBoxes.tar.gz

$ g++ -DNX_DISABLE_FLUIDS -DCORELIB -DLINUX -I/usr/include/PhysX/v2.8.1/SDKs/Physics/include -I"" -I/usr/include/PhysX/v2.8.1/LowLevel/API/include -I/usr/include/PhysX/v2.8.1/SDKs/Cooking/include -I/usr/include/PhysX/v2.8.1/SDKs/PhysXLoader/include -I/usr/include/PhysX/v2.8.1/LowLevel/hlcommon/include -I/usr/include/PhysX/v2.8.1/SDKs/Foundation/include -I/usr/include/PhysX/v2.8.1/SDKs/NxCharacter/include -O3 -Wall -c -fmessage-length=0 -o SampleBoxes.o ./SampleBoxes.cpp

$ g++ -o SampleBoxes ./SampleBoxes.o -lPhysXLoader -lGLU -lGL -lglut -ldl -lpthread

$ ./SampleBoxes

で、ちゃんと動く。ただし、なぜかフレームレートだけは表示できない。

さて、参考書として、「物理エンジン PhysX プログラミング」(大川善邦著 工学社) も買ったので、何か楽しい事でもシミュレーションしてみるかな?

注意

ブログのコンテンツの内、「告知」など時期よって情報価値が無くなるのは除いてある。また、コンテンツに付いたコメントは書き込み者に著作権があるものと判断し、ここに持ってきていないので、コメントを見るときは、元々のブログコンテンツを参照してもらいたい。

その他、ブログ発表後、コメントなどの内容を反映するなど、内容を変更しているものもあるので、注意してほしい。