2010-11-08 4 views
1

Pour ceux d'entre vous qui ont utilisé la physique de balle ...Physique Bullet Problèmes

J'ai lu et a couru l'exemple du monde bonjour http://www.bulletphysics.org/mediawiki-1.5.8/index.php/Hello_World, et je suis confus où aller.

Le tutoriel hello world se composait d'un btStaticPlaneShape et d'un btSphereShape, deux corps rigides. La sphère rebondie sur le plan statique ne forme aucun problème.

Cependant, lorsque je crée une autre sphère dans une position différente, Bullet n'enregistre pas les collisions entre les deux formes de sphère, mais elle rebondit automatiquement sur btStaticPlaneShape. Quel type de magie interne fait que btStaticPlaneShape renvoie automatiquement les objets qui entrent en collision avec lui?

Y a-t-il un paramètre dans Bullet qui rebondit automatiquement les objets les uns sur les autres après une collision? Ou devez-vous tester manuellement les collisions et appliquer vous-même les forces résultantes?

Merci.

Répondre

0

Vous avez peut-être créé par inadvertance les sphères dans un état où Bullet ne pense pas qu'elles sont supposées pouvoir entrer en collision les unes avec les autres. Si vous vous en tenez aux valeurs par défaut et que vous ajoutez simplement une autre sphère au programme Hello World, Bullet devrait remarquer et réagir à leurs collisions. Ils ne rebondiront pas à moins que vous ne modifiiez également Hello World pour définir leur restitution sur quelque chose de plus grand que zéro, mais ils entreront en collision. Par exemple, j'ai ajouté une seconde sphère directement au-dessus du premier (en plaçant une boucle for autour du bloc de code qui crée la sphère et en utilisant la variable loop pour déterminer la valeur origine y) et en prolongeant la simulation à la fois pour atteindre l'avion. Le premier atterrit sur l'avion et s'y repose, le second atterrit sur le premier et s'y repose.

Si cela ne vous aide pas, la publication de votre code est probablement une bonne étape.