We’re excited to announce Level of Detail (LoD) for meshes. You can now choose to render MeshParts at different resolutions depending on the distance from the camera. There are 3 levels of detail: the original mesh and 2 automatically-generated lower-resolution levels, each with about half as many triangles as the next level up. Resolutions switch from high to medium at 250 studs from the camera, and from medium to low at 500 studs.
To activate mesh LoD, set the RenderFidelity property of the MeshPart to “Automatic”. This can only be modified in Studio or via a plugin, not through a script. Note that automatic LoD generation works best for MeshParts without textures.
IMPORTANT: Newly-imported meshes are LoD-compatible by default, but if you choose to use LoD for an older mesh from the toolbox or a mesh you had imported before last week, that MeshPart will get a new MeshID. This means the MeshPart will need to be moderated again, so there will be some delay before it becomes visible in a published game.
WARNING: Because of some recent updates, you might have issues when switching renderFidelity to Automatic for more than 3-4 parts simultaneously. The property value will change but LOD switching will not be activated. This only happens to old, non-LOD compatible meshParts. We are working on a fix.
I’m interested in the potential that such an update has, but do have a couple thoughts on how much control we have over this?
Will it be possible to specify the distance between changing from one LoD to the next? What about having a higher/lower amount of LoD levels?
Along with that, the RenderFidelity we have to choose is between Precise and Automatic. Does this mean we’ll be able to upload our own LoD levels in the future? There are certain methods I use when making meshes that I feel an automatically generated LoD level wouldn’t be able to handle properly. That and more control over how the mesh changes is always better.
Really excited to see what this new update can do for performance, considering I’m on a low-end device and absolutely love to learn how to cut down and help the devs I work with open up their games to users like me who don’t have access to something more powerful.
This is pretty neat. As you said, it doesn’t do so well with textures. Will we be able to upload our own resolutions in the future to prevent stuff like the image below from happening?
This is a great update that serves to clear up some lag caused by mesh parts.
However is there any way to customize when they become each quality or will there ever be a future update that does so?
All in all it is a much needed update and one that will really help game devs. It’ll also help games that previously may not have mobile support due to consistent lag.
This is a benefit for me, including low-end users, and I have a pretty bad computer setup anyway. And it also gives devs more control over meshes, and Unions!
Kinda unfortunate that you can’t change it through a script. Although how would plug-ins do this without scripts(Unless they use loadstring?)?
Why does it need to be moderated? If old ones need to be moderated they why don’t new ones get moderated as well?
there is a bug where if you set many meshes to have RenderFidelity automatic, only some of them will be set, and then when you re-try to set the ones that weren’t changed, it instantly changes their property but doesn’t actually give them new assetids and doesn’t say ‘Finished simplifying x mesh parts’
New ones will also be moderated, but some users might be surprised that an old mesh, that had been moderated previously, will have to be moderated again just because they switch renderFidelity property. It is a quirk of a current system but we working on making re-moderation unnecessary.
Did you check if those parts switch resolution when you zoom out after the second time you set renderFidelity to Automatic? If not, send me that place please, I’ll try to reproduce.