Cascade Particle System GPU Sprites Issue

Hello developers,

Our project are facing some performance issue on Cascade Particle System equipped with GPU Sprites emitters.

The amount of these particles is around 15000~25000.

From unreal insights, we can see the time cost of FInitParticleSimulationGPUCommand on Render Thread is high which leads to a short period of low FPS after the particle system is spawned.

The questions are:

  • What’s the suitable amount of the particles for Cascade Particle System?
  • Is there any other method to improve the performace instead of decreasing the particles?

Hi. There is not necessarily a pre-determined number of particles that Cascade should handle. It depends on your scene’s overall budget and your visual priorities. Render Thread can be bottlenecked by more than just the Cascade system.

There are usually other elements of a Cascade system that can be reduced to get bigger gains than reducing particle counts. However, the effectiveness of such changes depend on how your particles and your scene are set up. Besides lowering particle counts, you can try:

  • reducing the material complexity used by the particles
  • reducing overdraw
  • reducing particle lifetimes
  • reducing expensive calculations or features in the particle system (like collision, lights)
  • reducing the number of separate emitters used within the particle system
  • setting fixed bounds for the system
  • utilizing scalability settings for the particle system (LODs)
  • adjusting LODDistanceCheckTime to be less frequent
  • reducing the number of particle systems in the scene
  • improving the overall performance of the scene that the particles are spawned into

Here’s some documentation that expands on these types of recommendations: