Jump to content

  • Log In with Google      Sign In   
  • Create Account

FREE SOFTWARE GIVEAWAY

We have 4 x Pro Licences (valued at $59 each) for 2d modular animation software Spriter to give away in this Thursday's GDNet Direct email newsletter.


Read more in this forum topic or make sure you're signed up (from the right-hand sidebar on the homepage) and read Thursday's newsletter to get in the running!


Rigid body contact scenario requiring global solver


Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.

  • You cannot reply to this topic
6 replies to this topic

#1 wildbunny   Members   -  Reputation: 550

Like
0Likes
Like

Posted 23 March 2011 - 09:39 AM

Hi guys,

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.



Sponsor:

#2 erwincoumans   Members   -  Reputation: 272

Like
1Likes
Like

Posted 23 March 2011 - 07:41 PM

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.

Attached Thumbnails

  • global_conflict.jpg


#3 wildbunny   Members   -  Reputation: 550

Like
0Likes
Like

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 erwincoumans   Members   -  Reputation: 272

Like
0Likes
Like

Posted 24 March 2011 - 10:11 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

#5 wildbunny   Members   -  Reputation: 550

Like
0Likes
Like

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 erwincoumans   Members   -  Reputation: 272

Like
0Likes
Like

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 wildbunny   Members   -  Reputation: 550

Like
0Likes
Like

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.







Old topic!
Guest, the last post of this topic is over 60 days old and at this point you may not reply in this topic. If you wish to continue this conversation start a new topic.



PARTNERS