Jump to content
  • Advertisement

Position based dynamics second order integration with inequality constraints

This topic is 391 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts


In reference to position based dynamics survey section 4.2.5: http://matthias-mueller-fischer.ch/talks/2017-EG-CourseNotes.pdf

The second order integration method they derive works very well for conserving energy.  The original PBD integration loses a lot of energy, and it is especially apparent during rotation of groups of constrained particles. With the second order method, it looks almost perfect.

However, I'm seeing bouncing and generally inconsistent reactions when this method is paired with any inequality constraints, but most importantly, collisions. They mention that no changes are required to the inner solve loop, but it seems as though inequality constraints will have to be treated specially for this type of integration to work. I don't understand the math enough to know how or why it isn't working.

Does anyone know how to treat inequality constraints (collisions) properly with second order integration in position based dynamics?

My current attempt to fix it is to change collisions to equality constraints, and essentially pull the colliding object back towards the collision point (like a distance constraint). This works and no longer bounces. However, now the problem is how to determine when to destroy the constraint...




Edited by coderchris

Share this post

Link to post
Share on other sites

Interesting link, thanks! I just checked the course slides and they just say  "Non-smooth events (contact) need special handling" (slide 29). Sadly they don't say what that special handling is though.  It might be they don't have a solution yet themselves. I would reach out to Mueller or Bender and ask directly.


Edited by Dirk Gregorius

Share this post

Link to post
Share on other sites

  • Advertisement

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!