Occlusion culling is asynchronous. So, it doesn’t matter how much time is spent doing the query, just how long is spent waiting on it. If it isn’t being waited on, it will spend more time (up to a point) to get more culling. If it is being waited on, it will progressively dial things back to get performance up. All our testing has shown that we wait almost no time for occlusion culling, which means it’s not a bottleneck.
I previously used the cylindrical special meshes to hide objects and since it got patched I’m wondering if we will ever get invisible occlusion cullers since it’d really be helpful when hiding things in plain sight.
I’m working on a game with a big map and I’ve noticed a scene culling a background with much more in it (Image 1) but less overall rendered triangles gets half the frames in comparison to a scene with more triangles rendered but not culling much (Image 2).
Image 1
Image 2
Map
So I guess I’m just wondering in the future could we see more optimizations to areas culling a lot behind them?
This is amazing to hear! I do have one question though, as of now it only occludes parts, but will it have the ability to occlude polygons instead of parts in the future?
Could you point me to a place file where I can reproduce this? Occlusion culling is supposed to scale itself back if it’s taking too long so that it doesn’t hurt framerate.
Culling individual triangles will always be too expensive. That’s basically what GPU hardware does when we tell it to draw everything, and software can’t compete with dedicated hardware for determining whether each triangle is visible. But we can help the GPU hardware if we can eliminate many entire objects that it no longer needs to worry about, which is what occlusion culling does.
we can always hope, but the team hasn’t given any indications
Amazing update, but will it ever support terrain?
Is there a way to turn this off? It ruined my voxel game’s performance at higher render distances or with caves enabled. It wasn’t like this before the update and you had the option to toggle it.

Are there any plans to occlude beams? I know VFX is mentioned but not sure if beams would fall under that category. Beams eat up draw calls so it could be a big benefit to games that use them heavily
Does this mean that having more objects in a scene would cause the system to kind of like “max out” and cull less objects?
Hi, I have been having a similar issue to CaspianLake with my own game, except it’s 10x worse. It is taking 100ms per frame to perform it’s task. This started on the 25th based on average playtime. Before anything was changed, the game was doing 240fps with the optimizations I implemented. After the changes, the fps has dropped to 9 fps when looking in certain directions, especially in first person.
Sorry for late reply, but I think my game is having issues due to this update possibly as it looks very similar to other reports here, could you please help us in any way?
Here’s my thread: Models in the game quickly flicker in and out of existence
Game is Fortress Master
How do enable occlusion culling? I can’t find it listed in the beta features.
Hi,
I’m aware that occlusion culling is supposed to dynamically scale itself based on different performance constraints, but I’m finding that occlusion culling is instead significantly degrading the performance of my game on a minimum specification mobile device (iPad Air 1st generation).
The reason for this is that occlusion culling uses up one of the two available cores on the iPad Air (Apple A7 is a dual core processor). Previously, it was possible for the render thread to run in parallel to the simulation thread with just two cores, but now one of the two cores is occupied by the occlusion checks which take up several milliseconds.
You can see this happening here: (take note of how physics and heartbeat simulations only start processing after the frame is completely finished rendering)
The way it was before this update: (this is a simulated screenshot, I unfortunately do not have any microprofiler dumps saved from before occlusion culling going live. Notice that heartbeat can begin calculations while render work is being performed)
What this effectively means is that now, on a device with only two cores (which is the case for the iPhone 5s [aka minimum spec], iPhone 6, iPhone 6s), depending on the game, frametimes could be doubled (since now the render thread and simulation thread end up occurring sequentially, not in parallel. I can confirm that for my game, scenes that used to run at 60fps on my iPad Air now run at an unstable 30-40fps.
PLEASE PLEASE make it so on devices with only two cores, occlusion culling is either disabled or only runs if the game is severely GPU bound.
(note: my game is very light on the graphics side to begin with so although the render thread may have been longer pre-occlusion culling, it was still significantly faster to run with the simulation thread happening in parallel)
Any ideas when shadows and lights will be occluded?