This is good, but I have since stopped using CSG in my places because meshes seem superior in almost every aspect (mostly because of performance though). I can’t wait to see this implemented with MeshParts.
So can I safely turn this on for all my unions in my game to reduce lag? Or is this not how it works, should it be enabled for some parts, or all?
Turn it on for anything that doesn’t need to always be rendered at highest quality. The only things I imagine not having it on for are things like tools, where they would probably render in highest quality anyway.
This feature is extremely useful for games with a open landscape. Trees and buildings that use unions won’t need to be rendered fully if they are far away from the client.
We plan to change the logic to automatically adapt to the object size in the future (specifically, at some point this year), so hopefully this won’t be necessary. We may provide extra enum entries such as Aggressive or HighQuality that bias the selection towards performance or quality, but we don’t want to bake the number of levels used in the API.
There’s still significant development required - our current simplification algorithm relies on some internals of the CSG code and doesn’t have to deal with some features such as UV coordinates.
Awesome, this sounds like a solid implementation. I was only initially worried about the specific values stated in original post. As long as the distances adjust based on the object, then I see no problem.
Looking forward to it!
This is a nice feature, but would it be possible to allow developers to have custom settings UI that allow players to force a certain LOD setting?