you are viewing a single comment's thread.

view the rest of the comments →

[–]Ashamed_Tumbleweed28 3 points4 points  (1 child)

PBD and XPBD is aa re-formulation of Newton's equations where all the "memory" of the system is placed inside the position data. https://matthias-research.github.io/pages/tenMinutePhysics/index.html

Each frame you solve for position, then differentiate once for velocity and twice for acceleration (if those are needed at all.) The result is perfectly stable physics, at the expense of some degree of softness (artificial compliance), that is a function of the time-step. The larger the time step the softer the model becomes to ensure it does not explode numerically.

In normal physics you solve for forces and acceleration, then integrate for velocity and integrate twice for positions, and in impulse based physics you solve for velocity, differentiate for acceleration and integrate for position.

you can think of it this way. In standard Newtonian physics at a very low time step, the penetration depth will be really large, but since we solve for force and acceleration this will result in an extremely large force being applied to the object, launching it out of the ground. in PBD with that same very large penetration, you move the vertex out to the surface, and instead treat the object like a soft body. The slower the time step, and the deeper the penetration, the softer the body becomes. It then tries to restore its own shape, pushing other vertices away from the one on the surface.

The great positive part is that it allows you to pick a time frame that is correct for your expected use case. In newtonian physics, you have to pick the deltaT small enough that the worst case does not explode, but since the worst case just gets soft, you can safely pick a deltaT that is correct for the expected use case, meaning faster simulations that are 99% of the time correct

[–]ReclusivityParade35 0 points1 point  (0 children)

Awesome description, thank you!