Micro Shadows
Micro shadows are shadows that the High Definition Render Pipeline (HDRP) simulates for small details embedded in the Material of a GameObject, but not in its Mesh geometry. HDRP uses the details from the normal map and the ambient occlusion map to estimate the shadows those maps would cast if they were Meshes.
In this image, the different layers of details in the Material shadow each other.
Micro shadows at 0.85 opacity on a mossy ground material viewed from the top.
Using Micro Shadows
HDRP uses the Volume framework to generate Micro Shadows, so to enable and modify Micro Shadow properties, you must add a Micro Shadows override to a Volume in your Scene. To add Micro Shadows to a Volume:
- Select the Volume component in the Scene or Hierarchy to view it in the Inspector
- In the Inspector, navigate to Add Override > Shadowing and click on Micro Shadows. HDRP now processes Micro Shadows for any Camera this Volume affects.
Micro shadowing only works with directional Lights. If you enable micro shadows, make sure you have a directional Light in the Scene.
API
To access and control this override at runtime, use the Volume scripting API. Because of how the Volume system works, you edit properties in a different way to standard Unity components. There are also other nuances to be aware of too, such as each property has an overrideState. This indicates to the Volume system whether to use the property value you set, or use the default value stored in the Volume Profile. For information on how to use the API correctly, see Volume scripting API.
Properties
To edit properties in any Volume component override, enable the checkbox to the left of the property. This also tells HDRP to use the property value you specify for the Volume component rather than the default value. If you disable the checkbox, HDRP ignores the property you set and uses the Volume’s default value for that property instead.
Property | Description |
---|---|
Enable | Enable the checkbox to make HDRP calculate micro shadows when this Volume affects the Camera. |
Opacity | Use the slider to set the opacity of micro shadows for this Volume. |
Details
Micro shadowing gives the impression of extremely detailed lighting that can capture small details. It relies on how you generate your Textures so, to produce better results, consider the following when you author the normal map and ambient occlusion map for a Material:
- Make sure to capture the details of both Textures in a consistent way.
- Always use the same pipeline to produce your normal maps and ambient occlusion maps.
Note that processing micro shadows is more resource intensive than not processing them.
Useful links
- This micro shadowing technique is inspired by this presentation from Naughty Dog : Technical Art of Uncharted 4.
- For an example of how to generate ambient occlusion maps in a consistent way, see this presentation from Sledgehammer : Material Advances in Call of Duty WWII.