collision + verlet + rotation = pain

Started by
0 comments, last by vicviper 20 years, 1 month ago
Hi, I've been trying to implement rigid body simulation with verlet integration, and collision detection with OBBs until some days ago, things have been running well... until I began integrating rotations in the collision detection, and it seems the fault goes to the verlet integrator: Verlet is cool because it automatically manages body velocities after a collision, because when two objects overlap after a collision, you just need to move them apart, and their velocities are automatically updated. BUT: imagine you have two OBBs very close each other, their linear velocities are zero. Also, imagine that these OBBs are very long in one of the axis... like two paralel sticks. | | | | | | | | Now, one of the sticks begins rotating arround it's center, there's an inmediate collision with the other stick, the collision test returns a very deep overlap, and moves the two sticks apart acordingly. . | / . . . . | . / . |/ . . .<=|. /=> . | . . . . . | / ./| . . . . . |/ Since the objects were initially at rest, what happens is that the bodies are "launched" at high speed apart from each other due to the verlet integrator. So, is there a good solution for this when using verlet integrators? or, verlet integrators are only useful for non rotating objects, and they're a no-no for rotating rigid bodies? [edited by - vicviper on February 25, 2004 5:08:01 AM] [edited by - vicviper on February 25, 2004 5:08:34 AM] [edited by - vicviper on February 25, 2004 5:08:49 AM] [edited by - vicviper on February 25, 2004 5:09:03 AM]
Advertisement
You "just" need to work out how to partition your modifications to the objects into both an orientation and a position change. I''m not sure if there is a physical way of doing this, but I expect it would be possible to come up with a heuristic that pretty much worked.

Incidently, I''ve wondered about how verlet would work with full rigid bodies (rather than particle collections) too, so would be interested to hear how you get on...

This topic is closed to new replies.

Advertisement