오픈소스 3D 물리 엔진 Box3D가 복잡한 3D 볼록 껍질(Convex Hull) 충돌 감지에 SIMD(Single Instruction Multiple Data) 기술을 적용하여 시뮬레이션 성능을 획기적으로 개선했습니다. 32개 정점과 89개 모서리를 가진 물체 5,120개의 시뮬레이션에서 전체 시간을 절반 이하로 줄이는 데 성공했으며, 이는 특히 파괴 시뮬레이션처럼 복잡한 물체 간의 상호작용이 많은 환경에서 매우 유용합니다.
Box3D는 충돌 감지에 3D 분리축 정리(Separating Axis Theorem, SAT)를 사용합니다. SAT는 두 물체 사이에 분리축이 존재하는지 검사하여 충돌 여부를 판단하는데, 이 과정에서 물체의 면-정점 및 모서리-모서리 조합을 검사합니다. 특히 'Boulder-Boulder'와 같이 복잡한 껍질의 경우 모서리-모서리 조합이 7,921개에 달해 계산 비용이 매우 높습니다. Box3D는 이 모서리 검사 단계에 와이드 SIMD를 적용하여, 한 번에 여러 작업 단위를 동시에 처리합니다. 예를 들어, 하나의 껍질 모서리와 다른 껍질의 모서리 4개를 동시에 검사함으로써, 1스레드 환경에서 40,706ms 걸리던 시뮬레이션 시간을 SSE2 적용 시 17,337ms, AVX2-Lite 적용 시 15,762ms로 대폭 단축했습니다. 이는 모서리 검사뿐만 아니라 접촉 솔버를 포함한 전체 시뮬레이션 측정치입니다.
이러한 SIMD 기술의 적용은 게임 엔진, 산업 시뮬레이션, 로봇 공학 등 물리 엔진의 성능이 중요한 다양한 분야에 큰 영향을 미칠 것으로 예상됩니다. 특히 복잡한 파괴 효과나 유체 시뮬레이션 등 고성능 연산이 필요한 영역에서 개발자들이 더 현실적이고 몰입감 있는 경험을 구현할 수 있도록 돕습니다. SIMD는 단순히 속도 향상을 넘어, 기존에는 구현하기 어려웠던 복잡한 물리 상호작용을 실시간으로 처리할 수 있는 기반을 마련하여 새로운 형태의 애플리케이션 개발을 촉진할 잠재력을 가지고 있습니다.