OK. Could you open the empty project you created, go to the Help menu, and choose ‘Report a Bug’? It’s going to be much more reliable if you can send us the project where you’re seeing this behaviour, instead of us trying to create it and maybe missing steps (like marking the objects as static…) Once you’re done, let me know the bug number and I’ll see if I can look at it.
Guys, please, explain what is wrong with static batching in 5.3? Why I have 11 dc with only 4 materials (all is set to mobile\diffuse) if we see that meshes is combined in one?
Particle systems are not batched now as we have a multi-threaded particle backend so its not possible. If you do notice a regression in performance between the 2 methods then do please let us know however it should be better overall.
I am not complaining as I have tested a rather complicated particle effect on a (relatively new) mobile phone and it runs surprisingly at 60 fps. I just want to confirm one thing: Does the multi-threading use more power for processing? This can be quite sensitive on mobile platforms.
Pushing this.
Does this mean if i compile without multiple threaded settings, particle systems will be batched?
Wasn´t there a thread were multithreading lead to crashes?
No batching does not work with particle systems any more. The multi threading is done before rendering, its for calculations of each particle’s properties, positions/sizes etc. The rendering happens after this stage so they are 2 seperate things. I am not aware of any crashes related to particle threading. Do you have a link?
Is there any way we can have an option in the Player settings for “Particle System Batching” that would use the old system when enabled and allow particles to be batched?
Our game has lots of particle systems for weapon effects, foot impacts, and all kinds of stuff. Each particle system usually has only a small number of particles. A lot of effort has been spent ensuring that all particle systems use an atlas and share the same material so they will be able to batch.
This change has drastically increased the number of draw calls, especially since we are developing for VR and the draw calls are doubled. It has impacted us to the point where we would probably have to use a third-party solution for particles going forward.
I’m curious why calculating particles in a thread would exclude them from being batched. Is it calculating each particle system in a separate thread? If so, this seems like an overly aggressive optimization that would only be beneficial in certain circumstances with a small number of particle systems that have many particles each.
We are prototyping a version that does both threading and batching. This will be in a future release though, not something we will backport as its a substantial feature change.
Yes. We are targeting 90Hz on VR and 144Hz for regular screens. In a real-world scenario, I find that as the number of batches increases we essentially get cut off from reaching those higher frame rates.
An increase in batches in one part of the engine means we need to reduce them somewhere else.
Particle effects are an especially bad area for this to happen since the number of particle systems on screen can fluctuate wildly once the action starts, as opposed to predictable things like characters and pieces of environment.
The batching page in the online manual also still says that particles will be batched, so this might be confusing for someone reading.
I don’t suppose there is any chance of getting this new particle batching in 5.4? You’d have a new #1 fan.
Hard to make any promises about when the feature will be available at this stage. It was only implemented today so it’s going to take some time to test and iron out any issues. We will update the docs though.
We have been working on reinstating dynamic batching for particle systems, to work with the new multi-threading, and have made good progress. We are currently testing a solution, and assessing the risks with putting the change into various Unity versions.
We will update you again when we have more to report.