Table of Contents

Class ShapeBuilderBillboard

Namespace
Stride.Particles.ShapeBuilders
Assembly
Stride.Particles.dll

Shape builder which builds each particle as a camera-facing quad

[DataContract("ShapeBuilderBillboard")]
[Display("Billboard", null)]
public class ShapeBuilderBillboard : ShapeBuilderCommon
Inheritance
ShapeBuilderBillboard
Inherited Members

Properties

QuadsPerParticle

Returns the number of quads required per particle to draw all particles. Assuming 1 Quad = 4 Vertices = 6 Indices

public override int QuadsPerParticle { get; protected set; }

Property Value

int

SamplerRotation

Additive animation for the particle rotation. If present, particle's own rotation will be added to the sampled curve value

[DataMember(300)]
[Display("Additive Rotation Animation", null)]
public ComputeCurveSampler<float> SamplerRotation { get; set; }

Property Value

ComputeCurveSampler<float>

Methods

BuildVertexBuffer(ref ParticleBufferState, Vector3, Vector3, ref Vector3, ref Quaternion, float, ref ParticleList, ref Matrix)

Builds the actual vertex buffer for the current frame using the particle data

public override int BuildVertexBuffer(ref ParticleBufferState bufferState, Vector3 invViewX, Vector3 invViewY, ref Vector3 spaceTranslation, ref Quaternion spaceRotation, float spaceScale, ref ParticleList sorter, ref Matrix viewProj)

Parameters

bufferState ParticleBufferState

Target particle buffer state, used to populate the assigned vertex buffer

invViewX Vector3

Unit vector X (right) in camera space, extracted from the inverse view matrix

invViewY Vector3

Unit vector Y (up) in camera space, extracted from the inverse view matrix

spaceTranslation Vector3

Translation of the target draw space in regard to the particle data (world or local)

spaceRotation Quaternion

Rotation of the target draw space in regard to the particle data (world or local)

spaceScale float

Uniform scale of the target draw space in regard to the particle data (world or local)

sorter ParticleList

Particle enumerator which can be iterated and returns sported particles

viewProj Matrix

The View-Projection matrix which is used for some shape builders

Returns

int

GetParticleRotation(Particle, ParticleFieldAccessor<float>, ParticleFieldAccessor<float>)

Gets the combined rotation for the particle, adding its field value (if any) to its sampled value from the curve

protected float GetParticleRotation(Particle particle, ParticleFieldAccessor<float> rotationField, ParticleFieldAccessor<float> lifeField)

Parameters

particle Particle

Target particle

rotationField ParticleFieldAccessor<float>

Rotation field accessor

lifeField ParticleFieldAccessor<float>

Normalized particle life for sampling

Returns

float

Screenspace rotation in radians, positive is clockwise

PreUpdate()

public override void PreUpdate()