More RenderFidelity options

As a Roblox developer, it is currently too awkward to use RenderFidelity Automatic in a large world. The level-of-detail of meshes decreases way too close to the camera, and RenderFidelity does nothing when used on MeshParts with a low triangle count.

To fix these issues, I propose to add 2 new options to RenderFidelity:
(names are just examples)

AutomaticFar - Exactly the same as Automatic, except the model unloads in stages twice as far as regular Automatic. A use case for this would be tree leaves. For example, in my game, the tree leaves currently unload very close to the camera, almost directly in front of you (as seen below). I need to use RenderFidelity on these leaves, as my game has hundreds of these trees, and will have hundreds more as I continue to expand the map.

Unload - When the object is a decent distance from the camera (about the same distance that regular Automatic kicks in), it will become completely unrendered. This would be incredibly useful for small meshparts or furniture, stuff that you don’t need to render unless the player is really close by. I realize this can probably just be fixed by using StreamingEnabled, however, for my game I would like to have the StreamingEnabled distance extremely far so that you can see a lot of the map at one time. This means that furniture inside of houses and such would still be rendered at these extreme distances, despite the player being >2000 studs away.

If Roblox is able to address this issue, it would improve my development experience by further optimizing MeshParts, and also making large open-world games look better without the jarring pop-in of meshes changing detail right in front of you.


I’d rather have the LOD feature rely on numbers instead of RenderFidelity enums. Then I can manually set how far away the camera needs to be before the LOD kicks in and don’t need to rely on a billion RenderFidelity options.

I don’t know how possible that is to implement though :thinking: