Streaming LODs look very cubic

Reproduction Steps

Join a game using streaming with LevelOfDetail set to StreamingMesh on several models far enough away from your player’s spawn.

Setting the Streaming min and target distances to 64 on Workspace is the easiest way to reproduce this.

E.g. LODs.rbxl (38,4 KB)

Expected Behavior

The streaming models should be low-poly stand-ins that follow the rough shape of the model they represent.

Actual Behavior

Every LOD model looks like it came straight out of minecraft regardless of the streaming target and min distances.

This doesn’t seem intentional because this cubey result would have many more vertices than what I remember the LOD models having in the past.





Issue Area: Engine
Issue Type: Other
Impact: High
Frequency: Constantly
Date First Experienced: 2022-09-24 00:09:00 (-05:00)

10 Likes

Hi @PeZsmistic, According to the Roblox engineer working on LOD, the voxel LOD you observe is the new expected behavior.

This behavior seems pretty bad, granted I have no background knowledge. In the first image (sticks on baseplate) it appears to significantly increase the number of faces in the distant model.

Was this done for any particular reason? E.g. to save on compute time or something? Is there something I’m missing? Overall this seems worse and I’d like to understand why this was changed. Insight appreciated.

3 Likes

I am on your side that it looks unnatural and it is not perfect. We are looking at better ways to do it.

4 Likes

I am less concerned about it looking unnatural as I am about it being worse for performance due to seemingly producing LOD impostor models with a higher poly count than the original model. At far enough distances the blocky appearance is negligible, but that it’s turning a single part (6*2 triangles) into a jagged blocky shape that appears to be many more triangles is quite frankly not correct behavior. Games on Roblox already model their assets as low-poly as possible; this cubic approximator would probably be somewhat effective for high poly assets, but given the repro file, seems to be harmful when using low poly assets.

Actually I went and checked rendering stats and the blocky LODs are somehow reading as 400 tris compared to just 24. I’m sticking to it that this is not correct behavior.

6 Likes

This one particular example is definitely a bug: we should never create LOD models that use more memory than the original models. We’ll look into this. Thanks for reporting the issue.

7 Likes

Wanted to mention that this is still happening, and is still inflating polycount on already low-poly assets including single parts. This is not acceptable behavior.

2 Likes

It would be best if you guys implemented the last level of Performance LOD as streaming LOD. Those are probably at very low (maybe has a little more than the cubes) tris but have a closer shape to the original. If you are in the LOD team, please add LOD for skinned meshes.