GJKアルゴリズム
2つの凸形状の衝突を、ミンコフスキー差の中に原点があるかどうかを探して判定する手法。
名は1988年に発表したElmer Gilbert、Daniel Johnson、Sathiya Keerthiに由来する。核心は、2つの凸集合が交わることと、そのミンコフスキー差が原点を含むことが同値だという点にある。GJKは差の全体を作らず、サポート点(指定方向で最も遠い点)だけを問い合わせ、小さな単体(最大で四面体)を育てて、原点を囲むか、到達不能だと示す。
すべてがサポート関数を通るので、多面体、球、円柱、カプセルなど凸なら同じコードで扱える。離れていれば距離が得られ、すでに重なっている場合の貫入深度にはEPAを組み合わせる。Bulletなどの物理エンジンの基盤で、ナローフェーズで動く。