2011-02-09 14 views
1

我試圖用Ogre和Bullet設置城市環境,但我很難弄清楚如何將網格加載到子彈中。 Google顯示了對Collada導入器的引用,但似乎已從SVN中刪除。從文件中加載子彈物理網格

Ogre網格將是最好的導入,但我也有.dae和.blend文件,如果可能的話可以使用它們。

+0

Bullet是什麼? <_ < – 2011-02-10 00:03:39

回答

3

當使用Bullet和Irrlicht時,我有同樣的要求。除了自己編寫物理加載代碼之外,我找不到解決方案。我在3d編輯器中使用了對象命名約定,並且在加載模型時,我遍歷了子對象併爲每個標記對象構造了合適的btRigidBody。

E.g.

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

類似地:

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

從網狀綠黨中計算出的半徑createSphereBody()函數。

希望有所幫助。

1

如果您使用3DS Max進行建模,則可以使用OgreMax插件導出OGRE場景,並使用3DS Max的項目符號插件導出物理對象。您可以分別將這兩組作爲OGRE節點和項目符號對象加載,並根據其名稱組合物理/圖形模型。

這是我在我自己的遊戲做的:

來源:https://github.com/SabinT/Wings-Of-Chaos

演示:http://www.youtube.com/watch?v=eryWgIuqC7I

我停止了這方面的工作在很久以前,但希望這段代碼證明有幫助的有人在Ogre/Bullet上工作。也許有人會從中收集一些有用的代碼。

你會對CsGameLevel.cpp文件感興趣。 Load()方法首先加載Ogre場景,然後通過LoadStaticGeometry()方法加載子彈剛體。