A parallel constraint solver for a rigid body simulation

  • Authors:
  • Takahiro Harada

  • Affiliations:
  • Advanced Micro Devices, Inc.

  • Venue:
  • SIGGRAPH Asia 2011 Sketches
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Rigid body simulations are used often in games. Because of the computational cost, a large scale simulation is not feasible in real time. However, with the increased performance of GPUs, achieving a larger-scale simulation in real time becomes more realistic. A rigid body simulation is too complicated to implement on the GPU in a straightforward manner. One of the challenges is implementing an efficient constraint solver. A projected Gauss-Seidel method is often used to solve constraints [Catto 2005]. The input and output of the solver are the velocity of rigid bodies. However, constraints sharing a body cannot be solved in parallel because of this data dependency. This is a challenge when a GPU is used for a rigid body simulation. A solution to solve constraints in parallel is to split them into groups of constraints called batches. In a batch, no body is shared among constraints, so they can be solved in parallel. An introduction of batch solves the problem of constraint solving, but batch creation itself is a serial process. To complete a rigid body simulation pipeline on the GPU, batch creation on the GPU is also necessary.