jrouwe/JoltPhysics
멀티코어 최적화 물리 엔진, Jolt Physics 오픈소스 공개
원제 jrouwe/JoltPhysics
스타 12,001당일 +157C++
Key Point
AAA 게임(호라이즌, 데스 스트랜딩 2)에 검증된 물리 엔진이 오픈소스로 공개되어 게임 개발자가 직접 활용할 수 있게 됐다.
핵심 요약
- C++로 작성된 멀티코어 친화적 강체 물리·충돌 감지 라이브러리로, 호라이즌 포비든 웨스트와 데스 스트랜딩 2 온 더 비치에 사용됐다.
- 게임이 여러 스레드에서 동시에 실행되는 점을 감안해 설계했으며, 배경 스레드에서 물리 본체를 로딩·언로딩하거나 수정할 때 시뮬레이션을 차단하지 않는다.
- 충돌 쿼리를 시뮬레이션과 병렬로 실행할 수 있고, 광역 판정(광역 충돌)을 사전에 수행한 후 세밀한 판정(협역 충돌)을 배경에서 처리해 긴 작업을 여러 프레임에 분산시킨다.
- 결정적 시뮬레이션을 지원해 입력값만 복제하면 원격 클라이언트로 재현할 수 있으며, 본체는 생성 시 자동 활성화되지 않는다.
- 구(Sphere), 상자, 캡슐, 원기둥, 볼록껍질, 메시(삼각형), 지형 등 다양한 강체 형태와 고정·거리·힌지·슬라이더·6축 자유도 등 여러 제약 조건을 지원한다.
- 애니메이션 래그돌, 게임 캐릭터 시뮬레이션(캡슐 또는 가상 캐릭터), 바퀴 달린 차량·궤도 차량·오토바이 등 차량 시뮬레이션을 포함한다.
- 소프트 바디 시뮬레이션으로 엣지 제약, 이면체 벤드 제약, 코세라 로드 제약, 내부 압력 등을 구현할 수 있고, GPU 기반 스트랜드 머리 시뮬레이션도 지원한다.
- Windows, Linux, FreeBSD, Android, macOS, iOS, WebAssembly 등 다양한 플랫폼에서 실행되며, x86/x64에서는 SSE2 이상, ARM64에서는 NEON을 지원한다.
- Visual Studio 2022+, Clang 16+, GCC 12+ 컴파일러로 C++17 표준을 사용하며 STL에만 의존하고 RTTI·예외를 사용하지 않는다.
- Godot 엔진과 언리얼 엔진에 통합 플러그인이 있으며, C#·Java·JavaScript·Rust·Python·Zig 등 다양한 언어 바인딩을 지원한다.
- MIT 라이선스로 배포되며, 비자명한 변경사항에 대해 기여자 동의서 서명이 필요하다.
저장소 보기 ↗github.com