CSG is great! But CSG is also expensive if they are complex and in great numbers.
People (in other game-engines) solve this by rendering lowpoly models of the CSG further away from the camera and the highpoly version close. This is called LOD.
Now this would be quite much to ask UNLESS you already have all components!
CollisionFidelity Hull is basically a lowpoly model of the union!
At the moment you can not render the Hull mesh, it’s simply created for physics calculations. But if we could get an option to render unions by Hull then that would make LOD optimizing very simple!
I suggest a new property of UnionOperation called RenderBy.
RenderBy
-Union
-Hull
-Box
Or simply a boolean called Lowpoly. Either one would decrease the lag of detailed games severely!
CollisionFidelity is for collisisons - i.e. physics. It should not affect rendering.
If anything, this should be implemented by the developer themselves or ROBLOX by calculating low-poly versions automatically when unioning. I think the developer doing it themselves is better because they can choose what detail to keep and what to get rid of.
You’re suggesting that you overload CollisionFidelity so that it also affects rendering. CollisionFidelity affects physics anyway. It chooses how a Union collides with the world.
Like I said, physics should not interact with rendering in any way, and this would go against that idea.
No you’re missing the point.
I’m suggesting there to be a rendering option, like a dropdown list.
RenderBy:
-Union
-Hull
-Box
If you choose union you render like normal union.
If you render by box, then, well you render the obvious box.
If you render by hull, then you render the hull of the union. THIS hull does NOT need to be calculated twice since it’s already created by the collisionfidelity. The mesh is used twice, has nothing to do with collision.
So you’re suggesting a new property which affects rendering? Why would it use the CollisionFidelity Enum then? It should use its own Enum.
In fact, it should not exist at all because it is not powerful enough for developers. The developer can’t choose what parts of the Union need to stay and what parts can go away - you’ll end up with something like fonts without hinting. They look terrible.
Idk if you’re being serious or just trolling here.
It will have its own enum, yes ofcourse.
It will be a lowpoly, aka bad looking mesh. That’s the point, you won’t notice that on a long distance anyways.
It would be incredibly powerful, giving devs the chance to optimize their high quality maps to run on low-spec computers!
It would not be “incredibly powerful”. I have already pointed out a flaw with it.
Take Phantom Forces for example. If they used this sort of thing instead of doing it themselves, you could all of a sudden be missing half a gun. They don’t get to choose what is absolutely required.
You’re missing the point; when you use the low-poly version that ROBLOX automatically generates, you can’t decide what you need to keep. That means, like in my example, you could be missing half a gun at range.
These sorts of things are noticeable by the end user.
You cant notice the difference between a shotgun and half a shotgun at 1000 studs away.
If the shotgun is closer and you still choose to render by low-poly then you’re doing it wrong.
Sounds like whats actually needed is tessellation support, not something based on the physics shape of CSG parts?
CSG tessellation (even if it was only settable in studio) would be pretty great. Having 3 or 4 detail models with box collisions would be far more ideal (imo) than assuming the physics representation of a CSG object is anything shape wise accurate to the actual shape. Being able to set it in game would be even better.
The reason that argument sprawled out is because the OP was unclear about what the specifics of the feature. Please try to clear things up about what exactly this feature request actually does. The OP makes it sound very vague.