reckfellENGINE

ParticleProcessMaterial

Holds a particle configuration for GPUParticles2D or GPUParticles3D nodes.

On this page
class ParticleProcessMaterialReckfellSharpInherits Material

Holds a particle configuration for GpuParticles2D or GpuParticles3D nodes.

ParticleProcessMaterial defines particle properties and behavior. It is used in the process_material of the GpuParticles2D and GpuParticles3D nodes. Some of this material's properties are applied to each particle when emitted, while others can have a CurveTexture or a GradientTexture1D applied to vary numerical or color values over the lifetime of the particle.

Declarations checked against C# SDK 1.0.0. Expand a name to see declarations and documentation.

Constructors1

ParticleProcessMaterialConstructor
# ParticleProcessMaterial
C#
public ParticleProcessMaterial();

Properties125

AlphaCurveProperty
# AlphaCurve
C#
public Texture2D AlphaCurve { get; set; }

The alpha value of each particle's color will be multiplied by this CurveTexture over its lifetime. Note: ParticleProcessMaterial.AlphaCurve multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.VertexColorUseAsAlbedo must be true. For a ShaderMaterial, ALPHA *= COLOR.a; must be inserted in the shader's fragment() function. Otherwise, ParticleProcessMaterial.AlphaCurve will have no visible effect.

AngleProperty
# Angle
C#
public Vector2 Angle { get; set; }
AngleCurveProperty
# AngleCurve
C#
public Texture2D AngleCurve { get; set; }

Each particle's rotation will be animated along this CurveTexture.

AngleMaxProperty
# AngleMax
C#
public float AngleMax { get; set; }

Maximum initial rotation applied to each particle, in degrees. Only applied when ParticleProcessMaterial.ParticleFlagDisableZ or ParticleProcessMaterial.ParticleFlagRotateY are true or the BaseMaterial3D being used to draw the particle is using BaseMaterial3D.BillboardModeEnum.Particles.

AngleMinProperty
# AngleMin
C#
public float AngleMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.AngleMax.

AngularVelocityProperty
# AngularVelocity
C#
public Vector2 AngularVelocity { get; set; }
AngularVelocityCurveProperty
# AngularVelocityCurve
C#
public Texture2D AngularVelocityCurve { get; set; }

Each particle's angular velocity (rotation speed) will vary along this CurveTexture over its lifetime.

AngularVelocityMaxProperty
# AngularVelocityMax
C#
public float AngularVelocityMax { get; set; }

Maximum initial angular velocity (rotation speed) applied to each particle in degrees per second. Only applied when ParticleProcessMaterial.ParticleFlagDisableZ or ParticleProcessMaterial.ParticleFlagRotateY are true or the BaseMaterial3D being used to draw the particle is using BaseMaterial3D.BillboardModeEnum.Particles.

AngularVelocityMinProperty
# AngularVelocityMin
C#
public float AngularVelocityMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.AngularVelocityMax.

AnimOffsetProperty
# AnimOffset
C#
public Vector2 AnimOffset { get; set; }
AnimOffsetCurveProperty
# AnimOffsetCurve
C#
public Texture2D AnimOffsetCurve { get; set; }

Each particle's animation offset will vary along this CurveTexture.

AnimOffsetMaxProperty
# AnimOffsetMax
C#
public float AnimOffsetMax { get; set; }

Maximum animation offset that corresponds to frame index in the texture. 0 is the first frame, 1 is the last one. See CanvasItemMaterial.ParticlesAnimation.

AnimOffsetMinProperty
# AnimOffsetMin
C#
public float AnimOffsetMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.AnimOffsetMax.

AnimSpeedProperty
# AnimSpeed
C#
public Vector2 AnimSpeed { get; set; }
AnimSpeedCurveProperty
# AnimSpeedCurve
C#
public Texture2D AnimSpeedCurve { get; set; }

Each particle's animation speed will vary along this CurveTexture.

AnimSpeedMaxProperty
# AnimSpeedMax
C#
public float AnimSpeedMax { get; set; }

Maximum particle animation speed. Animation speed of 1 means that the particles will make full 0 to 1 offset cycle during lifetime, 2 means 2 cycles etc. With animation speed greater than 1, remember to enable CanvasItemMaterial.ParticlesAnimLoop property if you want the animation to repeat.

AnimSpeedMinProperty
# AnimSpeedMin
C#
public float AnimSpeedMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.AnimSpeedMax.

AttractorInteractionEnabledProperty
# AttractorInteractionEnabled
C#
public bool AttractorInteractionEnabled { get; set; }

Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.

CollisionBounceProperty
# CollisionBounce
C#
public float CollisionBounce { get; set; }

Bounce coefficient for Rigid response. Does not create a gameplay RigidBody for every particle or guarantee physically calibrated behavior.

CollisionFrictionProperty
# CollisionFriction
C#
public float CollisionFriction { get; set; }

Friction coefficient for Rigid response, separate from general motion damping. Not automatically a gameplay physics-body friction material.

CollisionModeProperty
# CollisionMode
C#
public ParticleProcessMaterial.CollisionModeEnum CollisionMode { get; set; }

Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.

CollisionUseScaleProperty
# CollisionUseScale
C#
public bool CollisionUseScale { get; set; }

Allows particle scale to participate in collision-size calculation. Does not change collider geometry or update VisibilityAabb automatically.

ColorProperty
# Color
C#
public Color Color { get; set; }

Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.

ColorInitialRampProperty
# ColorInitialRamp
C#
public Texture2D ColorInitialRamp { get; set; }

Gradient texture for randomized initial color selection in the standard material path. Modulates base Color; differs from ColorRamp sampled over lifetime. The surface material must use vertex color to show the result.

ColorRampProperty
# ColorRamp
C#
public Texture2D ColorRamp { get; set; }

Color gradient texture over normalized lifetime. Multiplies the base color and other sources. Alpha requires appropriate surface transparency; a simulation ramp alone does not enable alpha blending.

DampingProperty
# Damping
C#
public Vector2 Damping { get; set; }
DampingCurveProperty
# DampingCurve
C#
public Texture2D DampingCurve { get; set; }

Damping will vary along this CurveTexture.

DampingMaxProperty
# DampingMax
C#
public float DampingMax { get; set; }

The maximum rate at which particles lose velocity. For example value of 100 means that the particle will go from 100 velocity to 0 in 1 second.

DampingMinProperty
# DampingMin
C#
public float DampingMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.DampingMax.

DirectionProperty
# Direction
C#
public Vector3 Direction { get; set; }

Initial emission direction; supply a nonzero vector. Spread sets angular variation, InitialVelocityMin/Max the initial-speed range. Not the continuous Gravity force.

DirectionalVelocityProperty
# DirectionalVelocity
C#
public Vector2 DirectionalVelocity { get; set; }
DirectionalVelocityCurveProperty
# DirectionalVelocityCurve
C#
public Texture2D DirectionalVelocityCurve { get; set; }

A curve that specifies the velocity along each of the axes of the particle system along its lifetime. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

DirectionalVelocityMaxProperty
# DirectionalVelocityMax
C#
public float DirectionalVelocityMax { get; set; }

Maximum directional velocity value, which is multiplied by ParticleProcessMaterial.DirectionalVelocityCurve. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

DirectionalVelocityMinProperty
# DirectionalVelocityMin
C#
public float DirectionalVelocityMin { get; set; }

