Hi Epic guys,
Congrats on 4.9 release - looks very promising, great job!
I have a question, I could not find an answer to anywhere. It’s about lights fade out distance in Unreal 4. I’ve created two test scenes in both CryEngine and Unreal4 for easier demonstration of what I mean:
Both scenes contain 2km long base with some vertical brushes spaced at 0km, 1km and 2km. The lights at the base have very large radius, lights on top are just 20% of that in both engines. UE4 lights are movable and have Inverse Falloff disabled to exclude attenuation due to intensity. All lights are non-shadowcasters.
The issue should be pretty clear - why Unreal lights fade out so soon compared to CryEngine’s? I’ve tried even much smaller radius/intensity combinations in CE, yet they hold even at 2km (and further if needed). In CE there’s a simple ViewDistanceRatio property and once that’s set to max, light will display at whatever distance (until it becomes smaller than pixel, of course :))
So, am I understanding this wrong, or Unreal decides for user when to fade the lights out and there’s no way to overcome that? I know that usually lights are not meant to be drawn that far, but there are cases when it’s essential (think big cityscape, of some castle in the distance).
Would appreciate any input on the issue (maybe there are some cvars that can be tweaked?).
P.S. I am running UE4 on all Epic settings.
This can be done in the Project Settings > Rendering section.
Look in the Culling properties tab under Min Screen Radius for Lights. The default is 0.03, but you can try lower values to get the results you desire.
There are a lot of things tucked away in the Project Settings and Editor Preferences.
I hope this helps.
Thanks for your answer. It was one of the first things I’ve tried. I’ve set it to 0.000001 and it bumped the fade distance a little bit, but after 1km it fades anyway. I’ve also noticed that small (well, 10mx10m small) object will also pop out of existence over 1km, even if their screensize is set to some ridiculously high values. There seems to be some global setting overriding those local ones, but I cannot find it
Would there be now a solution to this? Im trying to achieve that the intensity of a point light is the same to the player regardless of its distance to the player. So it should also be visible at great distances, but I havent found a solution to this yet
I would like to know this as well.
Is there any sort of answer to this? Nobody seems to respond to the last two replies asking for further clarification. Thanks,
The answer is really still the same as it was with an addendum. You can lower the value really lower, but at a certain point when that light isn’t greatly affecting any number of pixels or barely a single pixel, it will disappear. If you have a lot of lights in your scene, it’s not good for performance, especially if the light is shadow casting.
So a couple of things you can do.
- You can reduce the min screen radius down to 0 and the lights never cull. Not recommended!
- Fake it to make it. Set up a Blueprint and at a distance that it really doesn’t make any difference if the light is really lighting the scene, swap it out with a place that is camera facing with a material that simulates your light. GTAV is a good example of this. You can visibly see when they remove their lights and replace them a material-like approximation for distance effect.
There are likely some other avenues you could pursue I’d find a way to make a distance light swap to a mesh with a material and make that look good and consistent with my scene.
That’s a good suggestion, thank you for that.
I had same problem!
my particle in unlimit far away distance , so light can’t effect it!
my scene is far cloud sky , i need a storm in that , but light is not work in distance!
at min 6:23 he starts talking about levels and distance. as well as rendering
The problem with volumetric fog.
- Go to ExponentialHeightFog - > View Distance and increase the parameter (~ 60 000)
- Then go to Project Settings - > Rendering section and set Min Screen Radius for Lights 0.01
it works for me THANKS! especially the Render Settings on the Min Screen Radius parameter!!!
Just wanted to add this for anyone getting here via Google;
If you want to adjust the distance at which a light is visible, you can do so in the light properties under the Performance section. Specifying a Max Draw Distance will cull the light when you’re X distance away. This is really helpful for managing performance with dynamic lights and is disabled by default (set to 0). Setting it to anything above 0 will enable it, and you can adjust the setting in the viewport which is a really great way to make sure your lights don’t blink out when you can still see them.
Sadly, there doesn’t seem to be a way to set a max draw distance for all lights automatically so you have to set it manually on every light. You can select all lights at once and adjust though, so it’s something that can be done as a last step once your level is complete.