Glossary

ParticleSystem

Root node of a particle effect. Hosts emitters, affectors, and colliders as children. Properties on this node (framerate, integration method, sorting camera) apply to every descendant. See Particle system anatomy.

ParticleEmitter

Spawns and renders particles. Behaviour is determined by the materials assigned to its material slots (Emission Material, Emission Count Material, Particle Material, and optionally Self Affect Material, Event Generate Material). See Emission and Particle rendering materials.

ParticleAffector

Applies a per-frame force or transformation to particles. A world-space affector positioned by the node’s transform, as opposed to the per-emitter self-affector. See Affectors.

ParticleCollider

Defines a collision volume that particles interact with after integration. Shape, bounce, and friction are plugin-defined; the actual intersection test is a compute shader on Collider Material. See Colliders.

material slot

A property on a particle node whose value is a Material reference and whose compute shader implements a specific protocol (EmitParticle, EmissionCount, Affector, Collide, GenerateEvents). The shipped asset package provides one material per common case per slot. See Particle system anatomy for the list of slots per node type.

compute material

A Kanzi material whose material type replaces the usual vertex and fragment stages with a single compute stage. Every slot on a particle node except Particle Material consumes compute materials.

emission material

Compute material assigned to ParticleEmitter.EmissionMaterial. Implements EmitParticle: runs once per newly-spawned particle to set initial position, velocity, lifetime, and scale. See Emission.

emission-count material

Compute material assigned to ParticleEmitter.EmissionCountMaterial. Implements EmissionCount(): returns the number of particles to spawn this frame. Drives rate, burst, and event-driven emission patterns. See Emission.

affector material

Compute material assigned to ParticleEmitter.SelfAffectMaterial or ParticleAffector.AffectorMaterial. Implements Affector(AffectorTransform, particle): returns a force vector per particle per frame. See Affectors.

collider material

Compute material assigned to ParticleCollider.ColliderMaterial. Implements Collide(transform, position, velocity): returns a HitInfo describing whether (and where) a particle’s path intersects the collider shape. See Colliders.

event-generator material

Compute material assigned to ParticleEmitter.GenerateEventsMaterial. Runs once per particle per frame and writes zero or more records to the emitter’s event buffer. Consumed by a subemitter via a binding. See Events and subemitters.

particle rendering material

Conventional (vertex + fragment) material assigned to ParticleEmitter.ParticleMaterial. Controls the look of drawn particles: colour ramps, scale over lifetime, textures, blend mode. See Particle rendering materials.

MaximumAmount

Upper bound on live particles per emitter. Backs a fixed-size GPU pool allocated at load. See Sizing MaximumAmount.

subemitter

A ParticleEmitter whose Emission Material consumes an event buffer produced by another emitter. The canonical “smoke puffs where fire particles die” pattern. Not a distinct node type. See Events and subemitters.

event buffer

GPU buffer on ParticleEmitter.EventBuffer. Written by the emitter’s assigned event-generator material, one short record per event (spawn, death, hit, per-frame predicate match). Read by subemitters via a binding on Emission.SourceEventBuffer.

particle data buffer

GPU buffer on ParticleEmitter.ParticleDataBuffer. Holds the full per-particle state (position, velocity, lifetime, etc.) for the emitter’s live particles. Subemitters bind this to Emission.SourceParticleDataBuffer so their emission shader can read the origin particle’s state when an event fires.

asset-package property type

A PropertyType declared in assets/ParticlesAssetPackage/PropertyTypes/. Its value is read by a compute shader whose material occupies one of a node’s material slots. Emission.Lifetime and Affector.Radius are examples. These properties are not auto-added when a material is selected: the author has to set each one on the node explicitly. See Particle editor reference.

web editor

Browser-based particles authoring tool, currently in development. When released, it will generate ParticleEmitter, ParticleAffector, and ParticleCollider children and their material-slot bindings from a high-level graph. For the current release, author Kanzi Particles projects by hand in Kanzi Studio.

Verlet integration

Time integration scheme selected by ParticleSystem.IntegrationMethod. Preserves energy better than the classical Euler method at similar cost; prevPosition is populated every frame regardless of which integrator is active.