そのドキュメントでは悲しいです:
btGhostObject は、オーバーラップしているすべてのオブジェクトを追跡できます。デフォルトでは、このオーバーラップは AABB に基づいています。これは、キャラクター コントローラ、衝突センサー/トリガー、爆発などの作成に役立ちます。
基礎となるメッシュの AABB のみであるため、AABB との衝突のみを検出し、複雑なメッシュ構造は検出しないということですか?
ゴースト オブジェクトとリジッド ボディの間のコリジョン ディスパッチャに違いはありません。これらは、ブロード フェーズとナロー フェーズの両方で同じように動作します。ディスパッチャーの多様体配列を反復処理すると、ゴースト オブジェクトとの適切な衝突が見られます。ドキュメントは、/メソッドbtGhostObject
を介してアクセス可能な内部オーバーラップ オブジェクト キャッシュを参照しています。このキャッシュはブロード フェーズで読み込まれます (したがって、明らかに AABB のみを使用します)。これを機能させるには、適切なペア コールバックを設定する必要があります ( )。ポストティックでこのキャッシュを反復処理し、実際の衝突を確認できます。getOverlappingObject(int index)
getNumOverlappingObjects()
world->getPairCache()->setInternalGhostPairCallback(new btGhostPairCallback);