niumosun / GPUSmoke

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GPUSmoke

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

  1. Download and install Visual Studio 2019
  2. Download and install CUDA Toolkit 11.3

Building

  1. Clone the repo
  2. Build the solution
  3. gpufluid.exe will be in x64 or x86, /Debug or /Release depending on your build configuration

Running Simulation

  1. Create a new folder named output next to the gpufluid.exe
  2. Create a new folder named cache in output folder
  3. Run gpufluid.exe

GUI

  1. W - zoom in
  2. S - zoom out
  3. A - go left
  4. D - go right
  5. Left mouse button + A/D rotate camera
  6. Scrool zomm in/out
  7. Q - camera up
  8. Z - camera down
  9. R - reset simulation
  10. 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 512^3)
  • 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

About


Languages

Language:C++ 83.4%Language:C 9.5%Language:Cuda 4.9%Language:CMake 2.1%Language:Shell 0.1%Language:GLSL 0.0%Language:Python 0.0%