2011-02-09 7 views
1

OgreとBulletを使用して都市環境を設定しようとしていますが、Bulletにメッシュをロードする方法がわかりません。 GoogleはColladaインポーターへの参照を示していますが、これはSVNから削除されたようです。ファイルからBulletフィジックスメッシュをロードする

Ogreメッシュがインポートには最適ですが、私は.daeファイルと.blendファイルも持っており、可能であればそれらを使用できます。

+0

Bulletとは何ですか? <_ < –

+2

これは物理エンジンです。 [メインサイト](http://bulletphysics.org) – silenthunter747

答えて

3

Bullet with Irrlichtを使用する場合と同じ要件がありました。物理ローディングコードを自分で書くのとは別の解決策を見つけました。 3dエディタでオブジェクト命名規則を使用し、モデルをロードするときに、サブオブジェクトを反復処理し、タグ付きオブジェクトごとに適切なbtRigidBodyを作成しました。

など。メッシュVertsにから半径を算出

  if (parent && parent->body) { 
       // add constraint 
       ... 
       if (prefix == "ball") { 
        // ball/socket joint      
        constraint = new btGeneric6DofConstraint(
          *parent->body, *body, frameInA, frameInB, true); 
       } 
       else if (... 

createSphereBody()関数:関節と同様

 if (needsBody) { 
      if (prefix == "ball") { 
       body = createSphereBody(mesh, density); 
      } 
      else if (... 

希望に役立ちます。

1

モデル化に3DS Maxを使用している場合は、OgreからのシーンをエクスポートするためにOgreMaxプラグインを使用し、物理オブジェクトをエクスポートする3DS Maxの箇条書きプラグインを使用できます。これらの2つのセットをOGREノードと弾丸オブジェクトとして別々にロードし、その名前に基づいて物理/グラフィックスモデルを組み合わせることができます。

これは、私は自分のゲームでそれをやった方法です:

出典:https://github.com/SabinT/Wings-Of-Chaos

デモ:http://www.youtube.com/watch?v=eryWgIuqC7I

私は長い時間前にこれに取り組んで停止しますが、このコードはのために役立つことを証明願っていますOgre/Bulletに取り組んでいる人。おそらく誰かがこれからいくつかの有用なコードを集めるでしょう。

CsGameLevel.cppファイルに興味があります。 Load()メソッドは、最初にOgreシーンをロードしてから、LoadStaticGeometry()メソッドを使用して弾丸リジッドをロードします。