@modoki/engine / index / IParticleBackend
Interface: IParticleBackend
The Three.js particle backend contract. The CPU/TSL backend implements this today; a GPU-compute backend implements the same contract for 100k+ counts. Adds the THREE render object to the renderer-agnostic IParticleBackendCore.
Extends
IParticleBackendCore
Particles
create()
create(
def):ParticleHandle
Instantiate an effect; returns a handle owning the backend's render object.
Parameters
def
Returns
Inherited from
IParticleBackendCore.create
dispose()
dispose(
handle):void
Release GPU/CPU resources for this handle.
Parameters
handle
Returns
void
Inherited from
IParticleBackendCore.dispose
getObject3D()
getObject3D(
handle):Object3D<Object3DEventMap>
The renderable to add to the THREE scene for this handle.
Parameters
handle
Returns
Object3D<Object3DEventMap>
pause()
pause(
handle):void
Parameters
handle
Returns
void
Inherited from
IParticleBackendCore.pause
play()
play(
handle):void
Parameters
handle
Returns
void
Inherited from
IParticleBackendCore.play
restart()
restart(
handle):void
Parameters
handle
Returns
void
Inherited from
IParticleBackendCore.restart
seek()
seek(
handle,seconds):void
Jump to seconds into the effect (recompute via stepped simulation).
Parameters
handle
seconds
number
Returns
void
Inherited from
IParticleBackendCore.seek
setDef()
setDef(
handle,def):void
Hot-swap the effect definition (editor live edits) without losing the handle.
Parameters
handle
def
Returns
void
Inherited from
IParticleBackendCore.setDef
setSpeedScale()?
optionalsetSpeedScale(handle,scale):void
Runtime multiplier on each new particle's launch speed (1 = authored). Lengthens/shortens the plume and trails over ~one particle lifetime — e.g. an engine flame throttling up on acceleration. Optional: a backend may treat it as a no-op.
Parameters
handle
scale
number
Returns
void
Inherited from
IParticleBackendCore.setSpeedScale
setTransform()
setTransform(
handle,matrix):void
Set the emitter's world matrix (position/rotation/scale of the emitter origin). Column-major (THREE.Matrix4); the 2D backend reads translation/rotation/scale off it.
Parameters
handle
matrix
Matrix4
Returns
void
Inherited from
IParticleBackendCore.setTransform
update()
update(
handle,dt):void
Advance simulation by dt seconds (the backend tracks its own elapsed time).
Parameters
handle
dt
number
Returns
void
Inherited from
IParticleBackendCore.update