Minimum directional velocity value, which is multiplied by ParticleProcessMaterial.DirectionalVelocityCurve. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

EmissionBoxExtentsProperty
# EmissionBoxExtents
C#
public Vector3 EmissionBoxExtents { get; set; }

The box's extents if ParticleProcessMaterial.EmissionShape is set to ParticleProcessMaterial.EmissionShapeEnum.Box. Note: ParticleProcessMaterial.EmissionBoxExtents starts from the center point and applies the X, Y, and Z values in both directions. The size is twice the area of the extents.

EmissionColorTextureProperty
# EmissionColorTexture
C#
public Texture2D EmissionColorTexture { get; set; }

Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.

EmissionCurveProperty
# EmissionCurve
C#
public Texture2D EmissionCurve { get; set; }

Each particle's color will be multiplied by this CurveTexture over its lifetime. Note: ParticleProcessMaterial.EmissionCurve multiplies the particle mesh's vertex colors. To have a visible effect on a BaseMaterial3D, BaseMaterial3D.VertexColorUseAsAlbedo must be true. For a ShaderMaterial, ALBEDO *= COLOR.rgb; must be inserted in the shader's fragment() function. Otherwise, ParticleProcessMaterial.EmissionCurve will have no visible effect.

EmissionNormalTextureProperty
# EmissionNormalTexture
C#
public Texture2D EmissionNormalTexture { get; set; }

Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.

EmissionPointCountProperty
# EmissionPointCount
C#
public int EmissionPointCount { get; set; }

Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.

EmissionPointTextureProperty
# EmissionPointTexture
C#
public Texture2D EmissionPointTexture { get; set; }

XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.

EmissionRingAxisProperty
# EmissionRingAxis
C#
public Vector3 EmissionRingAxis { get; set; }

The axis of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.

EmissionRingConeAngleProperty
# EmissionRingConeAngle
C#
public float EmissionRingConeAngle { get; set; }

The angle of the cone when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring. The default angle of 90 degrees results in a ring, while an angle of 0 degrees results in a cone. Intermediate values will result in a ring where one end is larger than the other. Note: Depending on ParticleProcessMaterial.EmissionRingHeight, the angle may be clamped if the ring's end is reached to form a perfect cone.

EmissionRingHeightProperty
# EmissionRingHeight
C#
public float EmissionRingHeight { get; set; }

The height of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.

EmissionRingInnerRadiusProperty
# EmissionRingInnerRadius
C#
public float EmissionRingInnerRadius { get; set; }

The inner radius of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.

EmissionRingRadiusProperty
# EmissionRingRadius
C#
public float EmissionRingRadius { get; set; }

The radius of the ring when using the emitter ParticleProcessMaterial.EmissionShapeEnum.Ring.

EmissionShapeProperty
# EmissionShape
C#
public ParticleProcessMaterial.EmissionShapeEnum EmissionShape { get; set; }

Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.

EmissionShapeOffsetProperty
# EmissionShapeOffset
C#
public Vector3 EmissionShapeOffset { get; set; }

Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.

EmissionShapeScaleProperty
# EmissionShapeScale
C#
public Vector3 EmissionShapeScale { get; set; }

Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.

EmissionSphereRadiusProperty
# EmissionSphereRadius
C#
public float EmissionSphereRadius { get; set; }

The sphere's radius if ParticleProcessMaterial.EmissionShape is set to ParticleProcessMaterial.EmissionShapeEnum.Sphere.

FlatnessProperty
# Flatness
C#
public float Flatness { get; set; }

Amount of ParticleProcessMaterial.Spread along the Y axis.

GravityProperty
# Gravity
C#
public Vector3 Gravity { get; set; }

Constant acceleration in simulation coordinates. The shown 2D effect uses Vector3(0,90,0), with positive Y pointing down. This is acceleration, not initial velocity; simulation already accounts for elapsed time. A new resource starts with the 3D-oriented value (0,-9.8,0), so configure 2D gravity explicitly.

HueVariationProperty
# HueVariation
C#
public Vector2 HueVariation { get; set; }
HueVariationCurveProperty
# HueVariationCurve
C#
public Texture2D HueVariationCurve { get; set; }

Each particle's hue will vary along this CurveTexture.

HueVariationMaxProperty
# HueVariationMax
C#
public float HueVariationMax { get; set; }

Maximum initial hue variation applied to each particle. It will shift the particle color's hue.

HueVariationMinProperty
# HueVariationMin
C#
public float HueVariationMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.HueVariationMax.

InheritVelocityRatioProperty
# InheritVelocityRatio
C#
public double InheritVelocityRatio { get; set; }

Percentage of the velocity of the respective GpuParticles2D or GpuParticles3D inherited by each particle when spawning.

InitialVelocityProperty
# InitialVelocity
C#
public Vector2 InitialVelocity { get; set; }
InitialVelocityMaxProperty
# InitialVelocityMax
C#
public float InitialVelocityMax { get; set; }

Upper initial linear-speed bound. Coordinate with InitialVelocityMin; subsequent motion also depends on forces and other simulation settings.

InitialVelocityMinProperty
# InitialVelocityMin
C#
public float InitialVelocityMin { get; set; }

Lower initial linear-speed bound. Coordinate with InitialVelocityMax. Equal values fix the initial magnitude, while direction can still have Spread.

LifetimeRandomnessProperty
# LifetimeRandomness
C#
public double LifetimeRandomness { get; set; }

Particle lifetime randomness ratio. The equation for the lifetime of a particle is lifetime * (1.0 - randf() * lifetime_randomness). For example, a ParticleProcessMaterial.LifetimeRandomness of 0.4 scales the lifetime between 0.6 to 1.0 of its original value.

LinearAccelProperty
# LinearAccel
C#
public Vector2 LinearAccel { get; set; }
LinearAccelCurveProperty
# LinearAccelCurve
C#
public Texture2D LinearAccelCurve { get; set; }

Each particle's linear acceleration will vary along this CurveTexture.

LinearAccelMaxProperty
# LinearAccelMax
C#
public float LinearAccelMax { get; set; }

Maximum linear acceleration applied to each particle in the direction of motion.

LinearAccelMinProperty
# LinearAccelMin
C#
public float LinearAccelMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.LinearAccelMax.

OrbitVelocityProperty
# OrbitVelocity
C#
public Vector2 OrbitVelocity { get; set; }
OrbitVelocityCurveProperty
# OrbitVelocityCurve
C#
public Texture2D OrbitVelocityCurve { get; set; }

Each particle's orbital velocity will vary along this CurveTexture. Note: For 3D orbital velocity, use a CurveXyzTexture. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

OrbitVelocityMaxProperty
# OrbitVelocityMax
C#
public float OrbitVelocityMax { get; set; }

Maximum orbital velocity applied to each particle. Makes the particles circle around origin. Specified in number of full rotations around origin per second. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

OrbitVelocityMinProperty
# OrbitVelocityMin
C#
public float OrbitVelocityMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.OrbitVelocityMax. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

ParticleFlagAlignYProperty
# ParticleFlagAlignY
C#
public bool ParticleFlagAlignY { get; set; }

Align Y axis of particle with the direction of its velocity.

ParticleFlagDampingAsFrictionProperty
# ParticleFlagDampingAsFriction
C#
public bool ParticleFlagDampingAsFriction { get; set; }

Changes the behavior of the damping properties from a linear deceleration to a deceleration based on speed percentage.

ParticleFlagDisableZProperty
# ParticleFlagDisableZ
C#
public bool ParticleFlagDisableZ { get; set; }

Constrains particle motion to the XY plane for a 2D effect. The example enables it explicitly before assignment. Editing this flag on a shared resource affects every system using that resource, not just one entity.

ParticleFlagInheritEmitterScaleProperty
# ParticleFlagInheritEmitterScale
C#
public bool ParticleFlagInheritEmitterScale { get; set; }

If true, particles will inherit the scale of the emitter. Note: This has no effect when GpuParticles3D.LocalCoords is true, since particles in local space are already affected by the emitter's scale.

ParticleFlagPreserveColorProperty
# ParticleFlagPreserveColor
C#
public bool ParticleFlagPreserveColor { get; set; }

If true, preserves the color given by manual emission. To use when using GpuParticles3D.EmitParticle or when working with subemitters.

ParticleFlagRotateYProperty
# ParticleFlagRotateY
C#
public bool ParticleFlagRotateY { get; set; }

If true, particles rotate around Y axis by ParticleProcessMaterial.AngleMin.

RadialAccelProperty
# RadialAccel
C#
public Vector2 RadialAccel { get; set; }
RadialAccelCurveProperty
# RadialAccelCurve
C#
public Texture2D RadialAccelCurve { get; set; }

Each particle's radial acceleration will vary along this CurveTexture.

RadialAccelMaxProperty
# RadialAccelMax
C#
public float RadialAccelMax { get; set; }

Maximum radial acceleration applied to each particle. Makes particle accelerate away from the origin or towards it if negative.

RadialAccelMinProperty
# RadialAccelMin
C#
public float RadialAccelMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.RadialAccelMax.

RadialVelocityProperty
# RadialVelocity
C#
public Vector2 RadialVelocity { get; set; }
RadialVelocityCurveProperty
# RadialVelocityCurve
C#
public Texture2D RadialVelocityCurve { get; set; }

A CurveTexture that defines the velocity over the particle's lifetime away (or toward) the ParticleProcessMaterial.VelocityPivot. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

RadialVelocityMaxProperty
# RadialVelocityMax
C#
public float RadialVelocityMax { get; set; }

Maximum radial velocity applied to each particle. Makes particles move away from the ParticleProcessMaterial.VelocityPivot, or toward it if negative. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

RadialVelocityMinProperty
# RadialVelocityMin
C#
public float RadialVelocityMin { get; set; }

Minimum radial velocity applied to each particle. Makes particles move away from the ParticleProcessMaterial.VelocityPivot, or toward it if negative. Note: Animated velocities will not be affected by damping, use ParticleProcessMaterial.VelocityLimitCurve instead.

Rotation3DMaxProperty
# Rotation3DMax
C#
public Vector3 Rotation3DMax { get; set; }

The maximum 3D orientation, in degrees. Works only in 3D and if ParticleProcessMaterial.UseRotation3D is enabled.

Rotation3DMinProperty
# Rotation3DMin
C#
public Vector3 Rotation3DMin { get; set; }

The minimum 3D orientation, in degrees. Works only in 3D and if ParticleProcessMaterial.UseRotation3D is enabled.

RotationVelocity3DCurveProperty
# RotationVelocity3DCurve
C#
public Texture2D RotationVelocity3DCurve { get; set; }

Rotation velocity curve over lifetime, per-axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.

RotationVelocity3DMaxProperty
# RotationVelocity3DMax
C#
public Vector3 RotationVelocity3DMax { get; set; }

Maximum 3D rotation velocity on the particle's local axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.

RotationVelocity3DMinProperty
# RotationVelocity3DMin
C#
public Vector3 RotationVelocity3DMin { get; set; }

Minimum 3D rotation velocity on the particle's local axis. Enable ParticleProcessMaterial.UseRotationVelocity3D to use this.

ScaleProperty
# Scale
C#
public Vector2 Scale { get; set; }

Base particle scale range as a Vector2 minimum/maximum pair. Does not change the birth-position distribution controlled by EmissionShapeScale. Final size also depends on ScaleCurve and the drawing path.

Scale3DMaxProperty
# Scale3DMax
C#
public Vector3 Scale3DMax { get; set; }

The maximum value of the random scale vector for each particle. Works only if ParticleProcessMaterial.UseScale3D is enabled.

Scale3DMinProperty
# Scale3DMin
C#
public Vector3 Scale3DMin { get; set; }

The minimum value of the random scale vector for each particle. Works only if ParticleProcessMaterial.UseScale3D is enabled.

ScaleCurveProperty
# ScaleCurve
C#
public Texture2D ScaleCurve { get; set; }

Curve texture multiplying base scale over normalized lifetime. An ordinary CurveTexture at constant 0.5 in the example reduces base scale 2 to 1. Do not infer that all other properties apply curves multiplicatively.

ScaleMaxProperty
# ScaleMax
C#
public float ScaleMax { get; set; }

Upper base particle-geometry scale bound. Coordinate with ScaleMin; the result depends on ScaleCurve, transforms and surface billboard mode. Keep Size is not a universal prerequisite for scaling.

ScaleMinProperty
# ScaleMin
C#
public float ScaleMin { get; set; }

Lower base particle-geometry scale bound. Matching ScaleMax removes this random range, not other variation sources. ScaleCurve multiplies the resulting scale; EmissionShapeScale instead changes birth positions.

ScaleOverVelocityProperty
# ScaleOverVelocity
C#
public Vector2 ScaleOverVelocity { get; set; }
ScaleOverVelocityCurveProperty
# ScaleOverVelocityCurve
C#
public Texture2D ScaleOverVelocityCurve { get; set; }

Either a CurveTexture or a CurveXyzTexture that scales each particle based on its velocity.

ScaleOverVelocityMaxProperty
# ScaleOverVelocityMax
C#
public float ScaleOverVelocityMax { get; set; }

Maximum velocity value reference for ParticleProcessMaterial.ScaleOverVelocityCurve. ParticleProcessMaterial.ScaleOverVelocityCurve will be interpolated between ParticleProcessMaterial.ScaleOverVelocityMin and ParticleProcessMaterial.ScaleOverVelocityMax.

ScaleOverVelocityMinProperty
# ScaleOverVelocityMin
C#
public float ScaleOverVelocityMin { get; set; }

Minimum velocity value reference for ParticleProcessMaterial.ScaleOverVelocityCurve. ParticleProcessMaterial.ScaleOverVelocityCurve will be interpolated between ParticleProcessMaterial.ScaleOverVelocityMin and ParticleProcessMaterial.ScaleOverVelocityMax.

SpreadProperty
# Spread
C#
public float Spread { get; set; }

Initial-direction spread in degrees. Not emitter Randomness, which changes birth timing, or the initial-speed range.

SubEmitterAmountAtCollisionProperty
# SubEmitterAmountAtCollision
C#
public int SubEmitterAmountAtCollision { get; set; }

Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.

SubEmitterAmountAtEndProperty
# SubEmitterAmountAtEnd
C#
public int SubEmitterAmountAtEnd { get; set; }

Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.

SubEmitterAmountAtStartProperty
# SubEmitterAmountAtStart
C#
public int SubEmitterAmountAtStart { get; set; }

Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.

SubEmitterFrequencyProperty
# SubEmitterFrequency
C#
public double SubEmitterFrequency { get; set; }

Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.

SubEmitterKeepVelocityProperty
# SubEmitterKeepVelocity
C#
public bool SubEmitterKeepVelocity { get; set; }

Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.

SubEmitterModeProperty
# SubEmitterMode
C#
public ParticleProcessMaterial.SubEmitterModeEnum SubEmitterMode { get; set; }

Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.

TangentialAccelProperty
# TangentialAccel
C#
public Vector2 TangentialAccel { get; set; }
TangentialAccelCurveProperty
# TangentialAccelCurve
C#
public Texture2D TangentialAccelCurve { get; set; }

Each particle's tangential acceleration will vary along this CurveTexture.

TangentialAccelMaxProperty
# TangentialAccelMax
C#
public float TangentialAccelMax { get; set; }

Maximum tangential acceleration applied to each particle. Tangential acceleration is perpendicular to the particle's velocity giving the particles a swirling motion.

TangentialAccelMinProperty
# TangentialAccelMin
C#
public float TangentialAccelMin { get; set; }

Minimum equivalent of ParticleProcessMaterial.TangentialAccelMax.

TurbulenceEnabledProperty
# TurbulenceEnabled
C#
public bool TurbulenceEnabled { get; set; }

Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.

TurbulenceInfluenceProperty
# TurbulenceInfluence
C#
public Vector2 TurbulenceInfluence { get; set; }

Range of steering influence: X is the minimum and Y the maximum. The per-particle value is multiplied by TurbulenceInfluenceOverLife and clamped to 0–1 for steering; this range does not disable birth displacement.

TurbulenceInfluenceMaxProperty
# TurbulenceInfluenceMax
C#
public float TurbulenceInfluenceMax { get; set; }

Upper bound of the per-particle steering influence. Equal Min and Max remove variation from this setting; greater influence does not guarantee greater speed.

TurbulenceInfluenceMinProperty
# TurbulenceInfluenceMin
C#
public float TurbulenceInfluenceMin { get; set; }

Lower bound of the per-particle steering influence. Zero Min and Max suppress steering, but do not suppress TurbulenceInitialDisplacement.

TurbulenceInfluenceOverLifeProperty
# TurbulenceInfluenceOverLife
C#
public Texture2D TurbulenceInfluenceOverLife { get; set; }

Texture multiplier for steering influence over normalized particle age: X=0 at birth, X=1 at death; the red channel is sampled. With no texture the multiplier is 1. A zero curve suppresses steering, but not birth displacement.

TurbulenceInitialDisplacementProperty
# TurbulenceInitialDisplacement
C#
public Vector2 TurbulenceInitialDisplacement { get; set; }

Range of one-time birth displacement: X is the minimum and Y the maximum. The offset follows the noise-derived direction, is not a velocity, and can apply with zero ongoing steering influence.

TurbulenceInitialDisplacementMaxProperty
# TurbulenceInitialDisplacementMax
C#
public float TurbulenceInitialDisplacementMax { get; set; }

Upper bound of the one-time birth displacement along the noise-derived direction. Zero Min and Max disable this offset without disabling steering.

TurbulenceInitialDisplacementMinProperty
# TurbulenceInitialDisplacementMin
C#
public float TurbulenceInitialDisplacementMin { get; set; }

Lower bound of the one-time birth displacement along the noise-derived direction. Used with turbulence enabled; it does not supply ongoing motion.

TurbulenceNoiseScaleProperty
# TurbulenceNoiseScale
C#
public float TurbulenceNoiseScale { get; set; }

Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.

TurbulenceNoiseSpeedProperty
# TurbulenceNoiseSpeed
C#
public Vector3 TurbulenceNoiseSpeed { get; set; }

Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.

TurbulenceNoiseSpeedRandomProperty
# TurbulenceNoiseSpeedRandom
C#
public float TurbulenceNoiseSpeedRandom { get; set; }

Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.

TurbulenceNoiseStrengthProperty
# TurbulenceNoiseStrength
C#
public float TurbulenceNoiseStrength { get; set; }

Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.

UseRotation3DProperty
# UseRotation3D
C#
public bool UseRotation3D { get; set; }

Enable the usage of ParticleProcessMaterial.Rotation3DMin and ParticleProcessMaterial.Rotation3DMax.

UseRotationVelocity3DProperty
# UseRotationVelocity3D
C#
public bool UseRotationVelocity3D { get; set; }

Enable 3D rotation velocity.

UseScale3DProperty
# UseScale3D
C#
public bool UseScale3D { get; set; }

Enable the usage of ParticleProcessMaterial.Scale3DMin and ParticleProcessMaterial.Scale3DMax.

VelocityLimitCurveProperty
# VelocityLimitCurve
C#
public Texture2D VelocityLimitCurve { get; set; }

A CurveTexture that defines the maximum velocity of a particle during its lifetime.

VelocityPivotProperty
# VelocityPivot
C#
public Vector3 VelocityPivot { get; set; }

A pivot point used to calculate radial and orbital velocity of particles.

Methods116

GetAlphaCurveTexture2D
# GetAlphaCurve
C#
public Texture2D GetAlphaCurve();
Returns Texture2D
GetCollisionBouncefloat
# GetCollisionBounce
C#
public float GetCollisionBounce();
Returns float
GetCollisionFrictionfloat
# GetCollisionFriction
C#
public float GetCollisionFriction();
Returns float
GetCollisionModeParticleProcessMaterial.CollisionModeEnum
# GetCollisionMode
C#
public ParticleProcessMaterial.CollisionModeEnum GetCollisionMode();

Returns CollisionMode. Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.

Returns ParticleProcessMaterial.CollisionModeEnum

Current CollisionMode value; account for the described units and scope.

GetColorColor
# GetColor
C#
public Color GetColor();

Returns Color. Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.

Returns Color

Current Color value; account for the property data format and constraints.

GetColorInitialRampTexture2D
# GetColorInitialRamp
C#
public Texture2D GetColorInitialRamp();
Returns Texture2D
GetColorRampTexture2D
# GetColorRamp
C#
public Texture2D GetColorRamp();
Returns Texture2D
GetDirectionVector3
# GetDirection
C#
public Vector3 GetDirection();
Returns Vector3
GetEmissionBoxExtentsVector3
# GetEmissionBoxExtents
C#
public Vector3 GetEmissionBoxExtents();
Returns Vector3
GetEmissionColorTextureTexture2D
# GetEmissionColorTexture
C#
public Texture2D GetEmissionColorTexture();

Returns EmissionColorTexture. Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.

Returns Texture2D

Current EmissionColorTexture value; account for the property data format and constraints.

GetEmissionCurveTexture2D
# GetEmissionCurve
C#
public Texture2D GetEmissionCurve();
Returns Texture2D
GetEmissionNormalTextureTexture2D
# GetEmissionNormalTexture
C#
public Texture2D GetEmissionNormalTexture();

Returns EmissionNormalTexture. Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.

Returns Texture2D

Current EmissionNormalTexture value; account for the property data format and constraints.

GetEmissionPointCountint
# GetEmissionPointCount
C#
public int GetEmissionPointCount();

Returns EmissionPointCount. Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.

Returns int

Current EmissionPointCount value; account for the property data format and constraints.

GetEmissionPointTextureTexture2D
# GetEmissionPointTexture
C#
public Texture2D GetEmissionPointTexture();

Returns EmissionPointTexture. XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.

Returns Texture2D

Current EmissionPointTexture value; account for the property data format and constraints.

GetEmissionRingAxisVector3
# GetEmissionRingAxis
C#
public Vector3 GetEmissionRingAxis();
Returns Vector3
GetEmissionRingConeAnglefloat
# GetEmissionRingConeAngle
C#
public float GetEmissionRingConeAngle();
Returns float
GetEmissionRingHeightfloat
# GetEmissionRingHeight
C#
public float GetEmissionRingHeight();
Returns float
GetEmissionRingInnerRadiusfloat
# GetEmissionRingInnerRadius
C#
public float GetEmissionRingInnerRadius();
Returns float
GetEmissionRingRadiusfloat
# GetEmissionRingRadius
C#
public float GetEmissionRingRadius();
Returns float
GetEmissionShapeParticleProcessMaterial.EmissionShapeEnum
# GetEmissionShape
C#
public ParticleProcessMaterial.EmissionShapeEnum GetEmissionShape();

Returns EmissionShape. Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.

Returns ParticleProcessMaterial.EmissionShapeEnum

Current EmissionShape value; account for the property data format and constraints.

GetEmissionShapeOffsetVector3
# GetEmissionShapeOffset
C#
public Vector3 GetEmissionShapeOffset();

Returns EmissionShapeOffset. Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.

Returns Vector3

Current EmissionShapeOffset value; account for the property data format and constraints.

GetEmissionShapeScaleVector3
# GetEmissionShapeScale
C#
public Vector3 GetEmissionShapeScale();

Returns EmissionShapeScale. Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.

Returns Vector3

Current EmissionShapeScale value; account for the property data format and constraints.

GetEmissionSphereRadiusfloat
# GetEmissionSphereRadius
C#
public float GetEmissionSphereRadius();
Returns float
GetFlatnessfloat
# GetFlatness
C#
public float GetFlatness();
Returns float
GetGravityVector3
# GetGravity
C#
public Vector3 GetGravity();
Returns Vector3
GetInheritVelocityRatiodouble
# GetInheritVelocityRatio
C#
public double GetInheritVelocityRatio();
Returns double
GetLifetimeRandomnessdouble
# GetLifetimeRandomness
C#
public double GetLifetimeRandomness();
Returns double
GetParamVector2
# GetParam
C#
public Vector2 GetParam(ParticleProcessMaterial.Parameter param);

Returns the minimum and maximum values of the given param as a vector. The x component of the returned vector corresponds to minimum and the y component corresponds to maximum.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
Returns Vector2
GetParamMaxfloat
# GetParamMax
C#
public float GetParamMax(ParticleProcessMaterial.Parameter param);

Returns the maximum value range for the given parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
Returns float
GetParamMinfloat
# GetParamMin
C#
public float GetParamMin(ParticleProcessMaterial.Parameter param);

Returns the minimum value range for the given parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
Returns float
GetParamTextureTexture2D
# GetParamTexture
C#
public Texture2D GetParamTexture(ParticleProcessMaterial.Parameter param);

Returns the Texture2D used by the specified parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
Returns Texture2D
GetParticleFlagbool
# GetParticleFlag
C#
public bool GetParticleFlag(ParticleProcessMaterial.ParticleFlags particleFlag);

Returns true if the specified particle flag is enabled.

Parameters
NameTypeDefault
particleFlagParticleProcessMaterial.ParticleFlags—
Returns bool
GetRotation3DMaxVector3
# GetRotation3DMax
C#
public Vector3 GetRotation3DMax();
Returns Vector3
GetRotation3DMinVector3
# GetRotation3DMin
C#
public Vector3 GetRotation3DMin();
Returns Vector3
GetRotationVelocity3DCurveTexture2D
# GetRotationVelocity3DCurve
C#
public Texture2D GetRotationVelocity3DCurve();
Returns Texture2D
GetRotationVelocity3DMaxVector3
# GetRotationVelocity3DMax
C#
public Vector3 GetRotationVelocity3DMax();
Returns Vector3
GetRotationVelocity3DMinVector3
# GetRotationVelocity3DMin
C#
public Vector3 GetRotationVelocity3DMin();
Returns Vector3
GetScale3DMaxVector3
# GetScale3DMax
C#
public Vector3 GetScale3DMax();
Returns Vector3
GetScale3DMinVector3
# GetScale3DMin
C#
public Vector3 GetScale3DMin();
Returns Vector3
GetSpreadfloat
# GetSpread
C#
public float GetSpread();
Returns float
GetSubEmitterAmountAtCollisionint
# GetSubEmitterAmountAtCollision
C#
public int GetSubEmitterAmountAtCollision();

Returns SubEmitterAmountAtCollision. Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.

Returns int

Current SubEmitterAmountAtCollision value; account for units and the setting/effective-result distinction.

GetSubEmitterAmountAtEndint
# GetSubEmitterAmountAtEnd
C#
public int GetSubEmitterAmountAtEnd();

Returns SubEmitterAmountAtEnd. Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.

Returns int

Current SubEmitterAmountAtEnd value; account for units and the setting/effective-result distinction.

GetSubEmitterAmountAtStartint
# GetSubEmitterAmountAtStart
C#
public int GetSubEmitterAmountAtStart();

Returns SubEmitterAmountAtStart. Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.

Returns int

Current SubEmitterAmountAtStart value; account for units and the setting/effective-result distinction.

GetSubEmitterFrequencydouble
# GetSubEmitterFrequency
C#
public double GetSubEmitterFrequency();

Returns SubEmitterFrequency. Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.

Returns double

Current SubEmitterFrequency value; account for units and the setting/effective-result distinction.

GetSubEmitterKeepVelocitybool
# GetSubEmitterKeepVelocity
C#
public bool GetSubEmitterKeepVelocity();

Returns SubEmitterKeepVelocity. Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.

Returns bool

Current SubEmitterKeepVelocity value; account for units and the setting/effective-result distinction.

GetSubEmitterModeParticleProcessMaterial.SubEmitterModeEnum
# GetSubEmitterMode
C#
public ParticleProcessMaterial.SubEmitterModeEnum GetSubEmitterMode();

Returns SubEmitterMode. Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.

Returns ParticleProcessMaterial.SubEmitterModeEnum

Current SubEmitterMode value; account for units and the setting/effective-result distinction.

GetTurbulenceEnabledbool
# GetTurbulenceEnabled
C#
public bool GetTurbulenceEnabled();

Returns the stored setting. Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.

Returns bool
GetTurbulenceNoiseScalefloat
# GetTurbulenceNoiseScale
C#
public float GetTurbulenceNoiseScale();

Returns the stored setting. Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.

Returns float
GetTurbulenceNoiseSpeedVector3
# GetTurbulenceNoiseSpeed
C#
public Vector3 GetTurbulenceNoiseSpeed();

Returns the stored setting. Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.

Returns Vector3
GetTurbulenceNoiseSpeedRandomfloat
# GetTurbulenceNoiseSpeedRandom
C#
public float GetTurbulenceNoiseSpeedRandom();

Returns the stored setting. Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.

Returns float
GetTurbulenceNoiseStrengthfloat
# GetTurbulenceNoiseStrength
C#
public float GetTurbulenceNoiseStrength();

Returns the stored setting. Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.

