Bulletでsoftbody

ソフトボディをやってみたかったので、とりあえ本買ってみた。

この本、泣けるぐらいSoftBodyの解説は少なかったわ( 3ページぐらい)w
けど、モデル(wavefront*.obj)のメッシュからsoftbody生成するサンプルがあった。まぁbulletライブラリのサンプルでもsoftbodyのサンプルいくつかあるんだけどね・・・。この本のサンプルはCode::Blocks+MinGWという構成だが、とりあえずVisualStudioで動かしてみた。

なんか表示は上手く行ってないっぽかったけど、上は柔軟体と鋼体のteapot。ぐにゃぐにゃしてる。(っぽい)
softbodyを使うためにはいつも使ってるbtDiscreteDynamicsWorld じゃなくて btSoftRigidDynamicsWorldを使う。当然RigidBodyも使えるワールドだが、softの計算もやるのでパフォーマンスをちょっと心配したけど、軽く試したところRigidについてはそんなに悪くなさそうだった。が、物体をすり抜けてしまうことが多い気がした。通常の物理演算が鋼体の衝突で実現されているのに対してこっちはMeshで頂点の当たり判定を細かくやってるイメージ。ただし、softbodyのオブジェクトの自分自身の当たり判定はほとんど突き抜けてしまっているので、判定が無いか、甘い印象。

で、いつもどおりopenframeworksで使ってみたかったので、ofxBulletで移植を始めたんだけど例のごとく先駆者がいらっしゃいました。

https://github.com/damiannz/ofxBullet/

このライブラリではassimpでロードしたメッシュをもとにsoftbodyを作るとことまでやってくれる。とてもいい。

手前のteapodがぐにゃんぐにゃんしてる。やっぱsoftbodyは突き抜けがおおい。このアドオンの調整も色々必要になりそう。あとはこれを動かしたいわけだけど、ノードがわかれば鋼体と同じ要領で特定の頂点に対して力を加えることができるようだ。

softbody ->addForce(const btVector3& forceVector,int node);

パフォーマンスは少し心配。teapotだと、最近のマシンでも10個も入れるとFPSが結構落ちてくる。あと、柔軟体をワールドに投下するタイミングでも、頂点が多いからか一瞬固まってしまうのも気になる。動きは60FPSでてれば結構気持ちがいい。なんか楽しいことはできそうだ。

「Bulletでsoftbody」への5件のフィードバック

  1. OS: mac OSX lion
    開発環境:Xcode4.6

    ofxBulletを使用したいと思っています。こちら(https://github.com/damiannz/ofxBullet/)からofxBullletをダウンロードして使用しようと思ってるのですが、うまく環境が構築できません。こちらのページではwindowsを使って、ofxBulletの環境を構築していると思うのですが、macだとうまくいかないのでしょうか。ご存知でしたら教えていただけますか。

  2. 説明不足でした。すいません。
    NickHardemanさんのofxBullet(https://github.com/NickHardeman/ofxBullet)は正常に動きます。softbodyを使いたいため、こちらのwebに掲載されているsoftbodyの機能が実装されているofxBulletを使おうとしているのですが、上手くうごかないといった状態です。
    連投になってしまい、申し訳ありません。よろしくお願い致します。

  3. こんにちは!
    このライブラリはMACで動かせます。

    NickHardemanのほうがうまくいくのであれば、
    ソースファイル全部上書きして、未登録ファイルをプロジェクトに追加してみると、
    includeパスなどの問題が起こりにくいのでうまくいくかもしれません。

    あと、bulletのサイトからDLできるパッケージに
    softbodyのサンプルがいっぱいあるので、
    そちらも参考にするといいと思います。
    softbodyはパラメータのバランスが難しいけど面白いですねー。

    1. scnEce:ixvellert site. A lot of helpful info here. I’m sending it to some pals ans additionally sharing in delicious. And naturally, thank you on your effort!

  4. ご返信ありがとうございます。

    開発環境1:mac OSX lion;Xcode4.6
    開発環境2:mac OSX snowleopard;Xcode3.6.2
    の2つの環境で環境構築を試みたのですがうまくいかなかったので、もしかするとmacだとうまく動かないのかと勝手に思っていました。
    未登録ファイルをプロジェクトに追加していく方法はまだ試していないのでやってみます!!
    ありがとうございます。

Kenji Kanasaki へ返信する コメントをキャンセル

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です