Box3DがSIMDで衝突検出を大幅高速化

Judul asli: SIMD for Collision

Mengapa Ini Penting

ゲームエンジンや物理シミュレーション分野でSIMD活用による大規模凸包処理の高速化手法が実証された

Box3Dは3D物理エンジンでSIMD技術を衝突検出に適用し、5120個の32頂点凸包を用いたベンチマークで処理速度を大幅に向上させた。

Box3Dの開発者は、3D物理エンジンにおけるSIMD(Single Instruction Multiple Data)技術を衝突検出に応用した成果を公開した。対象はSeparating Axis Test(SAT)を使った凸包同士の衝突計算で、特にエッジ同士の交差積テストがボトルネックとなっていた。

32頂点・89エッジを持つ「boulder」型凸包同士の衝突では、エッジ組み合わせが最大7,921通りに達し、計算量が二乗オーダーで増加する。これに対し「ワイドSIMD」アプローチを採用し、hullAの1エッジをhullBの4エッジと同時にテストする並列処理を実装。データはSoA(Structure of Arrays)形式に変換して処理される。

開発者はGJK+EPAの組み合わせではなくSATを採用する理由として、衝突マージン不要・形状が直接接触可能・EPAの数値的不安定性の回避を挙げている。5,120個の32頂点凸包を落下させる「convex pile」ベンチマークで実際の性能改善が確認された。

Sumber

box2d.org — Baca artikel asli →