**0**

# Rigid body contact scenario requiring global solver

###
#1
Members - Reputation: **550**

Posted 23 March 2011 - 09:39 AM

So i'm writing this article on speculative contacts and i'm trying to find a simple contact scenario between two rigid bodies which would require a 'global' solver to correctly resolve the resting contact, rather than one in which you can just iterate over all the contacts and arrive at the correct solution...

Does anyone know of any particularly difficult to resolve, yet simple to illustrate scenario like this?

Cheers, Paul.

###
#3
Members - Reputation: **550**

Posted 24 March 2011 - 08:49 AM

Here is one global conflict scenario: the two dynamic objects are not aware that after CCD they end up in the same location.

There are more complicated cases, but this could be a start.

Thanks erwin

I was more asking about resting contact rather than CCD - trying to find a simple resting contact scenario which isn't solved correctly with a local solver....

Cheers, Paul.

###
#4
Members - Reputation: **272**

Posted 24 March 2011 - 10:11 AM

The projected gauss seidel/sequential impulse method, where you iterate over an array of pair-wise constraints is a global solver: all constraints are solved within the same loop and there is impulse exchange. The solution converges with a direct LCP solver if you increase the number of iterations.

Thanks,

Erwin

###
#5
Members - Reputation: **550**

Posted 24 March 2011 - 11:34 AM

What do you mean by 'local solver'?

The projected gauss seidel/sequential impulse method, where you iterate over an array of pair-wise constraints is a global solver: all constraints are solved within the same loop and there is impulse exchange. The solution converges with a direct LCP solver if you increase the number of iterations.

Thanks,

Erwin

A local solver would be one where you just iterate over the constraints solving the individual impulses without storing the impulse history (unlike erin catto's sequential impulses)....

Cheers, Paul.

###
#6
Members - Reputation: **272**

Posted 24 March 2011 - 12:09 PM

What do you mean by 'local solver'?

The projected gauss seidel/sequential impulse method, where you iterate over an array of pair-wise constraints is a global solver: all constraints are solved within the same loop and there is impulse exchange. The solution converges with a direct LCP solver if you increase the number of iterations.

Thanks,

Erwin

A local solver would be one where you just iterate over the constraints solving the individual impulses without storing the impulse history (unlike erin catto's sequential impulses)....

Cheers, Paul.

If you solve all the pairwise constraints (by applying impulses or forces) in the same loop, it is still a global solver although it might not converge. Even if you don't clamp the accumulated impulse, the impulse gets applied to each body, so it is part of the history.

Nevertheless, I'm curious what impact this has on the predictive contacts? You would adjust the target velocity based on the predicted allowed motion. Aside from the modified target velocity, there is no modification in the PGS solver (equivalent to sequential impulse as Erin calls it).

Thanks,

Erwin

###
#7
Members - Reputation: **550**

Posted 24 March 2011 - 01:13 PM

If you solve all the pairwise constraints (by applying impulses or forces) in the same loop, it is still a global solver although it might not converge. Even if you don't clamp the accumulated impulse, the impulse gets applied to each body, so it is part of the history.

Nevertheless, I'm curious what impact this has on the predictive contacts? You would adjust the target velocity based on the predicted allowed motion. Aside from the modified target velocity, there is no modification in the PGS solver (equivalent to sequential impulse as Erin calls it).

Thanks,

Erwin

Sorry ,yes its the convergence that i'm getting it - the regular iterated impulse solver will tend to over-estimate and i was looking for a simple diagram of such a case

And actually, the global solver is essential for correct TOI ordering in the predictive contacts stuff - i'm writing an article right now which will contain all the details

Cheers, Paul.