Unreal Engine Project Settings allow a major reduction (up to 50%) of shader permutations affecting shader compile times, package size, and load times. You can find the options under the Engine > Rendering > Shader Permutation Reduction Category. Which settings you can disable will depend on your project’s rendering requirements.

Project Settings

  • Stationary Skylight Stationary skylight requires permutations of the basepass shaders. You can disable this when never using a Stationary Skylight as the name implies.
  • Low-Quality Lightmap shader permutations The mobile renderer requires low-quality lightmaps, disabling this setting is not recommended for mobile titles using static lighting.”
  • PointLight WholeSceneShadows requires many vertex and geometry shader permutations for cubemap rendering.
  • Atmospheric Fog requires permutations of the basepass shaders. You can disable this if you don’t use the AtmosphericFog Actor which simulates atmospheric light scattering.
  • Sky Atmosphere requires extra samplers/textures to be bound to apply aerial perspective on transparent surfaces (and all surfaces on mobile via per-vertex evaluation).
  • Sky Atmosphere Affecting Height Fog The sky atmosphere component can light up the height fog but it requires extra samplers/textures to be bound to apply aerial perspective on transparent surfaces (and all surfaces on mobile via per-vertex evaluation). It requires SupportSkyAtmosphere to be true.”

When your project is missing required shader permutations by the level it will tell you about it in the Viewport right next to the “Lighting needs to be rebuilt” message. This can be helpful to quickly realize that a level has changed such as a SkyAtmosphere actor being added later on and now requiring those permutations to be re-enabled.

These options are enabled by default, especially stylized games that don’t rely on PBR/realistic lighting may benefit. But many if not most projects may find that they can delete certain settings such as LowQualityLightmaps which are targeting the Mobile renderer (HoloLens and certain other VR games might use the Mobile renderer as well).

Changing any of these settings requires all shaders to be recompiled. This may take a long time depending on your project size. For teams using a shared Derived Data Cache I’d recommend looking into the -fill command line option to have the shaders back in the DDC more easily (without having to load each level).

Another side effect by turning off these settings is reduced package size and load times. Reducing shader permutations will reduce the total size of your materials once cooked.