Remove arbitrary draw distance limit

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

Gif showing why the draw distance should improved

13 Likes

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.

4 Likes

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.

15 Likes

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.

Here’s a simple example I found a long time ago.

5 Likes