[Studio Beta] Introducing Occlusion Culling

Weird, I have a lot of unions yet it, it works fine for me.

1 Like

I did some looking into it, and it appears that based on several factors Roblox has a method for checking what parts should and shouldn’t be occluders as far as I can tell based on a number of factors, rate limiting, the shape, how often it’s seen, etc are all factors. Roblox does this instead of having all parts being occluders for performance and accuracy.

Basically It’s better to have parts that should be occluded not being occluded than to have parts that shouldn’t be occluded being occluded.

1 Like

It seems to occlude things behind specialmeshes that use negative mesh scale in order to be see through.

Camera outside of the specialmesh. (Insides were previously visible)

Camera inside of the specialmesh. (Intended behavior)

This is rather annoying, though not THAT big of a deal as I’ve found workarounds.

3 Likes

For reasons like this I think we need more control over this occlusion.

Because there’s some rare cases where occlusion does not work when it should, and there are some cases where things are occluded when you don’t intend for them to be included, usually the case with fake/mesh skyboxes.

There’s also some cases where I’d specifically WANT models to not render, even if they’re technically visible.

1 Like

Any new updates to this new feature? Or are you just going to leave it in beta until you guys can be bothered to resume on improving it?

2 Likes

I’m dying to test out this feature on the Roblox Game Client.

3 Likes

its already released, i only know this because theres tons of flickering models


1 Like


:skull:

1 Like

you should use an animation controller

I just noticed this got silently enabled, praying it gets kept on because it makes a massive difference in my experience.

1 Like

It does absolutely nothing to change lighting properties of model.

1 Like

time to test performance gains!

I just want to say that that is a beautifull map, and with occlusion culling, the framerates are better making it look more appealing.

recently i have concluded such an experiment: part gets instantiated on each frame and parented to workspace, later those parts are CSG’d (unioned together) in batches of 100k
i’ve found out the engine becomes unresponsive at approximately 730k parts
i wonder will this new feature help enlarge this limit?

2 Likes

I noticed this in Bee Swarm Simulator. It appears to be an issue with cylindrical parts.

3 Likes

I did some testing and it’s an issue with cylinder special meshes.

2 Likes

It will be permanently on for all games, unless we see a compelling reason not to do so. It’s designed to not impact performance when it isn’t helping.

Unions can get culled, but they do not cull anything in the initial version of occlusion culling. We may or may not add that in a future revision.

As you noted in your own reply, it has a bug with negative scales. This will be fixed in the next release. If you want to work around it before then, a scale of “x, -y, -z” is mathematically identical to a scale of “x, y, z” with a 180 degree rotation around the x axis. Negative scales on two axes are always equivalent to a 180 degree rotation around the third axis instead.

Yes. It will be fixed in the next release.

We continue to work on improving it. For reasons you can probably guess, Roblox does fewer updates in December.

You’ll have to try and see. It only improves the rendering time, and only if parts are occluded. If you’re limited by simulation or something else, it won’t change anything.

Thanks for the report, I’ll look into it. Cylinder special meshes should not occlude anything, but cylinder parts should. They are different due to technical details.

5 Likes

Please release this year, I have a game otw <3

1 Like

Any update on negative specialMesh scale culling? It’s been quite a while and it’s still impacting skyboxes in my game.

1 Like

This is perfect for a custom terrain made out of separate parts.