Sign in to follow this  

Collision response

Recommended Posts

Hello I am trying to understand the murky world of collision response. I have struggled through a few papers on different methods of doing it, but I still have a few things that are not quite clear in my head. The first paper I looked at was Thomas Jackobsens Advanced Character Physics. This method seems to respond to collisions by adjusting the position of the objects. It also seems to have no explicit velocity representation, it is just determined by the previous position and the current position. My understanding of the general algorithm is: while(some constraints not satisfied) { satisfy constraints by projecting points out to their correct position (updating velocity automatically) } I think this means that collision detection for the objects is performed inside the constraint loop. Is that correct? The second method I read about was a paper by Erin Catto. This one seems to use sequential impulses to resolve collisions. My understanding is that the impulses directly modify the velocity of the object, which is then used to update the position and resolve the collision. Is this correct? I think the general algorithm is: Detect Collisions Build velocity constraints to resolve collisions while(some constraints not satisfied) { satisfy constraints by modifying velocity } Update positions So with this method the collision detection is only performed once, and then the velocity of the objects is adjusted to resolve the collision. My main questions are about whether my understanding of the two methods is correct. Also I am interested in the advantages and disadvantages of the two approaches, and whether there are any other methods of doing this. What are the advantages of resolving constraints through the velocity(using impulses) rather than through the position(jackobsen)? Do any methods resolve collisions by using acceleration constraints? When would you use one method over the other? Is the Jackobsen method of having collision detection inside the constraint loop visually better than the sequential impulse method? I can imagine scenarios involving multiple objects where resolving the collision of one object causes it to be pushed into another. Would this not be detected until the next frame with Cattos method? Causing the intersection to be visible for a frame? My understanding is that both algorithms are iterative solvers for the MLCP problem. Are there any non-iterative methods to solving MLCPs? What are the advantages of using iterative methods vs non-iterative methods? Thanks for the help. :)

Share this post

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

Sign in to follow this