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ライセンスとなっております。

●APK
BulletJniSampleApp.apk




●おまけ
本当は、某雑誌記事用のネタだったのですが、これよりももっと良いモノが出来たので、こちらはお蔵入りとなりました。
ゆえに、公開しております。

trackbacks

Android NDKの一歩進んだ使い方 from なんとなく実験 with SIProp開発記

こちらのエントリーとこちらのエントリーで得られた、本気でAndroid NDKを...

Creative Commons License
This weblog is licensed under a Creative Commons License.