Experimenting with performance evaluation and improvements to Brandon Pelfrey's smoothed-particle hydrodynamics (SPH) fluid simulation tutorial:
- Real-time Physics 101: Let’s Talk Particles
- Real-time Physics 102: Springboard into Constraints
- Real-Time Physics 103: Fluid Simulation in Games
- CMake >= 3.10.0
- C++11 compiler with OpenMP support
- OpenGL runtime support
- Q/Escape: Exit
- Space: Add more particles
- Mouse button: Attract nearby particles
- +/-: Increase/decrease the number of simulation steps per frame
You can use the OMP_NUM_THREADS
environment variable to limit the number of threads used by OpenMP.
Appropriate versions of GLFW and GLM are included as submodules so there's no need to install them separately.
GLFW has some platform-specific build dependencies:
-
Linux
# Debian & derivatives: sudo apt install \ libx11-dev \ libxrandr-dev \ libxinerama-dev \ libxcursor-dev \ libxi-dev \
-
Windows
TBD
-
macOS
TBD
git clone --recurse-submodules https://github.com/genpfault/sph-tutorial.git
cd sph-tutorial
mkdir build
cd build
cmake ../ -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build .