Let’s change that! Some developers have been on here for 10 years, I think they deserve some revolutionary improvements by now.
I hope there’s a related public API for this too.
I’m looking for an API that will return an array of BaseParts within the camera’s view frustrum that are unoccluded in order to reduce the amount of parts being cloned into ViewportFrames (the use case being something like split screen, picture-in-picture, mirrors, etc.).
Something along the lines of Camera:GetUnobscuredPartsInView(farPlaneZ: number): { BasePart }
would be absolutely ideal! It’s currently causing me great pain trying to figure out a speedy and efficient software occlusion method.
It’s 2024 now so add this feature
It’s coming now watch the RDC24 keynotes!
I see it but i don’t know when it’s coming still
It’s already out to some extent. Select games have it enabled, so I expect it to be out for other games soon.
Yeah they said it’ll be rolling out in the next few weeks
Is there some sort of select timeframe they have, in case anyone knows, like before November or December, of course before new year would be their goal since this is planned for 2024 in the roadmap
Occlusion culling on Roblox is a godsend and despite my grumps and gripes against the engine (for it lagging 10 years behind mainstream engine standards) this is something I can definitely welcome. Just… Wow. Look.
Isn’t that just beautiful? Imagine what the engineers could do if mobile players didn’t exist…
Is this the occlusion culling Roblox talked about at RDC?
Yes, it’s available on Studio as 2 fastflags (MaximumADHD found them):
FFlag EnableVisBugChecks27 : true
DFFlag UseVisBugChecks : true
And you should know the old adage of ‘at your own risk’ by now…
I have no idea how to enable FFlags, is that a file on my PC?
If that’s the case you shouldn’t really mess around with fastflags; everyone likes to say that changing them will summon some sort of crystal shaman that will corrupt your saves, and I have no doubt that it can and will happen, so please, really, unless you want to wake up one morning to a baseplate, I’d advise against venturing into the unknown that is fastflags.
Fine with the risk? Get MaximumADHD’s Roblox Studio Mod Manager here. Install Studio and override the 2 fastflags as mentioned above.
Again, please heed the warning as even Roblox themselves don’t like it when you do stuff.
This feature is added as a fastflag for now i guess and it’s a pretty big leap forward. But what I don’t like is that it doesn’t cull terrain, which is also pretty important (in my use, I’m not saying a big word for everyone, but this would be a nice thing to have)
i think that it will cull objects that are hidden and not triangles that are hidden because checking for every triangle might make a performance loss even worse than without using occlusion culling ( I may be wrong )
You seem to be right. Best way I have found to check this out is in Wireframe View.
Very interesting to play around with.
Hm, seems a bit buggy rn, but hopefully that’s fixed in the future!
I don’t think it’s that buggy. It looks like a few things are just missing here and there and the culling is trying to be conservative - one of the things about occlusion culling, well really any culling, is that you’re not actually meant to notice it in action unless you look at the scene tricount.
As for the terrain - yes it sucks, but I don’t think even Roblox themselves can figure out how to deal with the terrain since you can’t just nil parts of it and put them back like you would with any other instance. That alone should be a deal-breaker if you want to use terrain for a serious open-world game because it’s 2 tri’s per 1 voxel which is just cruel for any system if used extensively.
This isn’t what I had in mind in regards to occlusion culling. I thought that meant the engine wouldn’t render parts which weren’t in the camera’s view, but it seems to do the opposite.
Not exactly sure what type of occlusion culling they use (don’t think they’ve shared it yet), but it doesn’t seem to cull objects on the edges of the frustum for some reason. Unless you meant frustum culling, which I believe they already do that; but maybe the two are conflicting object culling?
Although, this doesn’t happen at a lower FOV for some reason…?