🎉 Celebrating 25 Years of GameDev.net! 🎉

Not many can claim 25 years on the Internet! Join us in celebrating this milestone. Learn more about our history, and thank you for being a part of our community!

Position based dynamics second order integration with inequality constraints

Started by
3 comments, last by _WeirdCat_ 6 years, 9 months ago

Hello,

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...

 

Thanks!

-Chris

Advertisement

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.

http://matthias-mueller-fischer.ch/talks/PBDTutorial2017-slides-2.pdf

Ah interesting, hadn't seen those slides. In the slides they reference this paper (https://www.cs.ubc.ca/~rbridson/docs/english-siggraph08-cloth.pdf) which talks about performing an explicit velocity correction to counteract the effect. I'm guessing this correction would have to go after the velocity is computed. I will experiment with it some.

A little bit oftopic but physically based and actual physical calculations are two different things you better study that yourself out

This topic is closed to new replies.

Advertisement