naeioi / PBF-CUDA

Position Based Fluids CUDA implementation
129 stars 21 forks source link
cuda fluid-solver opengl real-time simulation

PBF-CUDA

This project is an implementation of Position Based Fluids[1] written in CUDA and modified Screen Space Fluids Rendering[2] written in OpenGL.

Gallery

Double Dam Break 32K particles

Double Dam Break

See figs for additonal screenshots of single dam, surface normal map and sweeping boundary scene.

Features

Techniques

Evaluation

Performance evaluated on a notebook with GTX 1050, i7-7700 HQ.

Under configuration of 4 incompressibility confinement iterations and 2 smoothing iterations each frame, this implementation runs at ~30 fps with 32K particles in Double Dam Break scene (Screenshots above).

Dependencies

Licence

Apache License 2.0 (Apache-2.0)

References

[1] M. Macklin and M. Müller, “Position based fluids,” ACM Trans. Graph., vol. 32, no. 4, p. 1, Jul. 2013. \ [2] W. J. van der Laan, S. Green, and M. Sainz, “Screen space fluid rendering with curvature flow,” in Proceedings of the 2009 symposium on Interactive 3D graphics and games - I3D ’09, 2009, p. 91. \ [3] S. Green, “Particle Simulation using CUDA,” cse.uaa.alaska.edu, no. September, pp. 1–12, 2013. \ [4] Learn OpenGL, extensive tutorial resource for learning Modern OpenGL for great skybox tutorial.