Odd Render Distance Behavior

Before I get asked why this isn’t in #platform-feedback:engine-bugs, I’ve never seen this issue before, which leads me to believe the issue is on my end. I found that removing the one and only script from the game removes the issue.

tl;dr: Lower graphics settings only render distant objects instead of the exact opposite.

I asked a few people to see if they have the issue (try it here) and they had the exact same behavior.

There is only a single LocalScript in the entire game:
image

This is its source:

local RS = game:GetService("RunService")

local Cam = workspace.CurrentCamera

wait(0.5)
game:GetService('StarterGui'):SetCore("TopbarEnabled", false)

RS:BindToRenderStep("Camera", 200, function()
	Cam.CFrame = (workspace:FindFirstChild("CamPart") and workspace.CamPart.CFrame) or Cam.CFrame
end)

It’s just a super lazy implementation of forcing the Camera to view the landscape from where I specified using a single part:
image

What in it is causing this weird behavior? Why would it ever be possible to write code that can completely ruin how the Graphics Settings work?

This bug appears with ShadowMap and Voxel, so I don’t think it has anything to do with the new lighting phase being used here.

Tried the code without binding to renderstep (Only assigning CFrame once) and it still behaved like this.

When I remove the script and move there the old fashioned way, it behaves as expected.

1 Like

Perhaps this has to do with the location of the character? Try setting the character’s position to the CamPart and making the character completely invisible. Roblox may be basing the render distance based on a different position than what you want it to be.

You had the right idea. I’ll be posting the solution in a second, just getting the required images and videos to do so properly.

1 Like

Solved by @Xiousa and @Rocky28447!

The issue was with the focus.

By printing out Cam.Focus.Position and Cam.CFrame.Position, I found that the focus was 0,0,0 despite the Camera being much further and looking elsewhere.

The new code is simply

local Cam = workspace.CurrentCamera

wait(0.5)
game:GetService('StarterGui'):SetCore("TopbarEnabled", false)


Cam.Focus	= workspace.MainTree.Trunk.CFrame
Cam.CFrame	= (workspace:FindFirstChild("CamPart") and workspace.CamPart.CFrame) or Cam.CFrame

Behaves exactly as intended.

4 Likes