Box3D의 SIMD 충돌 감지: 복잡한 볼록 껍질에서 2배 이상 성능 향상

SIMD for Collision

Box3D의 SIMD 충돌 감지: 복잡한 볼록 껍질에서 2배 이상 성능 향상

Box2D의 저자 Erin Catto가 Box3D에 적용한 '와이드 SIMD' 기법을 소개합니다. 충돌 감지에 사용되는 Separating Axis Test(SAT)는 3D에서 모서리-모서리 테스트가 이차적으로 증가하는 문제가 있는데, 구조화된 배열(SoA)로 데이터를 재구성하고 한 번에 4개의 모서리를 처리하는 SSE2 명령어를 사용해 해결했습니다. 32개 점으로 구성된 볼록 껍질 벤치마크에서 전체 시뮬레이션 시간이 스칼라 대비 절반 이상 줄었습니다. 이 최적화는 복잡한 껍질에만 효과가 있으며, 박스 같은 단순한 형태에는 거의 영향을 미치지 않습니다.

SSE2는 스칼라보다 2배 이상 빠릅니다! 참고로 이 타이밍은 전체 시뮬레이션에 대한 것이며, 단지 모서리-모서리 테스트만이 아닙니다.

이 날의 다른 글

2026-07-25