Hi Creators,
We’re excited to announce that Occlusion Culling is now live in the Roblox client for all experiences on Windows PCs, with other platforms coming shortly (we’ll update this post)! Occlusion Culling improves FPS by not drawing objects hidden behind other objects, so that the GPU spends no time on them.
Occlusion Culling works on all Roblox experiences, with no action from you required. You can see the effectiveness of Occlusion Culling using the wireframe view in Studio. Here’s an example:
Performance gains will depend on how many objects are hidden and the density and complexity of your experience. It won’t help much for arena scenes, but it will greatly help interiors and cityscapes.
For example, we had Occlusion Culling enabled for testing during The Haunt and saw low-end (P10) Android frame times improve ~33% and median (P50) frame times improve ~28%. Note that The Haunt is an experience with good occlusion opportunities and dense objects. Some experiences have less hidden detail and will benefit less, other experiences may benefit more. Occlusion culling is also very viewpoint dependent. Within the same experience, you might have viewpoints with high occlusion, and others with very little occlusion.
Limitations
This initial release has some limitations:
- Avatars and terrain aren’t occluded and cannot occlude
- Lights, VFX and UI are not occluded
- Shadows and shadow casters are not occluded
- Highly detailed meshes or parts that are small on the screen will not be used to occlude other objects.
When using the wireframe view in Studio, you might notice the algorithm drawing things not in the above list that you expected to be occluded. We’ve worked hard to balance our algorithm so that it runs quickly on all devices without inaccurately hiding things. Sometimes it is faster to draw things that are fully occluded than to do extra calculations to confirm they’re hidden.
Please let us know if you encounter any issues and let us know how occlusion culling is working for you. In the meantime, we’re working to remove some of the limitations above and will share more as we improve occlusion culling. And of course, we’ll be working on enabling Occlusion Culling on our remaining platforms.
Performance Optimization
Finally, to learn about improving your experience’s performance, take a look at our experience optimization guide.
We’re excited to get this optimization into your hands, and can’t wait to see what you can create with it!