In the past I used the particle system to display tons of meshes and it was fast.
In the boid demo I wanted to use the particle system to replace the ECS, I thought it’d be easier, slap a few repulsorts here and there.
But rendering just 50K fishes goes down to 0.1 FPS! no force, nothing.
It seems odd to me that the particle system, which is multi threaded and lives purely in c++ land would be that much slower than ECS
So I’m wondering if there is a regression in PS perfs.
This could be a lot of things…
What’s your target device? Are you working on a Mac?
Do you have the particle systems selected and particle editor opening when playing and getting this slow performance?
Are you changing the colours of the particles over time?
Is physics on the particles?
btw, generally speaking, yes… the particles are FAST. Shockingly so, in some lean setups.
There’s no way it should be below 60fps on a production machine with 50k particles, without something being “wrong” about how you’re doing something.
sim without displaying the fish mesh = super fast so it’s not the physics or the particle sim.
switch to mesh render, plop in the fish mesh from the boid demo = 0.1 fps
sorry, don’t know what this is.
Until recently, mesh particle rendering was always slow, because it didn’t use GPU Instancing. This changed in Unity 2018.1. Use the Standard Particle Shader, with instancing support built-in, and it should be fast. Otherwise, the complexity of the fish mesh would have a massive impact on performance. If it’s 2 tri’s, probably not so bad, if it’s 200 tri’s, bye-bye framerate!
That all said, if you think you found a performance regression for something that was faster in old unity, we are always happy to look at an example project if you can submit a bug report.
The fish is from the ECS boid demo, it’s around 100 tri I’d say, you can try.
What makes no sense is that 50K fish is super fast with ECS and very slow when rendered by the particle syste, using the same material.
The reason why it shouldn’t be is particle is all engine side and as I pointed out the sim is insignificant in this, I’d think particle render is at least as fast as ECS using meshinstancerenderer.