Click or drag to resize
DigitalRuneDigitalRune Particles
DigitalRune Particles

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:

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. Particles can be rendered using DigitalRune Graphics or a custom renderer. Rendering can make use of:

  • 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:

Subtopics