私は、衝突検出の最適化に関する情報を探しています。衝突検出の最適化
点から点bに移動しているオブジェクト(円)があります。このオブジェクトは半径がrであり、フィールドにも多くの障害(円)があります。
すべての障害物Iは、円とカプセルの間の衝突をチェックするアルゴリズム(機能)を持っている、と私は現在、ために、この関数を呼び出す:多くの障害は非常に遠く離れている
for-each (o : obstacles)
if collide(o, Capsule(a,b,r))
return true;
return false;
を移動物体から離れており、衝突検出機能によるチェックから無視することができる。
私の質問は:
は、衝突検出機能付きすべての障害をチェック無視する解決策はありますか?何かのように最近隣の検索またはKD木?
EDIT:すべての障害物の半径は同じです。
あなたはどのように多くの障害を持っていますか?彼らはどれくらい密集していますか?衝突はしばしば起こるか、まれに起こるか? –
約100の障害を考えると、彼らはまばらに分布しています。アルゴリズムは10msごとに呼び出します。 – deepmax
私のプログラムのバトルネックはこの問題だと思います。 – deepmax