How to optimize performance when using multiple dynamic lights in a UE5 scene?

Hi everyone,
I’m currently working on a game scene using Unreal Engine 5 that includes several dynamic light sources to create real-time lighting effects. However, I’m experiencing significant performance drops, especially on mid-range hardware.

I’ve tried enabling Lumen and tweaking some Post Process settings, but the improvements have been minimal.
I’d like to ask:

  1. Is there a recommended way to optimize dynamic lighting without switching to baked/static lights?
  2. Should I limit the number of dynamic lights visible at once within the camera view?
  3. Are there any specific settings, techniques, or best practices I should follow to improve performance?

Any advice or suggestions would be greatly appreciated. Thanks in advance!

Hi @molaixvx, let me see if I can help you out with some tips and tricks.

First of all, I would pay attention to your shadows, as in reality this is where a lot of the “light” costs come from. Make sure you turn off Virtual Shadow Maps if you are not using Nanite, as this can eat performance on non-Nanite meshes. Another shadow optimization that can really help performance is turning of “Cast Shadows” on as many lights and objects as possible. Many small objects or objects up against walls can have their shadows removed with little to no quality loss.

Another great optimization is to set a Max Draw Distance on your light components. This will turn off your lights at a specified distance from the camera, which as you can imagine can really help improve performance. You can set a fade in distance too, so the on/off switch isn’t as noticeable.

Also, make sure your attenuation radiuses on your lights are as small as possible. You can turn off “Use Inverse Squared Falloff” and set your Light Exponent around 4-5 to stretch your lighting further within an attenuation radius while still keeping a realistic look. Along with this, try to keep your lighting from overlapping as much as possible. You can use the Light Complexity view mode to see how complex your overlapping lights are- in general as long as you’re avoiding a lot of purple/white areas, you’re pretty good.

On that note too, make sure you are not using rect lights. Rect lights are not really a separate light type, and more of an array of point lights, making them extremely costly. If you are going to use rect lights, I would HIGHLY recommend turning Cast Shadows off on the light.

If your scene has a lot of interiors and you’re using lots of lights to create a base illumination, Lumen has a feature in the postprocess settings called “Skylight Leaking”. Turning this up will add more ambient light from the Global Illumination into your interiors without an added cost.

Now, if you’ve done all of these optimizations and you’re still struggling to meet performance goals due specifically to lighting, you can adjust your Lumen settings. Lumen by default does a really good job of balancing performance and quality, but you can adjust these settings depending on your needs. I would highly reccommend settings these overrides on a per-platform basis. Since these settings are directly associated with overall quality, I would only set these settings to override on your low-to-mid end hardware. Keep in mind that by default, the Low and Medium scalability settings turn off Lumen for performance. This documentation page provides a great reference for optimizing Lumen by breaking down each setting and their default values. This page breaks down Lumens postprocess settings, which you can also adjust to help performance.

Good luck! Let me know if you have any other questions.

1 Like

Just to point out that this scenario is what Megalights is aiming to trivialize. Not suggesting it as a solution today, but a friendly reminder.

Otherwise I might suggest looking to into light-function atlases (astlasii?): Using Light Functions in Unreal Engine | Unreal Engine 5.5 Documentation | Epic Developer Community

Using multiple dynamic lights can quickly become a performance bottleneck — especially in complex scenes or open worlds. Here’s how to optimize dynamic lighting performance effectively:


1. Use Stationary or Static Lights When Possible

Even though dynamic (movable) lights are flexible, they are expensive.

  • Static Lights – Baked only, best performance
  • Stationary Lights – Mixed: baked indirect lighting, dynamic direct lighting (limited number supported)
  • Movable Lights – Fully dynamic, most expensive

Prefer Stationary lights over Movable for static geometry when possible. You get dynamic shadows + performance boost.


2. Minimize Shadow-Casting Dynamic Lights

Shadows are expensive.

Optimization Tips:

  • Set “Cast Shadows” = false for lights that don’t need it.
  • Use distance fade or culling to disable shadows at long distances.
  • For smaller lights (lamps, fireflies), disable shadows or fake them with decals or static AO.