
DigitalRune Particles is a CPU-based particle system library for .NET, Mono and XNA. It enables developers to add visual effects to their applications and games. Unlike existing particle engines, DigitalRune Particles does not use a limited, predefined particle definition. Instead, new types of particles can be defined on the fly. Developers have the freedom to design anything from a basic particle effect to nested particle systems with complex behaviors. The library was designed for use in 3D computer graphics, video games and virtual reality applications.
This topic contains the following sections.
Minimal Requirements
Microsoft .NET Framework 4.0 Client Profile or Mono
Supported Platforms
- Microsoft .NET Framework 4.0 (or higher)
Microsoft XNA Framework 4.0 (Windows, Xbox 360, Windows Phone 7)
Features
Here is an overview of features in this product.
General
Intended and optimized for use in 3D real-time applications
Particle System
The particle system is CPU-based and designed for maximal flexibility:
Particles can have any number of custom parameters: position, mass, size, velocity, damping, energy, restitution, etc.
Particle systems can have custom, animatable parameters: For example, an "emission rate" or a "global alpha" influencing particles and nested particle systems.
Particle systems can have bounding shapes that can be used to cull particles.
Particle systems can be combined to create complex effects.
Particle systems can be cloned, serialized and loaded using the XNA Content Pipeline.
Multi-threaded update of particle systems
Resource pooling with automatic recycling of particle systems
And more...
Particle Effectors
Particle effectors update particles or manipulate particle systems. The library and the included sample applications offer several predefined effector types:
Create particle bursts or emit particles at animatable emission rates.
Initialize particle parameters using random value distributions: uniform intervals, Gaussian distributions, points on line segments, spheres, boxes, user-defined distribution, etc.
Emit particles on a triangle mesh.
Fade particles or whole particle systems in/out.
Animate particles using linear interpolation or configurable functions.
Move/rotate/accelerate particles.
Let particles bounce off objects.
Animate particle textures.
Recycle dead particle systems.
Or implement your own particle behaviors.
Particle Rendering
The library is graphics engine independent. The included sample applications provide an example renderer for the Microsoft XNA Framework. The particle renderer supports:
Depth-sorting of particle systems and particles
State-sorting and batching of particle systems to minimize render state changes
Texture atlases and animated particle textures
Configurable blend states
Configurable billboard types: screen-aligned, view plane-aligned, viewpoint-oriented, axial or custom billboard orientations
Ribbon rendering (a.k.a. line rendering, trail rendering)
Namespaces
Following namespaces belong to DigitalRune Particles: