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:ParticleProcessMaterial
Configure particle behavior for GPU particles:Emission settings
Emission shapes
Point
Point
All particles emit from a single point.
Sphere
Sphere
Particles emit from within or on the surface of a sphere.
Sphere surface
Sphere surface
Particles emit only from the sphere’s surface.
Box
Box
Particles emit from within a box volume.
Points
Points
Particles emit from an array of specified points.
Directed points
Directed points
Emit from points with specific directions.
Ring
Ring
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
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