여기에 있는 릴리스 파일을 다운로드 했지만 시작 위치를 잘 모르겠습니다. 내 게임에는 수많은 장방형과 구가 있으며, 이들 모두가 서로 충돌하기를 원합니다. (모두 메쉬와 관련 경계 볼륨이 있습니다)
편집-방금 직육면체에 실제로 AABB가 연결되어 있음을 깨달았습니다. 나는 적어도 그것을 바꿔야 할 것 같아요.
따라야 할 단계는 무엇입니까?
여기에 있는 릴리스 파일을 다운로드 했지만 시작 위치를 잘 모르겠습니다. 내 게임에는 수많은 장방형과 구가 있으며, 이들 모두가 서로 충돌하기를 원합니다. (모두 메쉬와 관련 경계 볼륨이 있습니다)
편집-방금 직육면체에 실제로 AABB가 연결되어 있음을 깨달았습니다. 나는 적어도 그것을 바꿔야 할 것 같아요.
따라야 할 단계는 무엇입니까?
답변:
추적해야 할 기본 단계는 다음과 같습니다.
먼저 물리 시뮬레이션을 수행 할 월드 오브젝트 ( btDiscreteDynamicsWorld
)를 만듭니다 .
이미 GameObject
경계 상자 및 세계의 위치 / 방향과 함께 모델을 저장 하는 클래스가 있어야합니다 . 교체 위치 / 방향 정보 와 물리 인스턴스 본체 객체 (즉, btRigidBody
) 및 모델을 렌더링 할 때, 대신 체에 의해 제공된 정보를 사용한다. 바디를 만들 때 이미 가지고있는 경계 볼륨과 일치해야하는 질량 및 충돌 모양을 제공해야합니다. 나는 당신의 다른 질문 에서도 이것에 대해 이야기했습니다 .
추가 게임 오브젝트의 각각의 세계에 몸을 객체입니다.
세계를 밟아 (예 : 세계를 부르는) 시뮬레이션 을 업데이트하십시오stepSimulation
.
그리고 많은 정보를 가지고 있기 때문에 설명서 를 읽는 데 시간이 조금 걸립니다 .
의견을 해결하기 위해 편집
질문하기 전에 울부 짖었지만 ... 게임에 올바른 파일을 포함시키는 것과 같은 매우 기본적인 작업을 어떻게 수행합니까? 특정 사항이 필요한 경우 강체 충돌을 처리 할 파일을 찾고 있습니다. 또한 지금까지 도움을 주셔서 대단히 감사합니다!
글쎄, 당신은 이전에 외부 C ++ 라이브러리를 사용해 본 적이없는 것으로 보입니다. 이 작업을 수행 한 지 오랜 시간이 지났지 만 이것이 Visual Studio에서 프로세스를 기억하는 방법입니다.
우선 나는 필요한 것을 이미 설명하는 매뉴얼을 인용합니다.
- #include “btBulletDynamicsCommon.h” in your source file
- Required include path: Bullet/src folder
- Required libraries: BulletDynamics, BulletCollision, LinearMath
위의 조건을 충족하기 위해 따라야 할 기본 단계는 다음과 같습니다.
1. 준비 단계
먼저, 알려진 디렉토리에 다운로드 한 파일을 추출하십시오 (예 :) C:\Bullet
. 나중에이 폴더의 경로를 알아야합니다.
내부에는 프로젝트에서 참조해야 할 두 개의 폴더가 있습니다. 첫 번째는 소스 코드에 포함 할 헤더 파일 이 들어있는 src
폴더입니다 . 두 번째는 프로젝트에 연결할 라이브러리 파일을 저장할 폴더입니다 . 포함과 연결은 서로 다른 두 가지입니다..h
lib
.lib
그러나 아직 엔진을 빌드lib
하지 않았으므로 폴더는 비어 있어야합니다 . 따라서 CMake 및 Visual Studio를 사용하여 프로젝트를 빌드하는 방법에 대한 매뉴얼을 참조하십시오. 7 페이지에 있습니다.
당신이 성공 후에는 적어도 세 개의 파일이 있어야 lib
폴더 : BulletDynamics.lib
, BulletCollision.lib
그리고 LinearMath.lib
(I 수동에서 추측하고있다). 이제 Bullet과 프로젝트를 연결하려면 ...
2. 헤더 포함
우선, C:\Bullet\src
프로젝트의 포함 경로 옵션에 폴더를 추가해야합니다 . Visual Studio에서 프로젝트를 마우스 오른쪽 버튼으로 클릭 Configuration Properties -> C/C++ -> General -> Additional Include Directories
하고 디렉토리 경로를 탐색 하고 작성하면됩니다.
설정 한 후에는 간단하게 #include “btBulletDynamicsCommon.h”
코드를 작성할 수 있습니다. 해당 헤더는 필요한 모든 기능의 허브 역할을하는 것으로 보입니다.
3. 링크 라이브러리
마지막으로 위에서 언급 한 라이브러리를 연결해야합니다. 가장 먼 폴더에 Configuration Properties -> Linker -> General -> Additional Library Directories
경로를 추가하십시오 .lib
C:\Bullet\lib
그런 다음 Configuration Properties -> Linker -> Input-> Additional Dependencies
에서 라이브러리 목록을 종속성 목록에 추가하십시오. 각 라이브러리를로 분리 ;
하고 파일 확장자를 잊지 마십시오. 예를 들어 목록 끝에 다음을 추가 할 수 있습니다BulletDynamics.lib;BulletCollision.lib;LinearMath.lib
..
그런 다음 프로젝트를 빌드하고 실행할 수 있어야합니다.
4.4 Integration overview
스파르타의 기초라는 장에서 매뉴얼을 살펴 보았지만 기본적인 과정을 설명합니다. 따라서 예제 데모의 코드와 코드를 보면 너무 많은 문제가 없어야합니다.