What counts as an avatar in this context? My game uses custom characters using skinned MeshParts. Is an avatar defined based on if they are set as some player’s Player.Character
property? Or this this some special R6/R15/Humanoid edge-case where custom characters would be excluded?
I’ve waited ages for this, probably one of the best optimizations in Roblox.
There are so many games where tons of geometry and textures are being needlessly rendered.
This will HUGELY benefit games with lots of indoor areas, caves or busy and populated cities.
This might also majorly benefit open-world games since everything that’s hidden behind a huge mountain doesn’t need to be rendered.
I wonder what the performance improvements are going to be.
This is insane. I learned how to do this in C++ last month. I’m so excited to see it used on Roblox!
omg this is amazing, imma test this rn
Literally the best update on roblox
if anybody knows just one question? when i enable the beta feature does it auotmatically enable the new update OR is there like a special property i have to change on the parts?
Once you restart Studio, the update should automatically be enabled. You shouldn’t have to enable a property on parts to activate the occlusion culling, since this is meant to prevent parts that aren’t visible from rendering.
An absolutely amazing feature to have! Was wondering when this may be released since its announcement. Thank you!
Can’t wait too see the performance improvements, especially on large maps or games that really need the boost that this could bring!
alright thanks i wasnt sure on it since i didnt realize when i was testing
Before Occlusion Culling (our most dense scene):
3mil tris, depth draw count super high
After Occlusion Culling:
372k tris, depth draw count super low
And with this, Roblox on mobile and old PCs just became a lot more playable.
So for those who aren’t techs, here’s a simpler explanation:
Imagine painting a scene with acrylic paint. However, you’re being told how to paint the scene blindly and have no reference art.
The person describing the painting is describing every individual object in extreme detail. This doesn’t prove a problem, but what does prove a problem is that the painter is describing details you’re painting over. He’s describing furniture in a room, for example, but the viewpoint is not inside the room, you only get the barest glimpse of a couch by the time you paint the connecting wall, which hides a lot of the details you just painted.
This is a slow process, obviously. You’re spending time painting things that just dissappear later.
But, then Oclusion Culling happens. Suddenly, you are able to tell the person describing the painting to you, to avoid describing things you are painting over. Instead of hearing about the lovely floral design in the table next to the sofa, and each individual petal, now you’re only told about the little leaf hanging over the side of the sofa. You’re completing the painting a lot faster because you no longer hear about stuff you shouldn’t need to paint.
This matters more for older PCs, or smaller hardware like phones, where every draw cycle counts. It won’t make the game playable on Pentium PCs, but it will make a lot of older Core 2 Duos able to run the game at a decent framerate once more. Especially because they aren’t painting that lovely ten thousand polygon count floral decoration that’s behind the wall.
Will occlusion culling have the same issues streaming service has or will scripts and the physics engine still be able to address parts that are culled?
W, i actually cant wait for this next generation of roblox games, so much more performance will be able to open the window for more games with high quality graphics
This is a rendering change only. Scripts and physics will have no issue.
finally i can (hopefully) run games well on my awful computer when this fully releases
roblox, please delete AND DONT LISTEN TO all those angry voicemails i left on your machine. I love you baby I really mean it
Oh, thank goodness. I often had to script mediocre occlusion culling but I’m glad to see a more effective and convenient way to do this
Our top priority is to first release the current technology in a stable state to production, so that experiences can benefit from it as soon as possible.
Then, we’re going to look into extending what object types can be culled/occluders. The first objects we’d like to cover with an extension would be avatars. We’ll keep Viewport Frames in mind! We don’t have any timeline to share on extension of Occlusion Culling at this time.
Thank you @LvieReal! Forwarding to our engineering team and we’ll take a look.
+ @plaincamron666, @Astra_X2, @evilforge
We don’t have a date to share yet, but our engineers are actively working on getting it out as soon as we can and it is our top priority.
Good catch! We meant when you’re profiling your experience in Studio. If you’re profiling on Client directly, then you can disregard this warning (I will specify in the announcement).
Occlusion Culling cannot cull any objects that are Fast Clusters. Skinned MeshParts would therefore not get culled.
Yes! You should not see any difference to your game’s behavior - physics and scripts should continue working as before!