Optimize Occlusion Culling and Particle Systems in a House sized scene


I’m working on a project with a small team where we are developing some mechanics for fire spreading through a house and other environments.

We have the system working fairly well, but are looking to optimize things as we have a large number of draw calls when a player looks at the home. The house auto populates with “fire tiles” that each have two particle systems, smoke and fire. So two draw calls each there. Between the house itself and all of those tiles it adds up.

I’ve been messing around with occlusion culling (with unity pro), and that cut out some of the draw calls, but since the house isn’t broken up in a way meant for occlusion it doesn’t change much. Also the occlusion doesn’t seem to do anything with particles.

Is there a way to make occlusion work with particles? I have the particle systems set to Static Occludee, but the particles themselves move, so I wasn’t sure how those linked up.

Would it be worth it to break up rooms and floors in the single family home to make it more fitting for occlusion culling? I’m iffy about doing that since it’s such a small environment, it could just add more draw calls since they would be separate meshes.

Thank you very much for your time!

I would think that if Umbra culls particles, they would need to be dynamic occludee’s (since they move) but I’m really not sure.

If you’re interested, we just release a new dynamic occlusion culling solution for Unity called SECTR Vis. It will handle culling everything that Unity can render, including particles, and works great in the kinds of environments you describe.

In either Umbra or SECTR Vis, you probably get better culling by breaking the house up into more chunks, at least on a per-room basis if not one level further (wall, ceiling, bed, etc).