This program was written from scratch for sole learning purposes. I intended to implement most of the techniques from:
- Meshless Deformations Based on Shape Matching (2005)
- Position Based Dynamics (2007)
- Unified Particle Physics for Real-Time Applications (2014)
PBD methods seem to become a standard for games and animation related simulation. By coding these things from the ground up, I was hoping to have a better understanding of typical parameters and how they relate to each other. (e.G. mass, time step size and constraint iterations)
As in 'Unified Particle Physics' all physical motion is based on sphere primitives. A simple HashGrid is used for the Collision Broadphase. I managed to compile it with OpenMP and run the program on multiple threads, but it is left single threaded for now and the code is far from ideal. It rather stands as a prototype / experiment.
Built with cmake on OSX 10.13 including libraries :
- Qt5.10
- OpenGL (3.3 core profile)
- Assimp
- Eigen3
Links :
- LearnOpenGL the 'everything-to-do-with starting OpenGL go-to'
- QtOpenGL blog TrentReed a nice blog if you want to use Qt's latest OpenGL classes. I also used the inputManager class from Trent's blog
- Real-Time Collision Detection A solid reference and resource also with example-code
- GameProgrammingPatterns Without much clue about 'game programming' as such, to me this book is a neat guide and advisor, presenting relevant design patterns.