5

次のように、Bullet Physics で Broadphase Filter Callback を設定する方法はありますか。

円柱とボックスなどの 2 つの形状から構築された複合動的ボディ。円柱は他の動的ボディ内の円柱とのみ衝突でき、ボックスは静的な球体である第 3 の種類のボディとのみ衝突できます。

他の衝突は許されません: 円柱と球体は衝突してはなりません; ボックスとボックス、どちらも衝突してはなりません

次の画像は、私が上で説明したことを示しています

衝突フィルター

4

1 に答える 1

3

出来るよ。ここにコードがあります

struct FilterCallback : public btOverlapFilterCallback 
{ 
    virtual bool  needBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const; 
}; 
// ....
FilterCallback filterCallback;
// ....
m_dynamicsWorld->getPairCache()->setOverlapFilterCallback(filterCallback);

bool  FilterCallback::needBroadphaseCollision(btBroadphaseProxy* proxy0,btBroadphaseProxy* proxy1) const 
{ 
// return false for pair with no colision
}
于 2012-10-24T13:30:09.597 に答える