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.
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.
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?
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.