Towards a Massively Parallel Solver for Position Based Dynamics

Position-based dynamics (PBD) is an efficient and robust method for animating soft bodies, rigid bodies and fluids. Recently, this method gained popularity in the computer animation community because it is relatively easy to implement while still being able to synthesize believable results at interactive rate. The animated bodies are modeled by using a large set of linearized geometrical constraints which are iteratively solved using a sequential Gauss-Seidel method on a single core CPU. However, when the animated scene involves a large number of objects, solving the constraints sequentially one after the other makes the computation of the motion too slow and not suitable for interactive applications. In this paper, we present a massively parallel implementation of position based dynamics which runs on the local GPU. In the initialization phase, the linearized geometrical constraints are divided in independent clusters using a fast, greedy coloring graph algorithm. Then, during the animation, the constraints belonging to each cluster are solved in parallel on the GPU. We employ an efficient simulation pipeline using a memory layout which favor both the memory access time for computation and batching for visualization. Our experiments show that the performance speed-up of our parallel implementation is several orders of magnitude faster than its serial counterpart.

[1]  Shannon Drone Real-time particle systems on the GPU in dynamic environments , 2007, SIGGRAPH '07.

[2]  Marco Fratarcangeli,et al.  A robust method for real-time thread simulation , 2007, VRST '07.

[3]  Rüdiger Westermann,et al.  Linear algebra operators for GPU implementation of numerical algorithms , 2003, SIGGRAPH Courses.

[4]  Jan Bender,et al.  Physically-Based Character Skinning , 2013, VRIPHYS.

[5]  Matthias Müller,et al.  Position based dynamics , 2007, J. Vis. Commun. Image Represent..

[6]  Matthias Müller,et al.  Hierarchical Position Based Dynamics , 2008, VRIPHYS.

[7]  Miles Macklin,et al.  Position based fluids , 2013, ACM Trans. Graph..

[8]  Nadine Abu Rumman,et al.  Position based skinning of skeleton-driven deformable characters , 2014, SCCG.

[9]  Marco Fratarcangeli,et al.  Position‐based facial animation synthesis , 2012, Comput. Animat. Virtual Worlds.

[10]  Leland L. Beck,et al.  Smallest-last ordering and clustering and graph coloring algorithms , 1983, JACM.

[11]  Matthias Müller,et al.  Position based dynamics , 2007, J. Vis. Commun. Image Represent..

[12]  J. J. Moré,et al.  Estimation of sparse jacobian matrices and graph coloring problems , 1983 .

[13]  Miguel A. Otaduy,et al.  Position-based Methods for the Simulation of Solid Objects in Computer Graphics , 2013, Eurographics.

[14]  Jan Bender,et al.  Position‐based rigid‐body dynamics , 2016, Comput. Animat. Virtual Worlds.

[15]  David S. Johnson,et al.  Computers and Intractability: A Guide to the Theory of NP-Completeness , 1978 .

[16]  Jan Bender,et al.  Parallel Simulation of Inextensible Cloth , 2008, VRIPHYS.

[17]  Mariette Yvinec,et al.  Triangulations in CGAL , 2002, Comput. Geom..

[18]  Jan Bender,et al.  Efficient GPU Data Structures and Methods to Solve Sparse Linear Systems in Dynamics Applications , 2013, Comput. Graph. Forum.

[19]  Jérémie Allard,et al.  Parallel Dense Gauss-Seidel Algorithm on Many-Core Processors , 2009, 2009 11th IEEE International Conference on High Performance Computing and Communications.