In my game, there are other planets the player can travel to. I want these planets to be visible from the player’s current planet. But because the current draw distance is limited to 100,000 studs, they are not visible. These planets are ~80 polygons from far away and would have 0 performance impact
Adding a new, unclamped property, Camera.FarPlaneZ, similar to Camera.NearPlaneZ would work pretty well. It should be up to the developer if they want to increase the value of this property, Roblox should not limit it in any way. Setting this value to < 0 would let Roblox determine what the draw distance should be
It might be better to instead have a list of parts to exclude from far plane occlusion - simply removing the far plane globally would attempt render all parts at any distance.
I remember there being a feature request for exactly this, but the search isn’t cooperating. I’ll keep an eye out.
That’s not the issue, the issue is the depth buffer.
The depth buffer is used by the game engine to determine what object should be drawn in in front (on top) for each pixel on the screen.
If you allow objects very very far away to be rendered, they have to map to some depth buffer value so that they still show up correctly in order. The further the range of “far away” stuff you allow to render, the less “space” there is left in the depth buffer for stuff close up, which worsens issues like Z-fighting.
The draw distance limit could be higher, but it would come at a tradeoff of more issues for objects very close to each other like Z-fighting, it’s very much not a free change.
I have barely seen any AAA games doing this without cheating. Elite dangerous places the planets much closer than you think and then moves them according to camera’s location.