Quick answer: Sim Target = GPU for >10k particles. Reduce per-particle complexity. Raise Max Particles to avoid reallocation.
Crowd dust 50,000 particles. CPU pegged; framerate tanks. CPU sim doesn't scale.
The Fix
Emitter Properties:
Sim Target: GPUCompute
Max Particles: 100000 // avoid realloc
Allocation Mode: Manual
Pre-Allocation: 100000
Particle Update modules:
Remove unnecessary (Collision, Forces if not needed)
Combine custom HLSL nodes
GPU sim moves work to compute shader. Pre-allocation avoids per-frame growth cost.
Verifying
50k particles at 60fps. Stat Niagara: GPU time low, CPU low. CPU sim baseline: 30fps.
“GPU sim. Pre-alloc. Smooth at scale.”
Related Issues
For Niagara CPU readback, see readback. For Stateless emitter, see stateless.
GPU sim. Pre-alloc.