2011-02-09 6 views
1

Ogre와 Bullet으로 도시 환경을 설정하려고하지만 Bullet에 메쉬를로드하는 방법을 알아 내려는 데 어려움이 있습니다. Google은 Collada 가져 오기 기능에 대한 참조를 표시하지만 SVN에서 제거 된 것으로 보입니다.파일에서 Bullet Physics 메쉬 불러 오기

오우거 메쉬를 가져 오는 것이 가장 좋겠지 만 .dae 및 .blend 파일도 있으며 가능한 경우 오우거 메쉬를 사용할 수 있습니다.

+0

글 머리 기호 란 무엇입니까? <_ < –

+2

이것은 물리 엔진입니다. [주요 사이트] (http://bulletphysics.org) – silenthunter747

답변

3

Irrlicht와 함께 Bullet을 사용할 때도 동일한 요구 사항이있었습니다. 물리로드 코드를 직접 작성하는 것 외에는 해결책이 없습니다. 3D 편집기에서 객체 명명 규칙을 사용했고 모델을로드 할 때 하위 객체를 반복하고 각 태그 객체에 적합한 btRigidBody를 생성했습니다.

예. 조인트와 마찬가지로

 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를 사용하는 경우 Ogre에서 장면을 내보내려면 OgreMax 플러그인을 사용하고 Physics 객체를 내보내려면 3DS Max의 글 머리 기호 플러그인을 사용할 수 있습니다. 이 두 세트를 OGRE 노드와 글 머리 개체로 별도로로드하고 이름을 기반으로 물리/그래픽 모델을 결합 할 수 있습니다. 나는 내 자신의 게임에서 그것을 어떻게

은 다음과 같습니다

출처 : https://github.com/SabinT/Wings-Of-Chaos

데모 : http://www.youtube.com/watch?v=eryWgIuqC7I

내가 오래 전에이 작업을 중지하지만,이 코드에 도움이 증명 희망 누군가 Ogre/Bullet에서 일하고 있습니다. 아마 누군가는 이것에서 유용한 코드를 모을 것입니다.

CsGameLevel.cpp 파일에 관심이 있습니다. Load() 메서드는 먼저 Ogre 장면을로드 한 다음 Bullet rigidbody를 LoadStaticGeometry() 메서드를 통해로드합니다.