Introducing Level of Detail for CSG Parts

Hey Developers,

I’m excited to announce that we have recently activated a new feature in Roblox that provides 3 rendering levels of detail for CSG Parts. This improves rendering performance by displaying automatically generated lower resolution representations of CSG Parts depending on their distance from the camera. Currently it is set up to show the lowest resolution at 500 or more studs from the camera, medium resolution between 250 and 500 studs, and highest resolution for anything closer than 250 studs.

Usage of this capability is controlled in Roblox Studio with a new property for CSG Parts called RenderingFidelity. Set this to Automatic in order to activate the Level of Detail feature.

Please let us know if you have any questions.


YESS! Thank you so much for this update, keep it up :open_mouth:


:open_mouth: Thank you.


I’m ready


Very excited to see this in action! Thank you! :smiley:


A post was merged into an existing topic: Off-topic and bump posts

Is there any timeline for when this will be added to MeshParts or are they included in this update?


Finally :smile:
now only Meshpart LOD is needed


I’m not a builder nor am I knowledgeable on rendering, but I have a general question - how much should this affect performance and is the Level of Detail also compatible across different graphics settings? I’m hoping this means that heavier builds will not be as intensive or laggy as before, especially ones that are using CSG.

I’d also like to know if this Level of Detail feature is expected to present itself eventually across other entities such as MeshParts, meshes (xMesh objects, e.g. SpecialMesh). I feel like this could enhance the player experience in general, so that graphics settings and rendering can work coherently to reduce the amount of lag some players may experience. It will not rid of it all, but it seems that it’ll soothe it some.


Sweet, been waiting for a performance update like this!!!

1 Like

Is Level of Detail planned for MeshParts?


For now we are only adding LOD to CSG Parts, we are hoping to add MeshParts support in a few months


Out of curiosity, why in a few months? Are there technical reasons slowing down a release of LoD on MeshParts / is there significant development still required, or is the delay simply for seeing how well things go?


Best news I’ve heard all day, keep up the great work!

Now this is EPIC!



Keep up the good work!

Could we change the studs for the levels or could you make the studs change based on the size of the object? Something like Mesh.Size.Magnitude*20 and the other would be Mesh.Size.Magnitude*40 maybe? Because for big objects that I want LOD for are very big.

This is a great move forward for Roblox! Good job to every one who worked on it.

With that said, would it be possible to add a “Custom” RenderFidelity value in the future?

Setting RenderFidelity to “Custom” would present three sub-properties:

  • Level 1
  • Level 2
  • Level 3

The value of these sub-properties would be the distance at which each LOD level is enabled. This would give a little more control over when an object starts getting it’s resolution decreased, so larger objects that you can see for a long distance can be fine-tuned by the developer.


Or just a number value representing distance in studs.
If dist from camera is greater than this value, enable LOD.

1 Like

Finally, a feature that was well needed. No more creating my own LOD systems.