RE: [Algorithms] number of iterations to solve collision between ri gid bodies
Brought to you by:
vexxed72
From: Jonathan H. <jhe...@cs...> - 2004-03-15 18:13:01
|
> -----Original Message----- > From: Jon Watte [mailto:hp...@mi...] > > > Once you have a TOI heap, you pop the smallest TOI pair, integrate > > all objects up to TOI, solve the impact, repeat pop-integrate-solve. > > If the heap is empty, just integrate up to dt. > > > If you get a very early impact with high restitution > (billiard balls, say) > wouldn't it be possible that the bounding volume after impact > resolution can > now interpenetrate the bounding volume of something you > discarded in the > early phase? > > To solve this, wouldn't you have to start with a bounding > sphere around the > object, then extend that sphere radius by ||V*dt|| (because > that's how far > the thing could move in any direction), then do the overlap > test between > bounding volumes? It seems like, only if by moving in any > direction you > cannot intersect any other object moving in any direction, > can you isolate > an object or island of objects. Yes that is more correct. In fact you probably have to extend each sphere radius by ||V*dt|| where V is the maximum velocity of ANY object in the simulation! Because a slow moving object could get hit from behind and start moving faster. Ok, now I have to confess. A heap would be the proper way to do it, but since total realistism was not required, I didn't use a heap. I just integrated each object by the min TOI of all its pairs, and then threw away the rest of the time step for that object. If an object was not involved in any TOI pairs, then I integrated it a full step, dt. Thanks for keeping me honest. John |