Skip to main content

Overview

Godot provides powerful particle systems for creating visual effects like fire, smoke, sparks, magic effects, and more. Particles can be processed on the CPU or GPU, each with different capabilities and performance characteristics.

Particle types

GPUParticles2D

GPU-accelerated 2D particles:

GPUParticles3D

GPU-accelerated 3D particles:
GPUParticles are processed on the GPU and can handle thousands of particles efficiently. They’re only available with Forward+ and Mobile renderers.

CPUParticles2D

CPU-processed 2D particles:

CPUParticles3D

CPU-processed 3D particles:
Use CPUParticles for compatibility with all rendering backends, including the Compatibility renderer and web exports.

ParticleProcessMaterial

Configure particle behavior for GPU particles:

Emission settings

Emission shapes

All particles emit from a single point.
Particles emit from within or on the surface of a sphere.
Particles emit only from the sphere’s surface.
Particles emit from within a box volume.
Particles emit from an array of specified points.
Emit from points with specific directions.
Emit from a ring shape (3D only).

Gravity and forces

Color and scale over lifetime

Rotation and angular velocity

Animation

Particle attractors (3D)

Create forces that attract or repel particles:

GPUParticlesAttractorSphere3D

GPUParticlesAttractorBox3D

GPUParticlesAttractorVectorField3D

Particle collisions (3D)

Make particles collide with objects:

GPUParticlesCollisionSphere3D

GPUParticlesCollisionBox3D

GPUParticlesCollisionHeightField3D

GPUParticlesCollisionSDF3D

Particle collisions are GPU-intensive. Use them sparingly and with appropriate resolution settings.

Common particle effects

Fire effect

Smoke effect

Rain effect

Explosion effect

Magic sparkles

Custom particle shaders

Create advanced particle behavior with custom shaders:

Particle sub-emitters

Create particles that spawn other particles:

Performance optimization

Use appropriate particle count

Start with fewer particles and increase until you achieve the desired effect.

Choose CPU vs GPU wisely

Use GPU particles for large amounts, CPU particles for fewer particles or compatibility.

Optimize draw calls

Batch similar particle systems and reuse materials.

Use visibility ranges

Disable distant particle systems using visibility ranges.

Converting between CPU and GPU

Next steps

Shaders

Create custom particle shaders

Environment

Configure world environment