【変態技術】Box2D作者「衝突判定にSIMD導入した結果…」爆速化が凄すぎる
投稿日時: 2026/07/23 06:09
■ 概要・編集部サマリー
1. 【背景・Box2D作者によるSIMD衝突判定記事発表】名作 2D 物理エンジン Box2D の作者 Erin Catto 氏が、開発中の Box2D v3 において衝突判定アルゴリズムを SIMD 化した技術記事を公表しました。 2. 【焦点・AoSからSoA構造転換とAVX2/NEON最適化】データのメモリ配置を AoS から SoAへ再構築し、x86 AVX2 や ARM NEON 命令を用いて 4〜8 個の衝突判定を同時並列化させる手法を提示しています。 3. 【評価・CPU単体での超大量剛体物理とゲーム開発革命】GPU を介さず CPU レジスタの限界性能を引き出して弾幕や大量剛体を爆速処理する極限チューニングに対し、ゲーム開発者から絶賛と熱い議論が巻き起こりました。
■ 数千個のオブジェクト衝突判定を1フェッチで並列処理するアルゴリズム
Box2D 3.0 の開発において、物理ボディ群の位置・形状データを連続メモリに並べるSoA 構成へ変更し、SIMD ベクトルレジスタへ一貫投入する最適化を解き明かしています。
単一命令で最大 8 個のバウンディングボックス判定を並列計算させ、ブロードフェーズの計算負荷を激減させました。
■ AoS から SoA(Structure of Arrays)へのメモリレイアウト再構築
従来のオブジェクト指向型配列から構造体の配列へメモリ構造を転換し、CPU L1/L2 キャッシュヒット率を極限まで引き上げる手法を整理しました。
If 条件分岐を排除してビットマスク演算で論理判定を完了させる低レイヤテクニックが注目を集めています。
■ ARM NEON / x86 AVX2 を横断するクロスプラットフォーム SIMD ラッパー
x86_64 アーキテクチャの AVX2 命令だけでなく、Apple Silicon やスマートフォン端末に搭載される ARM NEON 命令セットでも同等性能を叩き出す抽象化レイヤーの設計が絶賛されています。
GPU に頼らず CPU レジスタをフル活用して大量オブジェクトを動かすゲーム開発の新標準として広く認知されています。
海外掲示板の反応・まとめ
■ Erin Catto氏のブログ『SIMD for collision』の紹介。Box2DにおけるSIMD導入とSoAメモリ配置が語られています。
Box2Dの作者Erin Catto氏のブログきた!Box2D v3で2D図形の衝突判定にSIMD(AVX2/NEON)導入して4〜8個並列計算させた解説が変態的すぎて最高w
>>2 物理演算のデータ構造を従来の `struct Polygon { Vector2 pos; }`(AoS)から、`struct Polygons { float x[8]; float y[8]; }`(SoA)に変えてSIMDレジスタに綺麗に乗せてるの教科書通りで美しいわ。
>>3 x86のAVX2だけじゃなくて、ARMのNEON命令セットでも同じパフォーマンス出るようにクロスプラットフォームのSIMD抽象化レイヤー組んでるのが流石だわ。
>>4 画面上に何万個も物体(弾幕とかパーティクル)を2D物理で動かすゲームが、GPU使わずにCPUだけで爆速60fps固定で動くようになるの神すぎる。
Erin Cattoのコードは読みやすさと数学的美しさが両立してて、全C++開発者のバイブルだわ。
SIMDのマスク処理で分岐を消し去る手法、真似させてもらいます。
2Dゲーム物理の金字塔がさらに進化する興奮。
SoAレイアウト変換によるキャッシュヒット率の劇的向上。
MシリーズのMacやスマホでも爆速で動く恩恵が大きい。
海外のコミュニティでも『Erin Cattoは2D物理の神だ』って海外のゲームプログラマー達が大熱狂してるぞ。
個人開発のゲームでも万単位のオブジェクトが出せる時代。
オープンソースでこのレベルの最適化知見を公開してくれる感謝。
低レイヤプログラミングのロマンが詰まってる。
2D物理の極致。SIMDとデータ指向アプローチが切り拓くゲームの未来だな。