GPU Rigid Body Dynamics, NVIDIA
Mass Splitting for Jitter-Free Parallel Rigid Body Simulation
Richard Tonge, Feodor Benevolenski, Andrey Voroshilov
ACM Trans. Graphics (SIGGRAPH 2012), 31(4), 2012.
We present a parallel iterative rigid body solver that avoids common artifacts at low iteration counts. In large or real-time simulations, iteration is often terminated before convergence to maximize scene size. If the distribution of the resulting residual energy varies too much from frame to frame, then bodies close to rest can visibly jitter. Projected Gauss-Seidel (PGS) distributes the residual according to the order in which contacts are processed, and preserving the order in parallel implementations is very challenging. In contrast, Jacobi-based methods provide order independence, but have slower convergence. We accelerate projected Jacobi by dividing each body mass term in the effective mass by the number of contacts acting on the body, but use the full mass to apply impulses. We further accelerate the method by solving contacts in blocks, providing wallclock performance competitive with PGS while avoiding visible artifacts. We prove convergence to the solution of the underlying linear complementarity problem and present results for our GPU implementation,which can simulate a pile of 5000 objects with no visible jittering at over 60 FPS. [pdf] [supplement pdf] [.avi]
Solving Rigid Body Contacts
Presented at the Game Developers Conference, 2012.
GPU Computing Gems, Jade Edition
Wen-Mei Hwu, Editor. Morgan Kaufman, 2012
I am the section editor for interactive physics and AI for games and engineering simulation.
PhysX GPU Rigid Bodies in Batman: Arkham Asylum
Richard Tonge, Ben Wyatt and Ben Nicholson
Game Programming Gems 8, Adam Lake, Editor. Cengage, 2012.
Dinner, dinner, dinner,dinner,
dinner, dinner, dinner,dinner,