2009年08月24日
Bullet For Android NDK
以前のエントリーで、手を付けはじめたGPGPU(CUDA)プログラミングですが、やはり、超並列演算のターゲットは
物理演算エンジン
だろうということで、そのライブラリである「Bullet」を、物理演算エンジンの内部構造勉強がてらAndroid NDKに移植してみました。
※普通のJavaからでも使えるはずです。
ちなみに、エミュレータでやってはいけないようです。
実機の100倍以上、遅いです。
そこは、注意してください。<(_ _)>
●動作画面
・ソースには、サンプルアプリを付けておきました。
2つのボール(2D)が、下に並んでいる3つのボール(2D)に向けて、自由落下してくると言うデモです。
※本来は、3Dに対応しています。OpenGL/ESいじるのが面倒だったのでやめました。(w
●Android(Java)からの操作が可能なもの
・対応ワールド
-DiscreteDynamicsWorld
・対応剛体
-BoxShape
-CapsuleShape
-ConeShape
-CylinderShape
-SphereShape
-StaticPlaneShape
-TetrahedronShape
・対応ソルバ
-SequentialImpulseConstraintSolver
・対応ジョイント
-HingeConstraint
-Point2PointConstraint
・対応付加力
-applyForce
-applyTorque
-applyImpulse
-activate操作
というところで、最低限のことができるというところですが、ジョイントも可能なのでラグドールも作成できるかと思います。
●ソース一式
BulletForAndroidNDK-0_7-src.zip
・ライセンスは、Bulletそのままで、BSDライセンスとなっております。
●おまけ
本当は、某雑誌記事用のネタだったのですが、これよりももっと良いモノが出来たので、こちらはお蔵入りとなりました。
ゆえに、公開しております。
- by noritsuna
- at 10:43