/gpu-particles

A GPU Particle System for Unity

Primary LanguageC#MIT LicenseMIT

GPU Particles

A GPU Particle System for Unity

Screenshots

Features

  • GPU-accelerated - Able to handle millions of particles (even without a beast of a PC)
  • Lots of customization options (more to come...)
  • Fancy Editor:

System Requirements

Made with Unity 2017.2 & .3. Might work with older versions. Only tested on Desktop with Nvidia GPU.

To do

  • Implement 'Emission Extrapolation' to compensate emission at high velocities
  • Implement 'Linear Drag'
  • Implement 'Time Scale'
  • Use namespace
  • Add 'Dark Skin' option
  • Implement Size Module
  • Use DrawProcedural for draw calls
  • Update particle count in System Module on Update instead of OnGUI
  • Use geometry shader for billboard particles <- reduces performance
  • Use time instead of CPU-generated seeds for pseudorandomness
  • Document code
  • Fix glitches caused by 'Inherit Velocity' after big timesteps
  • Fix 'Max Particles' change at runtime
  • Add 'Particle' Module to change appearance
  • Make system run in Edit Mode
  • Change 'Inherit Velocity' to work with transformation matrices
  • Implement 'External Forces'
  • Implement 'Screen Space Collision'
  • Implement other rendering methods (Mesh)
  • Implement other Emission Shapes
  • Implement 'Direction Types' for all Emission Shapes

License

This project is licensed under the MIT License - see the LICENSE file for details.

The included sIBL images are from sIBL Archive.