0728
2026년 7월 28일

3D 물리엔진인, Bullet 3 를 통합해 보았다.
RigidBody3D 라는 오브젝트를 정의하고,
btRigidBody* 핸들을 들고서
virtual void set_world_position()
virtual void set_orientation()
이 2개로 위치 / 회전을 주면
불렛의 핸들에게도 동기화되도록 하였다.
btCollisionWorld* 나 다른 전역 설정들은
Scene단에 있게 하였다.
이제 물리 스레드를 나눈 후에,
물리용 Transform3D / 오브젝트용 Transform3D 두 개를 만들고
동기화 시점에 오브젝트용 트랜스폼을 덮어쓰면서
std::vector<PhysicsCommand> 를 채워서
물리스레드에다가 여러 요청을 날릴 수 있게 해야 한다.
물리엔진을 통합하면 해야 하는 게 꽤나 많아진다.
기본적으로 BVH 프리미티브 마우스 피킹이 필요하고,
meshoptimizer 같은 걸로
콜리젼 셰이프를 구울 수도 있어야한다.
래그돌같은 걸 추가하면
오브젝트도 여러개 정의해줘야 한다.
불렛이 브로드페이즈를 어디까지 지원하는지는 모르겠지만,
플레이어 1명 기준으로
거리에 따라서 걸러내는 기능이 있을 것이다.