GPUSmoke
June 3, 2021 · View on GitHub
Interactive speed GPU rendering of smoke
CUDA Only
This program requires a CUDA compatible GPU. AMD GPUs are not supported.
Introduction
To create nice looking smoke is an expensive operation. This code leverages NVIDIA GPUs to create smoke simulations quickly and efficiently using CUDA.
Getting Started
Prerequisites
- Download and install Visual Studio 2019
- Download and install CUDA Toolkit 11.3
Building
- Clone the repo
- Build the solution
gpufluid.exewill be inx64orx86,/Debugor/Releasedepending on your build configuration
Running Simulation
- Create a new folder named
outputnext to thegpufluid.exe - Create a new folder named
cacheinoutputfolder - Run
gpufluid.exe
GUI
- W - zoom in
- S - zoom out
- A - go left
- D - go right
- Left mouse button + A/D rotate camera
- Scrool zomm in/out
- Q - camera up
- Z - camera down
- R - reset simulation
- F - stop exporting
TODO list
Short Term
- Render temperature
- Simple Graphical Interface
- Sliders with most important factors
- Camera and light rotation
Short-Medium Term
- Sparse and Multi-Threaded vdb saving
- Host memory usage for Huge Scale Simulations (resolution over )
- Adaptive Domain - probably won't be faster in case of smoke simulation, however I'll need to do more research
- Object Collision
- Initial sphere collision
- More complex geometry
- Simple Forces --> (Wind, Turbulance, Noise)
- Preset creator (LOAD/SAVE)
- Fix Density over 1.0 issue
- Volume upsampling - In the research phaze
- Wavelet noise upsampling
- Custom Neural Network upsampling
Medium-Long Term
- Smoke Colors
- OpenVDB IO
- Import
- Export
- Works but slowly
- Obj import
- Simple Blender integration
- Faster and better Render Engine
Long Term
- Smoke adaptive resolution
- Liquids!!!
- FLIP fluid solver
- Sparse Volume optimization
- FLIP whitewater particles
- FLIP mesh solver
Authors
Michał Wieczorek