GPU Particle System

This is an particle simulation still in progress, fully run on the GPU. It uses two passes to update, and render the system. All particles can have N amount of unique properties.

The current images show just a simple simulation with 1 million particles, using a 1024*1024 texture for lookup. This with a 4D perlin noise and some playing around with the parameters creates some fancy effects.
This version uses a geometry shader to create a billoard from a single vertex(saving MVP calculations and vertex uploads). It also supports regular geometry objects. I have not tested the performance difference with a billboard mesh versus the current geometry shader approach.

This particle system runs in the Dex engine, supporting instant shader reloading. This makes creating particles that follow a complex behaviour a lot easier to implement. The engine also supports rendering to a rendertarget and blend with the main scene. This could also be an optimization if a GPU is too slow, to scale down the size of this rendertarget.

Features

  • Fully GPU based particle system
  • fast but complex behaviours like flow simulations
  • support rendering to seperate rendertarget
  • Written in two days

References