Download

Dynamic Sky & lighting strategy

I understand the difference between Dynamic and static lighting and their impact on resource use.
I use Dynamic Sky (dynamic environmental lighting), how important are light builds if a dynamic light environment is set for the entire level? Whats the best strategy for forest of dense foliage when it comes to a Dynamic lighting environment? Should I make some foliage static lighting? Aside from realistic aesthetics would that have a positive or negative impact on resource usage?
if you don’t mind sharing, How do you plan this out when considering your level?

You’ll definitely want to look into RayTraced Distance Field Shadows as they really increase the performance compared to cascade shadows. Fortnite uses a combination of cascade shadows and raytrace shadows as does my game. They use 2 cascades at a 4500 distance, and let raytrace handle the distance to give the shadows closer to the player crisper shadows and low quality shadows from afar. When working with Distance Fields, you’ll also want to take into account your mesh’s individual cost of it. In your static mesh editor, you’ll find a setting that has to do with Distance Field quality. Reducing it will help with performance a bit. Turning shadows off grass if possible as well.

When dealing with shadows at vast distances, you’ll also have to look into reducing overdraw for your foliage as much as possible. When working with consoles, I’ve found you should increase your vertex and poly count to closely cut around billboard foliage to reduce the overdraw. Don’t go overboard of course. You’ll then want to make sure your grass/tree leaves are masked as much as possible. There are of course more ways to reduce the overdraw and shader complexity and but don’t want to sit down for 30 minutes explaining them all. Trial and error for 5 months has is hard to sum up.

You should also introduce material LODs to reduce shader complexity at distances and even turn it into opaque. Ever bit counts when working with fully dynamic lighting.

If you only use dynamic lighting (all lights set to movable), and are not going to add any static/stationary lights, you do not ever need to build the lighting once you turn on a setting. Even without this setting change building the lighting shouldn’t make any difference.

Click on the Settings toolbar button and then World Settings, which will open up a new details style panel. Scroll down to the bottom of the Lightmass section and click the little down arrow to expand the advanced settings, then check the “Force no precomputed lighting”. Follow what it says in the pop up a box and build the lighting one final time.

From now on if you try to build the lighting it should show a box saying it failed, which you can just ignore.

Light builds would have no impact if you choose to be completely dynamic. In fact, if you plan on never using baked lighting for the project, you can disable static lighting in the project settings. This will reduce overhead for samplers for static lighting, as well as give you material AO back for dynamic lighting.

It’s better to profile your scene as you go to understand where your bottlenecks are. We could give you some performance tips, but they might not be needed. For example, you could negate most alpha-tested overdraw in the base pass by computing it in the depth, but that’s a full prepass and might not be worth it. Same for reducing shadow view distances, resolution, and number of shadow casting objects - might not be needed until you get your scene fully set up with a decent idea on mesh complexity and view distance. If you have programmer support, you can also add in the ability to cast shadows from custom meshes or LODs, to reduce triangle cost for shadow depths.

Thank you to all of you who have responded to my RFI. I should have clarified that I use the Ultra Dynamic Sky purchased from the marketplace. I was, and less so now, unsure of how a pack like this which looms over the entire environment would impact everything else. I didn’t want to create a resource drain on the system as we still have much to put into the world we’re making. The “sun” will be dynamic as it moves across the sky but there will be static lighting on many placed objects, minus the trees and grass obviously. Seems a pretty slippery slope.

if you have objects with baked static lighting and everything else dynamic, it will severely break immersion, those baked objects will never update lighting info. imagine its night time and some of your objects are lit as if it were noon