DPSF by Daniel Schroeder

<PackageReference Include="DPSF" Version="2.5.0" />

.NET API 168,448 bytes

 ParticleTypes

public enum ParticleTypes
The Type of Particles that the Particle Systems can draw. Different Particle Types are drawn in different ways. For example, four vertices are required to draw a Quad, and only one is required to draw a Point Sprite.

Use this when you do not want to draw your particles to the screen (e.g. when you just want to collect and analyze particle information without visualizing the particles), or when you want to draw particles to the screen using your own code (e.g. to draw models instead of textures).

No vertex or index buffer will be created, saving memory.

The BeforeDraw() and AfterDraw() functions are still called when this Particle Type is used. Place your custom drawing code in one of these functions if necessary.

None = 0

This is the default settings when we don't know what Type of Particles are going to be used yet. A particle system is not considered Initialized until the Particle Type does not equal this.

Quad = 5

Four vertices in 3D world coordinates. Allows for rotations in all 3 dimensions, does not have to always face the camera, may be skewed into any quadrilateral, such as a square, rectangle, or trapezoid, and do not use a Texture.

Sprite = 3

Texture in 2D screen coordinates. Drawn using a SpriteBatch object. Only allows for 2D roll rotations, always faces the camera, and must use a Texture.

Four vertices in 3D world coordinates. Allows for rotations in all 3 dimensions, does not have to always face the camera, may be skewed into any quadrilateral, such as a square, rectangle, or trapezoid, and must use a Texture.