We are excited to announce that our upgraded Model LOD has shipped! The upgrade involves increasing the Model LOD resolution and capturing the model’s shape and color more accurately, resulting in improved quality.
Example 2: Before (Top) & After (Bottom) Model LOD
How to enable Model LOD
Model LOD allows experiences that have enabled streaming to have better visual quality for models that haven’t yet been streamed to the client. Without Model LOD when a model with parts is outside the streamed area and not present on the client nothing will be rendered for the model and it will be invisible. With Model LOD, a reduced resolution imposter mesh will be used for rendering.
Model LOD is implemented on a per-model basis, and the feature can be enabled by:
Check StreamingEnabled under Workspace Property->Streaming
Set LevelOfDetail property to StreamingMesh for a Model to generate LOD data.
Warning: You cannot revert the upgrade once it’s saved.
To upgrade a single model, simply choose the desired model, change its LevelOfDetail property to Disable, and then switch it back to StreamingMesh. This process will initiate the upgrade.
We offer a script that enables batch upgrades of the LOD data.
descendants = game.Workspace:GetDescendants()
for _, descendant in pairs(descendants) do
if descendant:IsA("Model") then
if descendant.LevelOfDetail == Enum.ModelLevelOfDetail.StreamingMesh then
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.Disabled
descendant.LevelOfDetail = Enum.ModelLevelOfDetail.StreamingMesh
end
end
end
Help us to continuously improve Model LOD
Thanks to your feedback, we would not have been able to achieve what we have with Model LOD without it.
That said, we are hoping to continuously improve our LOD generation algorithms. If you would like to participate in a study to test out new algorithms, please sign up here.
Is there a possibility that this could be brought to experiences that don’t use streaming enabled?
Maybe a function that toggles between a models streaming mesh and normal quality manually?
Is there a way to view the tri count of the generated streaming mesh? In the past the tri count of the streaming mesh would sometimes be higher than the original. Is there checks in place to prevent issues like that now?
When switching to Streamingmesh, is the generated mesh subject to moderation? In the past when I ran an ipairs loop to change the render fidelity of all the meshes in my game I quickly hit the moderation queue limit which caused an assortment of issues.
It’s great to see LoD is improved. Is there any chance that we can have a function that can change the LoD level of instances manually? this would be very useful for custom LoD systems. Currently, we remove the object or change it with a low-poly version manually.
Not entirely related to your question, but I figured I would mention Roblox already does this for terrain voxels in all experiences regardless of if StreamingEnabled is on or not.
So I think Roblox might be working towards what you’re asking for here, they just haven’t gotten to that point yet.
Similar to replies above, model LOD should be accessible even if you don’t use streaming enabled, I don’t use it because I need all parts to be on the client at all times, but I would still like to be able to use the LOD system.
Roblox has actually recently released something to allow you to enable certain models on the client at all times, a really good way to keep the parts you need clients to always see, but also still use streaming enabled New Improvements to Streaming Enabled
The LODs match the look of the buildings a lot more, even capturing details like their color and their roofs (you can click on one of the images and click on the “next” arrow to compare). One feature I’d like to have is the ability to see how the LODs look up close in Studio without needing to play the game & getting far away from models.
This is cool and all but I still prefer to use my own LOD loading method for now. This is good for people who don’t have the bandwidth to make their own LOD models and script to load them though.
Sorry in advance, I don’t know anything about rendering.
My laptop has framerate issues with Roblox but not other games because it seems Roblox’s optimization is not the best.
Will this new feature impact the optimization of games?
Overall, it looks really good, as you can see from the tree mesh.
But I think the bigger the structures gets, it more falls back into the old LOD type.