3 ms·
If you want OSS Position Based Dynamics code you can get Mueller's original C++ implementation here (https://github.com/InteractiveComputerGraphics/PositionBase
by Impossible 8y ago
If you want OSS Position Based Dynamics code you can get Mueller's original C++ implementation here (https://github.com/InteractiveComputerGraphics/PositionBasedDynamics https://github.com/InteractiveComputerGraphics/PositionBased...). The GPU implementation is not open, but this code can be adapted to run on the GPU outside of Flex.
Scrawk converted the code to C# in order to support Unity and implemented a Unity based version of the fluid dynamics code that runs on the GPU (using portable compute shaders instead of CUDA) as well.
https://github.com/Scrawk/Position-Based-Dynamics https://github.com/Scrawk/Position-Based-Dynamics
https://github.com/Scrawk/PBD-Fluid-in-Unity https://github.com/Scrawk/PBD-Fluid-in-Unity
The only game that I'm aware of that uses position based dynamics on the GPU is Claybook (https://twvideo01.ubm-us.net/o1/vault/gdc2018/presentations/Aaltonen_Sebastian_GPU_Based_Clay.pdf https://twvideo01.ubm-us.net/o1/vault/gdc2018/presentations/...). Because PDB is basically an extension of Jakobsen style verlet physics (http://www.cs.cmu.edu/afs/cs/academic/class/15462-s13/www/lec_slides/Jakobsen.pdf http://www.cs.cmu.edu/afs/cs/academic/class/15462-s13/www/le...) which is used in a lot of games (Fantastic contraption, Gish, World of Goo, various Bridge builders, etc.) In all cases the developers are using custom physics code and not using a library. This is very different than rigid body dynamics where most shipping games use a licensed physics engine (Havok, PhysX, Bullet, ODE, etc.)