Hello. I have a Ribbon particle system with Spawn Per Unit module for tire track simulation. If i set Max Particle in Trail Count in Ribbon module to some big value (10000000 for example) it leads to very big perfomance loss, even if such amount of particles does not spawn.
“Max Particle In Trail Count - The maximum number of particles that the trail may contain at any one time.” - So it’s just a limit. If I’m not going to spawn a large number of particles, everything should be fine? Right?
But it seems that the performance loss occurs, even if only a few particles spawn using the Spawn Per Unit module.
Max Particle in Trail Count has a direct impact on performance regardless on the real number of particles that will be spawn?
It can be easily reproduced.
Create a new particle system
Add the Ribbon Data Type
Set Max Particle in Trail Count in the Ribbon module to 10000000 or more (on my computer, it is enough to lower the FPS to 1)
Put it on an empty level
So, a new particle system have default emitter duration is set to 1 second, and default spawn rate to 20. This means that in one second will be spawn 20 particles and then the emitter will start again. Default particles lifetime is 1 second too. Thus in fact, we have no more than 20 particles at any one time.
While this does give the slowdown on my end as well, however Particle Trails are handled on the CPU and having it render 10 million on a trail will cause a significant slow down in rendering. Try using lower values for better performance.
Hi Tim, thank you for answer.
I’m probably not properly explained my issue. Sorry for my English.
I understand that 10 million is a ridiculous value of particles, and I was not trying to spawn them. This value just as an example. I just want to understand how it works.
In the example above, we have no more than 20 particles rendered at any time, but it still leads to large losses of performance (if Max Particle in Trail Count in Ribbon module set to a large value).
It bothers me because in my case, I have a ribbon emitter that usually spawn no more than 50 particles at any time, but in some cases this value may be up to 150-200. If I set a Max Particle in Trail Count on the 200, I will always pay my cost of performance as if I have 200 particles on the screen, no matter how many of them actually 1 or 2 or 50 - all the same.
Is that so?
Even though you only have 20 particles each particle spawned has this high value for the trail. You can see this in Cascade when looking at the particles viewport for the number spawned. The max trail count directly affects the value on the right and subsequently performance if you have a lot of them.
I too would like to know, also I too don’t understand your answer. Seems you say that the max count has more purpose than just to cap off the particles? Is that a bug or does it make sense somehow?
I guess (but I’m merely wildly guessing) that the max cap needs to allocate memory (or similar) to enable it to go that high. Kind of like saying “You have 3 cars, and the parking lot has a max 500 parking spaces for cars”, in that realworld example that max parking spaces has very real implications (as each new parking spot needs to be made).