Returns float
GetVelocityLimitCurveTexture2D
# GetVelocityLimitCurve
C#
public Texture2D GetVelocityLimitCurve();
Returns Texture2D
GetVelocityPivotVector3
# GetVelocityPivot
C#
public Vector3 GetVelocityPivot();
Returns Vector3
IsAttractorInteractionEnabledbool
# IsAttractorInteractionEnabled
C#
public bool IsAttractorInteractionEnabled();

Returns AttractorInteractionEnabled. Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.

Returns bool

Current AttractorInteractionEnabled value; account for the described units and scope.

IsCollisionUsingScalebool
# IsCollisionUsingScale
C#
public bool IsCollisionUsingScale();
Returns bool
IsUsingRotation3Dbool
# IsUsingRotation3D
C#
public bool IsUsingRotation3D();
Returns bool
IsUsingRotationVelocity3Dbool
# IsUsingRotationVelocity3D
C#
public bool IsUsingRotationVelocity3D();
Returns bool
IsUsingScale3Dbool
# IsUsingScale3D
C#
public bool IsUsingScale3D();
Returns bool
SetAlphaCurvevoid
# SetAlphaCurve
C#
public void SetAlphaCurve(Texture2D curve);
Parameters
NameTypeDefault
curveTexture2D—
SetAttractorInteractionEnabledvoid
# SetAttractorInteractionEnabled
C#
public void SetAttractorInteractionEnabled(bool enabled);

Sets AttractorInteractionEnabled. Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.

Parameters
NameTypeDefault
enabledbool—
enabled

Allows the material to use GPU-attractor forces. The flag alone is insufficient: an attractor in the same World3D, its region and matching render masks are required. Does not automatically connect Area3D gravity.

SetCollisionBouncevoid
# SetCollisionBounce
C#
public void SetCollisionBounce(float bounce);
Parameters
NameTypeDefault
bouncefloat—
SetCollisionFrictionvoid
# SetCollisionFriction
C#
public void SetCollisionFriction(float friction);
Parameters
NameTypeDefault
frictionfloat—
SetCollisionModevoid
# SetCollisionMode
C#
public void SetCollisionMode(ParticleProcessMaterial.CollisionModeEnum mode);

Sets CollisionMode. Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.

Parameters
NameTypeDefault
modeParticleProcessMaterial.CollisionModeEnum—
mode

Response to GPU-particle colliders: Disabled for none, Rigid for material response, HideOnContact to remove visible particles on contact. Ordinary StaticBody is not connected automatically; a particle collider and matching render masks are required.

SetCollisionUseScalevoid
# SetCollisionUseScale
C#
public void SetCollisionUseScale(bool radius);
Parameters
NameTypeDefault
radiusbool—
SetColorvoid
# SetColor
C#
public void SetColor(Color color);

Sets Color. Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.

Parameters
NameTypeDefault
colorColor—
color

Base simulation color, multiplying other color sources including point colors and ramps. Does not replace the surface material. A standard surface needs VertexColorUseAsAlbedo, usually with white albedo, to use particle color.

SetColorInitialRampvoid
# SetColorInitialRamp
C#
public void SetColorInitialRamp(Texture2D ramp);
Parameters
NameTypeDefault
rampTexture2D—
SetColorRampvoid
# SetColorRamp
C#
public void SetColorRamp(Texture2D ramp);
Parameters
NameTypeDefault
rampTexture2D—
SetDirectionvoid
# SetDirection
C#
public void SetDirection(Vector3 degrees);
Parameters
NameTypeDefault
degreesVector3—
SetEmissionBoxExtentsvoid
# SetEmissionBoxExtents
C#
public void SetEmissionBoxExtents(Vector3 extents);
Parameters
NameTypeDefault
extentsVector3—
SetEmissionColorTexturevoid
# SetEmissionColorTexture
C#
public void SetEmissionColorTexture(Texture2D texture);

Sets EmissionColorTexture. Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.

Parameters
NameTypeDefault
textureTexture2D—
texture

Optional valid-point colors using the same layout as EmissionPointTexture. Multiply Color and other color sources rather than replacing them. The mesh material must use particle vertex color to display them.

SetEmissionCurvevoid
# SetEmissionCurve
C#
public void SetEmissionCurve(Texture2D curve);
Parameters
NameTypeDefault
curveTexture2D—
SetEmissionNormalTexturevoid
# SetEmissionNormalTexture
C#
public void SetEmissionNormalTexture(Texture2D texture);

Sets EmissionNormalTexture. Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.

Parameters
NameTypeDefault
textureTexture2D—
texture

Matching XYZ normals for DirectedPoints. Use the point texture layout and nonzero, normally unit directions. These are direct signed vectors, not an encoded surface normal map. Orients a frame; the example follows the normal using Direction +Z.

SetEmissionPointCountvoid
# SetEmissionPointCount
C#
public void SetEmissionPointCount(int pointCount);

Sets EmissionPointCount. Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.

Parameters
NameTypeDefault
pointCountint—
pointCount

Number of valid point-texture samples for Points/DirectedPoints. Use a positive value within actual data, excluding padding. Not the emitter Amount; increasing it does not generate new points.

SetEmissionPointTexturevoid
# SetEmissionPointTexture
C#
public void SetEmissionPointTexture(Texture2D texture);

Sets EmissionPointTexture. XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.

Parameters
NameTypeDefault
textureTexture2D—
texture

XYZ birth positions per texel for Points/DirectedPoints in emitter-local coordinates. Float data preserves negative values; do not apply color sRGB conversion or lossy processing. Points are read row-major; EmissionPointCount specifies valid entries.

SetEmissionRingAxisvoid
# SetEmissionRingAxis
C#
public void SetEmissionRingAxis(Vector3 axis);
Parameters
NameTypeDefault
axisVector3—
SetEmissionRingConeAnglevoid
# SetEmissionRingConeAngle
C#
public void SetEmissionRingConeAngle(float coneAngle);
Parameters
NameTypeDefault
coneAnglefloat—
SetEmissionRingHeightvoid
# SetEmissionRingHeight
C#
public void SetEmissionRingHeight(float height);
Parameters
NameTypeDefault
heightfloat—
SetEmissionRingInnerRadiusvoid
# SetEmissionRingInnerRadius
C#
public void SetEmissionRingInnerRadius(float innerRadius);
Parameters
NameTypeDefault
innerRadiusfloat—
SetEmissionRingRadiusvoid
# SetEmissionRingRadius
C#
public void SetEmissionRingRadius(float radius);
Parameters
NameTypeDefault
radiusfloat—
SetEmissionShapevoid
# SetEmissionShape
C#
public void SetEmissionShape(ParticleProcessMaterial.EmissionShapeEnum shape);

Sets EmissionShape. Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.

Parameters
NameTypeDefault
shapeParticleProcessMaterial.EmissionShapeEnum—
shape

Initial-position distribution. Points selects a position from data; DirectedPoints also orients a local frame from a normal. Not the draw mesh or a collider. Texture sampling requires valid data and a positive EmissionPointCount.

SetEmissionShapeOffsetvoid
# SetEmissionShapeOffset
C#
public void SetEmissionShapeOffset(Vector3 emissionShapeOffset);

Sets EmissionShapeOffset. Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.

Parameters
NameTypeDefault
emissionShapeOffsetVector3—
emissionShapeOffset

Local birth-position offset after EmissionShapeScale: position times scale plus offset. Does not move the emitter Entity or command relocation of every live particle.

SetEmissionShapeScalevoid
# SetEmissionShapeScale
C#
public void SetEmissionShapeScale(Vector3 emissionShapeScale);

Sets EmissionShapeScale. Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.

Parameters
NameTypeDefault
emissionShapeScaleVector3—
emissionShapeScale

Component-wise scale of local birth positions before EmissionShapeOffset. Changes layout, not drawn particle size or VisibilityAabb automatically. Use Scale parameters for geometry size.

SetEmissionSphereRadiusvoid
# SetEmissionSphereRadius
C#
public void SetEmissionSphereRadius(float radius);
Parameters
NameTypeDefault
radiusfloat—
SetFlatnessvoid
# SetFlatness
C#
public void SetFlatness(float amount);
Parameters
NameTypeDefault
amountfloat—
SetGravityvoid
# SetGravity
C#
public void SetGravity(Vector3 accelVec);
Parameters
NameTypeDefault
accelVecVector3—
SetInheritVelocityRatiovoid
# SetInheritVelocityRatio
C#
public void SetInheritVelocityRatio(double ratio);
Parameters
NameTypeDefault
ratiodouble—
SetLifetimeRandomnessvoid
# SetLifetimeRandomness
C#
public void SetLifetimeRandomness(double randomness);
Parameters
NameTypeDefault
randomnessdouble—
SetParamvoid
# SetParam
C#
public void SetParam(ParticleProcessMaterial.Parameter param, Vector2 value);

Sets the minimum and maximum values of the given param. The x component of the argument vector corresponds to minimum and the y component corresponds to maximum.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
valueVector2—
SetParamMaxvoid
# SetParamMax
C#
public void SetParamMax(ParticleProcessMaterial.Parameter param, float value);

Sets the maximum value range for the given parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
valuefloat—
SetParamMinvoid
# SetParamMin
C#
public void SetParamMin(ParticleProcessMaterial.Parameter param, float value);

Sets the minimum value range for the given parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
valuefloat—
SetParamTexturevoid
# SetParamTexture
C#
public void SetParamTexture(ParticleProcessMaterial.Parameter param, Texture2D texture);

Sets the Texture2D for the specified ParticleProcessMaterial.Parameter.

Parameters
NameTypeDefault
paramParticleProcessMaterial.Parameter—
textureTexture2D—
SetParticleFlagvoid
# SetParticleFlag
C#
public void SetParticleFlag(ParticleProcessMaterial.ParticleFlags particleFlag, bool enable);

Sets the particle_flag to enable.

Parameters
NameTypeDefault
particleFlagParticleProcessMaterial.ParticleFlags—
enablebool—
SetRotation3DMaxvoid
# SetRotation3DMax
C#
public void SetRotation3DMax(Vector3 rotation3DMax);
Parameters
NameTypeDefault
rotation3DMaxVector3—
SetRotation3DMinvoid
# SetRotation3DMin
C#
public void SetRotation3DMin(Vector3 rotation3DMin);
Parameters
NameTypeDefault
rotation3DMinVector3—
SetRotationVelocity3DCurvevoid
# SetRotationVelocity3DCurve
C#
public void SetRotationVelocity3DCurve(Texture2D rotationVelocity3DCurve);
Parameters
NameTypeDefault
rotationVelocity3DCurveTexture2D—
SetRotationVelocity3DMaxvoid
# SetRotationVelocity3DMax
C#
public void SetRotationVelocity3DMax(Vector3 rotationVelocity3DMax);
Parameters
NameTypeDefault
rotationVelocity3DMaxVector3—
SetRotationVelocity3DMinvoid
# SetRotationVelocity3DMin
C#
public void SetRotationVelocity3DMin(Vector3 rotationVelocity3DMin);
Parameters
NameTypeDefault
rotationVelocity3DMinVector3—
SetScale3DMaxvoid
# SetScale3DMax
C#
public void SetScale3DMax(Vector3 scale3DMax);
Parameters
NameTypeDefault
scale3DMaxVector3—
SetScale3DMinvoid
# SetScale3DMin
C#
public void SetScale3DMin(Vector3 scale3DMin);
Parameters
NameTypeDefault
scale3DMinVector3—
SetSpreadvoid
# SetSpread
C#
public void SetSpread(float degrees);
Parameters
NameTypeDefault
degreesfloat—
SetSubEmitterAmountAtCollisionvoid
# SetSubEmitterAmountAtCollision
C#
public void SetSubEmitterAmountAtCollision(int amount);

Sets SubEmitterAmountAtCollision. Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.

Parameters
NameTypeDefault
amountint—
amount

Requested target births for a qualifying primary-particle contact in AtCollision. Without working CollisionMode/GPU collider setup the trigger is not established. Not gameplay physics signals.

SetSubEmitterAmountAtEndvoid
# SetSubEmitterAmountAtEnd
C#
public void SetSubEmitterAmountAtEnd(int amount);

Sets SubEmitterAmountAtEnd. Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.

Parameters
NameTypeDefault
amountint—
amount

Requested target births at each primary particle end-of-life event in AtEnd. A visible second stage does not imply a new Entity; target capacity remains separate.

SetSubEmitterAmountAtStartvoid
# SetSubEmitterAmountAtStart
C#
public void SetSubEmitterAmountAtStart(int amount);

Sets SubEmitterAmountAtStart. Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.

Parameters
NameTypeDefault
amountint—
amount

Requested target births per primary-particle birth event in AtStart. Not a global count for the whole system; target Amount and other limits still apply.

SetSubEmitterFrequencyvoid
# SetSubEmitterFrequency
C#
public void SetSubEmitterFrequency(double hz);

Sets SubEmitterFrequency. Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.

Parameters
NameTypeDefault
hzdouble—
hz

Constant frequency in Hz for an active primary particle. Supply a finite positive number: the setter passes its reciprocal interval to the shader. Simulation steps constrain execution; not an exact arbitrary-frequency guarantee independent of FPS.

SetSubEmitterKeepVelocityvoid
# SetSubEmitterKeepVelocity
C#
public void SetSubEmitterKeepVelocity(bool enable);

Sets SubEmitterKeepVelocity. Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.

Parameters
NameTypeDefault
enablebool—
enable

Forwards primary velocity in the target birth request. In the current shader path, forwarded velocity can replace target initial-velocity initialization; do not assume simple addition of all target settings.

SetSubEmitterModevoid
# SetSubEmitterMode
C#
public void SetSubEmitterMode(ParticleProcessMaterial.SubEmitterModeEnum mode);

Sets SubEmitterMode. Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.

Parameters
NameTypeDefault
modeParticleProcessMaterial.SubEmitterModeEnum—
mode

Birth trigger for the assigned GpuParticles3D.SubEmitter: Disabled, Constant, AtStart, AtEnd or AtCollision. A mode without a valid link is insufficient. AtCollision requires GPU collision; Compatibility does not support active modes in current code.

SetTurbulenceEnabledvoid
# SetTurbulenceEnabled
C#
public void SetTurbulenceEnabled(bool turbulenceEnabled);

Sets the material setting. Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.

Parameters
NameTypeDefault
turbulenceEnabledbool—
turbulenceEnabled

Enables the procedural turbulence field that redirects GPU particle motion. It does not itself supply initial speed; birth displacement is configured separately.

SetTurbulenceNoiseScalevoid
# SetTurbulenceNoiseScale
C#
public void SetTurbulenceNoiseScale(float turbulenceNoiseScale);

