Version: 2021.1
Lighting Mode: Baked Indirect
Lighting Mode: Subtractive

Lighting Mode: Shadowmask

This page describes the behavior of all Mixed LightsLight components whose Mode property is set to Mixed. Some calculations for Mixed Lights are performed in advance, and some calculations for Mixed Lights are performed at runtime. The behavior of all Mixed Lights in a Scene is determined by the Scene’s Lighting Mode. More info
See in Glossary
in a SceneA Scene contains the environments and menus of your game. Think of each unique Scene file as a unique level. In each Scene, you place your environments, obstacles, and decorations, essentially designing and building your game in pieces. More info
See in Glossary
, when that Scene uses a Lighting Settings Asset with its Lighting Mode property set to Shadowmask.

Similar to Baked Indirect Lighting Mode, Shadowmask Lighting Mode combines real-time direct lighting with baked indirect lighting. However, Shadowmask Lighting Mode differs from Baked Indirect Lighting Mode in the way that it renders shadows. Shadowmask Lighting Mode allows Unity to combine baked and real-time shadows at runtime, and to render shadows in the far distance. It does this by using an additional lightmapA pre-rendered texture that contains the effects of light sources on static objects in the scene. Lightmaps are overlaid on top of scene geometry to create the effect of lighting. More info
See in Glossary
Texture known as a shadow mask, and by storing additional information in Light ProbesLight probes store information about how light passes through space in your scene. A collection of light probes arranged within a given space can improve lighting on moving objects and static LOD scenery within that space. More info
See in Glossary
.

Shadowmask Lighting Mode provides the highest fidelity shadows among all the Lighting Modes, but has the highest performance cost and memory requirements. It is suitable for rendering realistic scenes where distant GameObjectsThe fundamental object in Unity scenes, which can represent characters, props, scenery, cameras, waypoints, and more. A GameObject’s functionality is defined by the Components attached to it. More info
See in Glossary
are visible, such as open worlds, on high-end or mid-range hardware.

Render pipeline support

  • The Built-in Render PipelineA series of operations that take the contents of a Scene, and displays them on a screen. Unity lets you choose from pre-built render pipelines, or write your own. More info
    See in Glossary
    supports Shadowmask Lighting Mode. In the Built-in Render Pipeline, on platforms that support only four render targets (such as many mobile GPUs), Shadowmask Lighting Mode forces Unity to use forward renderingA rendering path that renders each object in one or more passes, depending on lights that affect the object. Lights themselves are also treated differently by Forward Rendering, depending on their settings and intensity. More info
    See in Glossary
    .
  • The Universal Render Pipeline (URP) does not support Shadowmask Lighting Mode.
  • The High Definition Render Pipeline (HDRP) supports Shadowmask Lighting Mode, and offers additional functionality on a per-Light basis. For information on these additional options, see HDRP Shadowmask Lighting Mode.

Shadowmask quality settings

Shadowmask Lighting Mode has these quality settings:

  • Distance Shadowmask provides greater fidelity shadows at a higher performance cost.
  • Shadowmask provides lower fidelity shadows at a lower performance cost.

Mixed Light behavior

With the Distance Shadowmask quality setting

When you set a Scene’s Lighting Mode to Shadowmask and your Project uses the Distance Shadowmask quality setting, Mixed Lights behave as follows.

  • Dynamic GameObjects lit by Mixed Lights receive:
    • Real-time direct lighting.
    • Baked indirect lighting, using Light Probes.
    • Real-time shadows from dynamic GameObjects, using the shadow map, up to the Shadow Distance.
    • Real-time shadows from static GameObjects, using the shadow map, up to the Shadow Distance.
    • Baked shadows from static GameObjects using Light Probes, beyond the Shadow Distance.
  • Static GameObjects lit by Mixed Lights receive:
    • Real-time direct lighting.
    • Baked indirect lighting, using lightmaps.
    • Real-time shadows from dynamic GameObjects, using the shadow map, up to the Shadow Distance.
    • Real-time shadows from static GameObjects, using the shadow map, up to the Shadow Distance.
    • Baked shadows from static GameObjects, using the shadow mask, beyond the Shadow Distance.

With the Shadowmask quality setting

When you set a Scene’s Lighting Mode to Shadowmask and your Project uses the Shadowmask quality setting, Mixed Lights behave as follows.

  • Dynamic GameObjects lit by Mixed Lights receive:
    • Real-time direct lighting.
    • Baked indirect lighting, using Light Probes.
    • Real-time shadows from dynamic GameObjects, using the shadow map, up to the Shadow Distance.
    • Baked shadows from static GameObjects using Light Probes, up to and beyond the Shadow Distance.
  • Static GameObjects lit by Mixed Lights receive:
    • Real-time direct lighting.
    • Baked indirect lighting, using lightmaps.
    • Real-time shadows from dynamic GameObjects, using the shadow map, up to the Shadow Distance.
    • Baked shadows from static GameObjects, using the shadow mask, up to and beyond the Shadow Distance.

Setting your Scene’s Lighting Mode to Shadowmask

In the Built-in Render Pipeline:

  1. Select the Lighting Settings Asset for the Scene.
  2. In the InspectorA Unity window that displays information about the currently selected GameObject, asset or project settings, allowing you to inspect and edit the values. More info
    See in Glossary
    , navigate to Mixed Lighting.
  3. Use the drop-down menu to set the Lighting Mode to Shadowmask
  4. Open the Quality Settings (menu: Edit > Project Settings, then select the Quality category).
  5. Use the Shadowmask Mode drop-down menu to select either Shadowmask or Shadowmask Distance.

In HDRP:

Follow the instructions in the HDRP Shadowmask Lighting Mode documentation.

Shadows and runtime performance

You can use the Shadow Distance property to limit the distance up to which Unity draws real-time shadows.

Shadowmask implementation details

At runtime, Unity uses the shadow mask to determine whether a pixelThe smallest unit in a computer image. Pixel size depends on your screen resolution. Pixel lighting is calculated at every screen pixel. More info
See in Glossary
is in shadow or not. The shadow mask Texture contains occlusion information about baked lightsLight components whose Mode property is set to Baked. Unity pre-calculates the illumination from Baked Lights before runtime, and does not include them in any runtime lighting calculations. More info
See in Glossary
. It shares the same UV layout and resolution with its corresponding lightmap. It contains occlusion information for up to four lights per texel, stored in RGBA format.

If more than four lights overlap, any additional lights fall back to Baked Lighting. The baking system determines which lights fall back to Baked Lighting, and this stays consistent across bakes, unless you modify one of the overlapping lights. Light Probes also receive the same information for up to four lights.

Unity computes light overlapping independently of shadow receiving objects. So, an object can get the influence of ten different mixed lights all from the same Shadowmask/Probe channel, as long as those light bounding volumesA closed shape representing the edges and faces of a collider or trigger. More info
See in Glossary
don’t overlap at any point in space. If some lights overlap then Unity uses more channels. And, if a light does overlap while all four channels are already in use, that light falls back to fully baked.

Lighting Mode: Baked Indirect
Lighting Mode: Subtractive