2

Bullet でスプリングを使用して 2 つのボディ (1 つは静的、もう 1 つは動的) を接続しようとしています。私は btGeneric6DofSpringCONstraint を使用しています。

動的ボディは静的ボディからぶら下がっています。

シミュレーション中に、ダイナミック ボディの質量を変更しています。

btVector3 localInertia;
btb->getCollisionShape()->calculateLocalInertia(mass,localInertia);
btb->setMassProps(mass,localInertia);
btb->updateInertiaTensor();
//m_dynamicsWorld->addRigidBody(btb);
btb->activate(true);

ただし、使用する質量に関係なく、ボディは静的なボディから同じ距離でぶら下がっています。

なぜこれが起こっているのか分かりますか?

4

1 に答える 1

0

制約は更新されていないため、新しい質量特性を使用しておらず、内部で事前計算された値をキャッシュしていると思います。制約を更新する方法を検索する必要がありますが、解決策があるかどうかわかりません。

于 2014-05-19T20:06:04.727 に答える