The issue occurs when the camera is very far away from the focus point, even if the focus point is narrowed in with the field-of-view and the camera’s Focus property is set. When the camera is far away, things such as ParticleEmitters and shadows stop rendering.
See the attached place file and video example for a reproduction. Run the game in “Run” mode (F8; without a player spawning). Select the main Camera in the workspace. Click the “Toggle” attribute checkbox to toggle between default view and a very zoomed out view.
As such, the Focus property of the camera should be respected and the culling distance for items such as shadows should be based upon this property.
The culling of items such as shadows seems to be based on the camera’s position rather than its focus point. See video above. This makes it impossible to achieve good fidelity lighting and effects when using a narrow field-of-view from far away.
There is no workaround.
Issue Area: Engine Issue Type: Display Impact: High Frequency: Constantly
Unfortunately, it is currently expected behaviour on the lighting side that shadows don’t render at a certain distance from the camera. Shadows prioritize distance from the focus point, but there is a hard cut-off from how far they can be before they don’t render altogether.
I expect similar things from particle emitters. I do agree this makes low FOV from far away harder to use.
I’m confused why this isn’t all prioritized based on Focus? Semantically, I feel like Focus communicates what the developer wants things to be based around, rather than position of the camera. Lighting, shadows, etc., should all be based on Focus position, not camera position IMO.
This is a huge issue for me because I currently use extremely low FOV + far distances to simulate orthographic rendering. This results in my shadows disappearing despite focus being set at the target objects.
In a more common scenario, a developer may create a scoping effect for their sniper rifles, setting the camera FOV low and the focus far away from the camera to create proper visibility. However, this would result in shadows and particles being not rendered, which is distracting and can also have gameplay consequences (i.e: a competitive shooter where the enemy team has placed down a smoke grenade to hide behind, but a scoping rifle cannot see the smoke from far away, creating an unfair advantage)
I know this is technically intended engine behavior, but this is really unacceptable in terms of gameplay. Please look into any ways of resolving this!