GPU Occlusion Culling and Scene Loading Questions

Hello graphics team!

My studio is working on a AA mobile RPG (iOS/Android) and have some questions about occlusion culling. Our project currently isn’t making extensive use of scenes - instead we have an “Initialization” scene which loads prefabs containing level geo and content markers at runtime. We have large areas (zones) which are broken up into levels/rooms that are loaded and unloaded at runtime as the player moves in and out of their corresponding colliders.

We’re at the point in our project where we’re looking to optimize and increase our framerate. Legacy occlusion culling seems to be dependent on loading scenes and therefore isn’t compatible with our prefab loading approach. We noticed that Unity 6 introduces GPU occlusion culling which doesn’t appear to rely on loading a scene - is that correct?

With Unity 6, are there any reasons we may need to refactor our game from prefab loading to scene loading?

Given that we’re already unloading levels/rooms as the player traverses an area, how much benefit should we expect to see from legacy/GPU occlusion culling?

Thank you!

Unity 6 introduced GPU Occlusion Culling for GPU Resident Drawer yes. This is a fully dynamic occlusion culling solution and doesn’t require static objects nor a baking step. So it would be suitable for anything dynamically loaded.

You shouldn’t need to refactor your game to leverage this. It’s supposed to be basically some settings to opt-in and a checkbox Unity - Manual: Enable GPU occlusion culling in URP

You need to meet the platform requirements though. And also since you mention mobile, GPU Occlusion Culling might not be faster here. This is relying on instanced indirect draws and compute shaders. That kind of thing is not very mobile friendly especially low-end mobiles. I would suggest giving it a try and see what the performances look like. It should be quite easy to setup.

Great, thank you!