Particle system overview
Here you will find an overview of the high-level concepts of hh-fx particles, with some definition of common terms that will be used throughout this wiki, such as particle mediums, evolvers, samplers, etc...
Contents |
Birth
| hh-fx particles are added into the world through 'Particle spawners'
When editing, spawners are seen in the realtime editor as Particle layers, and they contain the whole particle definition.
|
![]() 8 Particle spawners/layers in the treeview |
Simulation
| 'Particle evolvers' are objects that take a list of particles each simulation frame, and applies some operation to them. Notable particle evolvers are the
|
![]() Displaying particle-medium bounds in the realtime editor viewport |
Rendering
| Particles are rendered through 'Particle renderers'. As there are particle mediums for the simulation, there are particle render mediums for the rendering. A particle render medium can render one or more particle mediums. For example, if two particle layers have different evolve states, but share the same particle renderer (the settings are the same), then they will share the same render medium, and be rendered in a single geometry batch / draw call. |
![]() Mesh particle renderer |
Advanced
| Particle scripts can use 'Particle samplers', either to directly set into a particle field, or to use in some intermediate computation. Notable particle samplers are the
Particle events can be triggered when something special happens, such as when a particle is born, dies, or collides with the physical world. They can trigger the instantiation of other particle effects. The C++ runtime also allows user game-code to be notified when a specific particle event is triggered.
Last but not least, Particle effect attributes can be defined. They are vector values global to a specific instance of a whole particle effect, and can be accessed from scripts anywhere inside any layer of the effect. Particle attributes are useful to allow gameplay code to control particle effects behavior on a per-instance scale. |
![]() Turbulence sampler, 120K particles |
Debugging & Optimization
| The effect editor also has a few debugging and optimization tools, namely:
Although not intended to be used directly by fx-artists (see the 'For developers' section in the main wiki page):
|
![]() Particle-picking in the trace report mode |




