Particle Editor

Robust interactive particle editor.

Description: Particle effects add a lot to game graphics and are an important system for any game engine. I personally enjoy particle work because you get a lot of bang for your buck and they can be used in amazingly diverse ways.

Plus it can use the glow shader, which deserves its own page.

Tools: Visual C++ Pro, MFC, OpenGL.

Topics: Particle effects, streaming VBO (buffer orphaning), instanced rendering, billboarding.

Technique overview:

For performance I am doing server-side multi-buffering (buffer re-specification/orphaning) to feed all the particle data into the system as vertex attributes then making a glDrawArraysInstanced call to render out the whole emitter with a single call.

The vertex shader takes the billboard matrix with the particle's scale and transforms the quad. The fragment shader simply samples the texture and mixes it with the color data associated with particle. It also writes to the glow render target based on glow factor.

Lets start with a video, note the compression has degraded the quality significantly.

The editor has a lot of parameters you can manipulate to create a huge range of effects. Its pretty fun to mess around with and just explore the visual results of different settings. The slider control is a must and lets you dial in the effect you want quickly.

Here is a screen shot.

Particle Editor Image 1

There is also an image selector dialog that makes picking the image you want to use easy.

Particle Image Editor 4

Here are a couple videos demonstrating the ability to attach emitters to dynamic objects and the 'relativity' parameter which interpolates between world space and object space for particle movement.

Obligatory code screen shot.

Particle Editor Image 5

Here are a couple more videos of effects.

Please contact me if you are interested in acquiring a copy of the program, seeing the source code, or have any comments.

Back to the projects page.