Shadowmask is a version of the Shadowmask lighting mode shared by all Mixed Lights in a Scene. To set Mixed lighting to Shadowmask:
See documentation on Mixed lighting to learn more about this lighting mode, and see documentation on Light modes to learn more about the other modes available.
A shadow mask is a Texture that shares the same UV layout and resolution with its corresponding lightmap. It stores occlusion information for up to 4 lights per texel, because Textures are limited to up to 4 channels on current GPUs.
Unity precomputes shadows cast from static GameObjects onto other static GameObjects, and stores them in a separate Shadowmask Texture for up to 4 overlapping lights. If more than 4 lights overlap, any additional lights fall back to Baked Lighting. Which of the lights fall back to Baked Lighting is determined by the baking system and stays consistent across bakes, unless one of the lights overlapping is modified. Light Probes also receive the same information for up to 4 lights.
Light overlapping is computed independently of shadow receiving objects. So, an object can get the influence of 10 different mixed lights all from the same Shadowmask/Probe channel, as long as those light bounding volumes don’t overlap at any point in space. If some lights overlap then more channels are used. And, if a light does overlap while all 4 channels have already been assigned, that light will fallback to fully baked.
In Shadowmask mode:
Static GameObjects receive shadows from other static GameObjects via the shadow mask, regardless of the Shadow Distance (menu: Edit > Project Settings > Quality > Shadows). They also receive shadows from dynamic GameObjects, but only those within the Shadow Distance.
Dynamic GameObjects receive shadows from other dynamic GameObjects within the Shadow Distance via shadow maps. They also receive shadows from static GameObjects, via Light Probes. The shadow fidelity depends on the density of Light Probes in the Scene, and the Light Probes mode selected on the Mesh Renderer.
Unity automatically composites overlapping shadows from static and dynamic GameObjects, because shadow masks (which hold static GameObject lighting and shadow information) and shadow maps (which hold dynamic GameObject lighting and shadow information) only encode occlusion information.
A good example of when Shadowmask mode might be useful is if you are building an almost fully static Scene, using specular Materials, soft baked shadows and a dynamic shadow caster, not too close to the camera. Another good example is an open-world Scene with baked shadows up to the horizon, but without dynamic lighting such as a day/night cycle.
The following table shows how static and dynamic GameObjects cast and receive shadows when using Shadowmask mode:
Dynamic receiver A dynamic GameObject that is receiving a shadow from another static or dynamic GameObject |
Static receiver A static GameObject that is receiving a shadow from another static or dynamic GameObject |
|||
---|---|---|---|---|
Within Shadow Distance | Beyond Shadow Distance | Within Shadow Distance | Beyond Shadow Distance | |
Dynamic caster A dynamic GameObject that is casting a shadow |
Shadow map | - | Shadow map | - |
Static caster A static GameObject that is casting a shadow |
Light Probes | Light Probes | Shadowmask | Shadowmask |
The performance requirements of Shadowmask mode make it a good option for building to low and mid-range PCs, and mobile devices. These are the most significant advantages and disadvantages of using Shadowmask mode:
It offers the same visual effect as Realtime Lighting.
It provides real-time shadows from dynamic GameObjects onto static GameObjects.
One Texture operation in the Shader handles all lighting and shadows between static GameObjects.
It automatically composites overlapping shadows from static and dynamic GameObjects.
It has mid-to-low performance requirements, because it does not render static GameObjects into shadow maps.
It provides indirect lighting.
It only provides low-resolution shadows from static GameObjects onto dynamic GameObjects, via Light Probes.
It only allows up to 4 overlapping light volumes (see documentation under the ‘Technical details’ section of Mixed Lighting for more information).
It has increased memory requirements for the light map Texture set.
It has increased memory requirements for the shadow mask Texture.
2017–09–18 Page amended with limited editorial review
Light Modes added in 5.6
Added advice on light overlap computation in Unity 2017.1
Did you find this page useful? Please give it a rating:
Thanks for rating this page!
What kind of problem would you like to report?
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Thanks for letting us know! This page has been marked for review based on your feedback.
If you have time, you can provide more information to help us fix the problem faster.
Provide more information
You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:
You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:
You've told us there is information missing from this page. Please tell us more about what's missing:
You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:
You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:
You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:
You've told us this page has a problem. Please tell us more about what's wrong:
Thanks for helping to make the Unity documentation better!
When you visit any website, it may store or retrieve information on your browser, mostly in the form of cookies. This information might be about you, your preferences or your device and is mostly used to make the site work as you expect it to. The information does not usually directly identify you, but it can give you a more personalized web experience. Because we respect your right to privacy, you can choose not to allow some types of cookies. Click on the different category headings to find out more and change our default settings. However, blocking some types of cookies may impact your experience of the site and the services we are able to offer.
More information
These cookies enable the website to provide enhanced functionality and personalisation. They may be set by us or by third party providers whose services we have added to our pages. If you do not allow these cookies then some or all of these services may not function properly.
These cookies allow us to count visits and traffic sources so we can measure and improve the performance of our site. They help us to know which pages are the most and least popular and see how visitors move around the site. All information these cookies collect is aggregated and therefore anonymous. If you do not allow these cookies we will not know when you have visited our site, and will not be able to monitor its performance.
These cookies may be set through our site by our advertising partners. They may be used by those companies to build a profile of your interests and show you relevant adverts on other sites. They do not store directly personal information, but are based on uniquely identifying your browser and internet device. If you do not allow these cookies, you will experience less targeted advertising. Some 3rd party video providers do not allow video views without targeting cookies. If you are experiencing difficulty viewing a video, you will need to set your cookie preferences for targeting to yes if you wish to view videos from these providers. Unity does not control this.
These cookies are necessary for the website to function and cannot be switched off in our systems. They are usually only set in response to actions made by you which amount to a request for services, such as setting your privacy preferences, logging in or filling in forms. You can set your browser to block or alert you about these cookies, but some parts of the site will not then work. These cookies do not store any personally identifiable information.