As a Roblox developer, it is currently a very bad experience to work long-term with models that use StreamingMesh.
I have a large open world with lots of models that use StreamingMesh. Most of these models I enabled it for once upon release and have not modified since.
Over time, Roblox makes adjustments to the algorithm that generates StreamingMeshes, producing increasingly optimal LOD meshes. However, in Studio this process is static, it happens once when you set the property as far as my experience has gone, and is then saved and associated with the model, and reused for copies of that model.
Right now, Studio gives you absolutely zero visibility on what these meshes look like unless you play the game and finesse your settings to show the streaming model. This makes it time consuming to find the best way to divide the model into sub-models so that the streaming meshes look good (i.e. a tree trunk should be remeshed separately from the tree leaves so the overall tree’s silhouette is maintained, and the model’s colors don’t bleed in ways that destroy the impression of the object).
In some cases, I have had streaming meshes fail to update when they should have, leading to issues where the streaming mesh is ridiculously offset from where the model actually is in the world. This is very difficult to find during runtime because the model simply appears somewhere incorrect when you’re too far away from it. It’s like finding a teleporting needle in a haystack.
When the streaming mesh generation algorithm updates, I don’t get any notification that this has happened. If I want my open-world game to use the most up-to-date optimized LOD meshes, I have to disable and re-enable StreamingMesh on all of them, which in itself is a clunky and time-consuming manual process. I don’t think this process is immediate either, I think that the streaming mesh generation happens async, so I also have no idea when it has finished and I can publish my game.
Also, learning that you should toggle the setting off and back on to regenerate the streaming meshes is super unintuitive. I have no idea how you would even learn from scratch that you need to do this in the first place.
And as a final note, I recall a detail that these streaming meshes are deduplicated when there are multiple copies of a single, same model. This reduces the memory requirement for these streaming meshes. I have no way to tell if I have accidentally broken this association and I have lots of wasted memory spent on redundant streaming meshes. Not all of my models are converted into packages yet.
The entire experience of working with these in Studio is rough and unpleasant. There is lots of room for improvement with this.