For years, lighting quality has been dependent on the CFrame property of workspace.CurrentCamera. This meant that objects and light sources far away from the camera would have their quality reduced. Light sources would not render shadows and materials would have their PBR stripped away.
A recent breaking change now has the engine read from workspace.CurrentCamera.Focus, rather than workspace.CurrentCamera.CFrame to determine lighting quality.
This is an issue because developers like myself who, at times, switch to Enum.CameraType.Scriptable to take control over the camera and move it far away from where it had been have only been assigning the camera’s CFrame property (since this is what determines what actually renders), NOT the camera’s Focus property.
This change breaks the lighting in some of my scenes, shown below. Yes, this is easy enough to fix in my own code, but this change was introduced without any warning or announcement leaving developers like myself bewildered as to why my scenes are suddenly broken.
Expected behavior
I expect lighting quality to be dependent on the distance from where the camera actually is (as has been the case for years), not a different property that has nothing to do with what’s actually rendered.
Honestly expected.
Focus is where you want everything to render at full details, CFrame is from where you want to see that.
In your case, it will be better to change focus too. While for you it’s a bad thing, I don’t think that it’s a bad change.
To be fair, the documentation for Camera.Focus literally says this is what should be expected. The fact that it ‘presumably’ - because i didn’t actually test it myself - didn’t rely on focus for future looks more like a bug to me than expected behavior.
For voxel, focus prioritizes shadow rendering and quality around it
You should’ve been already changing focus in your camera script and i don’t see a reason why this should be reverted because you weren’t updating a clearly important property that every other camera script updates.
It doesn’t matter one iota what the documentation says. This fundamentally changes a relied upon behavior and is a breaking change for what I’m sure are many games, including my own. In every other instance I can remember where Roblox has changed something like this, there’s been a warning or announcement beforehand to give developers time to adjust.
Roblox’s OWN camera scripts don’t even set the focus correctly – it’s always centered on the player character’s head. Meaning that if a player simply zoomed their camera out far enough, they’d see low detail lighting and materials on everything around them:
There have been many camera focus related issues since last year. I’m not sure what caused it since it was working fine before then. They’re probably batching all these requests together. Hopefully the fix these issues soon…