This is a repository for my 3D version of a SPH Langarian fluid simulation using my own rendering engine SpectraWise-Engine. The implementation is using OpenGL 4.6.
My 2D implementation version can be found here: Fluid-Simulation-2D
Note
The simulation is utilizing Multithreading and GPU Billboard rendering.
- Requirements
- Instructions
- TODO List
- Bug Reporting
- Resarch Papers and referenses
- Examples
- External Librarys
- External Help
- Cmake 3.2+
- Compiler that runs C++20
Download the repo to you computer. Generate the build file with CMake and just go crazy! All of the Fluid simulation files is in the Engine->Physics folder.
Note
A more descriptive manual is found here
- Cleanup code!
- Make Compute shader work
- Make 3D bound better looking
- Apply stickyness to the particles to mimic water better.
- Implement a simple Rigidbody to particle collision system
- Experiment with Spheretrace rendering for water.
- Implement simple lights
- Make water reflective.
- Make bound rotate.
- Possibillity to export and import to 3D softwares like Houdini.
- Add liquid presets
- Implement a usable UI
- Add better movement
- Implement input manager
- Implement quick reset of shaders
- Add possibilities to change from 2D to 3D
- Add possibilities to change from CPU to GPU Calculations
- Add possibility to import and export Universal Scene Description(USD) files.
- Dynamic color gradient in water.
Would you encounter any bugs within the simulation, please create an issue and report it!
- Viscosity infinity energy loop. (Making infinity swirls in corners)
- Compute shader implementation not working.
- Pressure going crazy when the fps is below 40.
- Particle-based Viscoelastic Fluid Simulation
- Real-Time Fluid Dynamics for Games
- Particle-based Fluid Simulation for Interactive Applications
- Smoothed Particle HydroDynamics Part 3
- Particle Simulation using CUDA
- Smoothed Particle Hydrodynamics techniques for the physics based simulation of fluids and solids
- Sebastian Lauge Fluid Simulation, Coding adventure
- SPlisHSPlasH
- OpenUSD
Loading Examples ...
Spectrawise uses:
- GLFW
- GLEW
- Dear ImGUI
- NanoVG
- Soloud
- GLM