基本的な2D物理エンジンを実行しています。これはほとんどパーティクルエンジンであり、AABBや円などの基本的な形状を使用するだけなので、回転はできません。私はCCDを実装しており、2つの高速移動オブジェクトに正確なTOIを与えることができ、すべてがスムーズに機能しています。
今の私の問題は、最初に2つの高速移動オブジェクトを互いにチェックする必要があるかどうかを判断する方法を理解できないことです。空間分割と高速移動オブジェクトごとに四分木を使用しています。通過する各セル内のオブジェクトと照合します。これは、静的なジオメトリとの衝突を決定するのにうまく機能しますが、衝突する可能性があるが、チェックされているセルのいずれにもない他の高速移動オブジェクトは考慮されないことを意味します。
私が考えることができる唯一の解決策は、セルを十分に大きくして、これで十分であるフィンガーをクロスさせるか、ある種のブルートフォースアルゴリズムを実装することです。これに対処する適切な方法はありますか、おそらく誰かがこの問題を効率的な方法で解決しました。それとも、これを説明するスペースを分割するより良い方法があるでしょうか?
ここに図があります:
オブジェクトAとBの「影響範囲」が交差しているため、それらを相互にチェックする必要があります。しかし、現在衝突をチェックしている方法では、これは考慮されていません。繰り返しになりますが、速度がxまたは何かよりも高くなったときにオブジェクトのパスが交差するかどうかを実際にチェックするなど、これに対するいくつかの解決策を考えることができますが、それはハックのように感じ、試行錯誤します。