Occlusion Culling Now Live in Roblox Client

are there plans for shadow culling?

it’s…. so peak💔
I guess I have a stupid question… I haven’t tested this myself, but this doesn’t affect the highlight instance right? Will de-rendered objects still be highlighted when it has the highlight instance?

This is good stuff. I do have one question though. Could occlusion culling result in reduced performance on CPU bottlenecked places? What are the actual drawbacks of occlusion culling? Like how much time does it take to calculate, let’s say, a scene with over 50k parts.

Also, could we get the ability to choose what instances can and cannot be occluded?

Awesome been waiting for this! I’m curious how much it’ll improve performance for mobile devices the average FPS is always low.

What would your use case for this be?

Amazing!! Is there a way to toggle this for benchmarking purposes?

or

we can also override it to force invisible :slight_smile:

This is one of those rare update posts where nobody can complain because it’s just a straight improvement. Christmas came early!

1 Like

luau shaders is coming next i know it im not crazy

6 Likes

I had been curious about this since its initial announcement: are there any reasons characters dont get unrendered if their bounding box is fully occluded? seems like a much simpler step while allowing for immediate benefits, while waiting for more accurate checks later.

Yeah, it’s been in beta. This is release, so now it can be used fully, hence the excitement.

2 Likes

CPU Optimizations. I’m asking for the ability to set what instances can and cannot occlude to hopefully diminish any potential CPU bottlenecks for instances which probably could get away with being rendered on the GPU most of the time. Mostly asking because i don’t exactly know what are the performance drawbacks of occlusion culling.

2 Likes

I remember the doomers saying that this would be too advanced for Roblox to add. :joy:

7 Likes

Anything with a highlight on it is ignored, I was about to verify this right away because I have some objects in my map that have a highlight and they never get hidden.

1 Like

I can’t speak for the dev team, but it does seem to use some logic in my testing that it chooses to hide parts based on performance gain. For example, you have a wall that can hide a ton of other parts, in the thousands in my testing anyway, it’s very fast. I actually wrote my own pseudo-occlusion culling like code for my game client years ago to do the same thing and it only does these checks 1 time a second for performance reasons.

Having the client do this with native code built-in is not only way faster than what is possible for us via script, it is also lag free because if you try to emulate this at the frame level like Roblox is now doing, the appearing and disappearing takes time that causes noticeable CPU spikes and frame lag.

Being about to see the difference myself when I turn my own system on and off is quite impressive to me anyway. :grin: It’s basically a big performance gain for free and my old system can fill the gaps where I want to hide objects that have VFX or Humanoid objects on them that the new system ignores currently.

The only way to choose which parts to ignore in the new system is to stick something on them that will make them automatically ignored like a “Humanoid” object, even with no settings or connected to anything, currently fills that role. I’m sure other objects will will trigger this to, maybe an enabled VFX that has the settings so low it doesn’t actually make anything, but I haven’t had time to run a gambit of all of them to see which are ignored and which are not, other than the Humanoid object. :thinking:

1 Like

I have seen it myself run its own logic within the micro profiler. It does seem to be pretty fast however i can’t just take that for granted, especially when my system is basically GPU bottlenecked in 99% of scenarios. Personally i really want to know exactly how the occlusion culling works on systems with BOTH low CPU and GPU processing power like an old i3 with intel hd graphics. I wish to know exactly the trade offs between the CPU and GPU when it comes to processing such a feature since i don’t believe this tech is just “free” in that regard. I’m really curious to know how much CPU computing goes down relative to how much GPU computing goes up all while not causing an obvious CPU bottleneck.
Another kind of test case would be how much would occlusion culling hurt performance in places which are CPU bottlenecked. I myself have a couple large places which suffer from CPU bottlenecks and i’m really curious to know exactly how much does it hurt framerates (if at all) in those places. Since yknow, a CPU bottlenecked place wont exactly improve framerates regardless of how much load you remove off the GPU.

Also sticking humanoids into random parts and models is sure to destroy performance regardless or whenever or not those humanoids are actually doing something. Don’t do that, thats bad practice. Seen quite a lot of cases in which humanoids magically ended up in random places to even being a direct child of the workspace! And let me tell you, when that happens framerates can go into the single digits pretty darn quick.

This is the best roblox update of all time, all games using lots of part based maps with fancy builds now run 2x faster.

i3? That’s way too modern! I’m using a 2007 CPU (Intel Core2) :rofl:

1 Like

Maybe not best practices due to the black box nature of how their code works, but it was an example of a known way to make this happen. I haven’t had time to try every possible object property or type to get a definitive list yet, I’m sure someone else will beat me to it. :grinning:

1 Like

To be fair while you do have a core 2 quad from 2007, your system so far is still far more powerful than the average craptop with some laptop/mobile dual core i3 with integrated graphics that barely even quality as display adapters. This is all forgetting the fact usually those systems come with super slow single channel 4-8 gigs of ram which don’t exactly do much on modern versions of windows (win 10 and 11). Maybe youre more prone to CPU bottlenecks (since your 780 Ti should be pretty much more than enough for roblox) however it is basically running without any other bottleneck and limitation, unlike a vast majority of actually old and low end machines.

This isnt to undermine your core 2 quad rig, i believe its impressive what it can do but i believe its pretty clear that your rig right now is the exception to the rule here.