Sets the material setting. Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.

Parameters
NameTypeDefault
turbulenceNoiseScalefloat—
turbulenceNoiseScale

Nonlinear control of spatial noise detail. It is neither a distance in meters nor a direct spatial frequency; tune it against the trajectory while keeping other settings fixed.

SetTurbulenceNoiseSpeedvoid
# SetTurbulenceNoiseSpeed
C#
public void SetTurbulenceNoiseSpeed(Vector3 turbulenceNoiseSpeed);

Sets the material setting. Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.

Parameters
NameTypeDefault
turbulenceNoiseSpeedVector3—
turbulenceNoiseSpeed

Motion of the noise field over time, not particle velocity. For a static field, use Vector3.Zero and also set TurbulenceNoiseSpeedRandom to zero.

SetTurbulenceNoiseSpeedRandomvoid
# SetTurbulenceNoiseSpeedRandom
C#
public void SetTurbulenceNoiseSpeedRandom(float turbulenceNoiseSpeedRandom);

Sets the material setting. Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.

Parameters
NameTypeDefault
turbulenceNoiseSpeedRandomfloat—
turbulenceNoiseSpeedRandom

Time variation in the procedural noise additional coordinate. A nonzero value can animate the field even when TurbulenceNoiseSpeed is Vector3.Zero.

SetTurbulenceNoiseStrengthvoid
# SetTurbulenceNoiseStrength
C#
public void SetTurbulenceNoiseStrength(float turbulenceNoiseStrength);

Sets the material setting. Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.

Parameters
NameTypeDefault
turbulenceNoiseStrengthfloat—
turbulenceNoiseStrength

Contrast and directional detail of the procedural noise. This is not a direct particle force or speed; increasing it does not guarantee acceleration.

SetUseRotation3Dvoid
# SetUseRotation3D
C#
public void SetUseRotation3D(bool usingRotation3D);
Parameters
NameTypeDefault
usingRotation3Dbool—
SetUseScale3Dvoid
# SetUseScale3D
C#
public void SetUseScale3D(bool usingScale3D);
Parameters
NameTypeDefault
usingScale3Dbool—
SetUsingRotationVelocity3Dvoid
# SetUsingRotationVelocity3D
C#
public void SetUsingRotationVelocity3D(bool useRotationVelocity3D);
Parameters
NameTypeDefault
useRotationVelocity3Dbool—
SetVelocityLimitCurvevoid
# SetVelocityLimitCurve
C#
public void SetVelocityLimitCurve(Texture2D curve);
Parameters
NameTypeDefault
curveTexture2D—
SetVelocityPivotvoid
# SetVelocityPivot
C#
public void SetVelocityPivot(Vector3 pivot);
Parameters
NameTypeDefault
pivotVector3—

Signals and events1

EmissionShapeChangedEvent
# EmissionShapeChanged
C#
public event Action EmissionShapeChanged;

Emitted when this material's emission shape is changed in any way. This includes changes to ParticleProcessMaterial.EmissionShape, ParticleProcessMaterial.EmissionShapeScale, or ParticleProcessMaterial.EmissionSphereRadius, and any other property that affects the emission shape's offset, size, scale, or orientation. Note: This signal is only emitted inside the editor for performance reasons.

ParticleProcessMaterial.CollisionModeEnum

ValueDescription
Disabled = 0

No collision for particles. Particles will go through GpuParticlesCollision3D nodes.

HideOnContact = 2

Hide particles instantly when colliding with a GpuParticlesCollision3D node. This can be combined with a subemitter that uses the ParticleProcessMaterial.CollisionModeEnum.Rigid collision mode to "replace" the parent particle with the subemitter on impact.

Max = 3

Represents the size of the ParticleProcessMaterial.CollisionModeEnum enum.

Rigid = 1

RigidBody3D-style collision for particles using GpuParticlesCollision3D nodes.

ParticleProcessMaterial.EmissionShapeEnum

ValueDescription
Box = 3

Particles will be emitted in the volume of a box.

DirectedPoints = 5

Particles will be emitted at a position determined by sampling a random point on the ParticleProcessMaterial.EmissionPointTexture. Particle velocity and rotation will be set based on ParticleProcessMaterial.EmissionNormalTexture. Particle color will be modulated by ParticleProcessMaterial.EmissionColorTexture.

Max = 7

Represents the size of the ParticleProcessMaterial.EmissionShapeEnum enum.

Point = 0

All particles will be emitted from a single point.

Points = 4

Particles will be emitted at a position determined by sampling a random point on the ParticleProcessMaterial.EmissionPointTexture. Particle color will be modulated by ParticleProcessMaterial.EmissionColorTexture.

Ring = 6

Particles will be emitted in a ring or cylinder.

Sphere = 1

Particles will be emitted in the volume of a sphere.

SphereSurface = 2

Particles will be emitted on the surface of a sphere.

ParticleProcessMaterial.Parameter

ValueDescription
Angle = 7

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set angle properties.

AngularVelocity = 1

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set angular velocity properties.

AnimOffset = 11

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set animation offset properties.

AnimSpeed = 10

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set animation speed properties.

Damping = 6

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set damping properties.

DirectionalVelocity = 16

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set directional velocity properties.

HueVariation = 9

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set hue variation properties.

InitialLinearVelocity = 0

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set initial velocity properties.

LinearAccel = 3

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set linear acceleration properties.

Max = 18

Represents the size of the ParticleProcessMaterial.Parameter enum.

OrbitVelocity = 2

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set orbital velocity properties.

RadialAccel = 4

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set radial acceleration properties.

RadialVelocity = 15

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set radial velocity properties.

Scale = 8

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set scale properties.

ScaleOverVelocity = 17

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set scale over velocity properties.

TangentialAccel = 5

Use with ParticleProcessMaterial.SetParamMin, ParticleProcessMaterial.SetParamMax, and ParticleProcessMaterial.SetParamTexture to set tangential acceleration properties.

TurbInfluenceOverLife = 12

Use with ParticleProcessMaterial.SetParamTexture to set the turbulence influence over the particles life time.

TurbInitDisplacement = 14

Use with ParticleProcessMaterial.SetParamMin and ParticleProcessMaterial.SetParamMax to set the turbulence minimum and maximum displacement of the particles spawn position.

TurbVelInfluence = 13

Use with ParticleProcessMaterial.SetParamMin and ParticleProcessMaterial.SetParamMax to set the turbulence minimum und maximum influence on each particles velocity.

ParticleProcessMaterial.ParticleFlags

ParticleProcessMaterial.SubEmitterModeEnum

ValueDescription
AtCollision = 3

The subemitter is emitted when the particle collides.

AtEnd = 2

The subemitter is emitted at the end of the particle's lifetime.

AtStart = 4

The subemitter is emitted when the particle spawns.

Constant = 1

The submitter is emitted on the constant interval defined by ParticleProcessMaterial.SubEmitterFrequency.

Disabled = 0

The subemitter is disabled.

Max = 5

Represents the size of the ParticleProcessMaterial.SubEmitterModeEnum enum.

Reckfell Engine documentationBack to top ↑
QUICK LINKSGetting startedEntity hierarchyC# & .NET 10Scenes and prefabs
Reckfell guides and full API K
reckfellENGINE
RECKFELL ACCOUNT

Sign in

Sign in to your Reckfell account.

One account for the entire Reckfell platform.