In brief
- Virtual Shadow Maps are the default shadow method in new Unreal Engine projects.
- VSMs divide a virtual resolution of 16K × 16K into 128 × 128-pixel pages, processing only the areas needed.
- At Epic shadow quality, the default Shadow Map Ray Tracing ray count is 8 for local and directional lights.
- Unbuilt shadows from Static and Stationary lights are previews; build lighting to see the final result.
Unreal Engine 5’s Virtual Shadow Maps (VSM) system is designed to produce detailed shadows in projects using Nanite geometry. Choosing the right method for architectural visualization scenes means balancing light mobility, shadow softness, and performance costs. Based on Epic Games’ official documentation, this guide covers the essential setup and checks for Unreal Engine 5.
1. Choose a shadow method and set light mobility
In the project settings, open the
Direct Lightingsection underEngine > Rendering. TheShadow Map Methodsetting determines whether the project uses Virtual Shadow Maps or traditional Shadow Maps. VSM is the default method in new projects. In projects created before Unreal Engine 5.0, enable VSM in the project settings or with ther.Shadow.Virtual.Enableconsole variable.Check whether the scene uses Nanite. VSMs are designed to work with Nanite; they may not be suitable for a target platform or project that does not use Nanite. Traditional shadow maps are not supported with Stationary lights in projects that use Nanite, so use Movable Lights or VSM instead.
Set each light’s
Mobilityaccording to the scene’s needs. Static lights have their lighting precomputed into lightmaps. With VSM enabled, the direct lighting and shadows from Stationary lights are calculated dynamically, while indirect lighting from lightmaps, if present, is preserved. Movable lights are used to produce dynamic shadows. You can set each light’s mobility individually.
This distinction makes it easier to decide which lighting in an interior scene should be precomputed and which should change during editing or gameplay. Don’t choose a light type based on shadow appearance alone; also consider the need for real-time calculations.
2. Control soft shadows through the light source
Check the properties that determine the light source’s size.
Source Radiusaffects shadow softness for local lights, whileSource Angledoes so for directional lights. Increasing the source angle, radius, height, or width softens the shadows cast by objects affected by the light. The default source radius for local lights is zero; directional lights start with a small angle.Shadow Map Ray Tracing (SMRT), used with VSM, helps shadows appear softer farther from the occluder and produces contact hardening. When adjusting settings, first consider the size of the light source, then evaluate quality and performance options. The values below are defaults or recommended ranges from the official documentation; they are not a single ideal setting for every scene.
| Setting | Recommended value | Effect |
|---|---|---|
| SMRT ray count for local and directional lights | Default 8 at Epic shadow quality | Reducing the ray count can produce visible noise in the penumbra. |
| Samples per ray for local lights | 4–8 range | Fewer samples cost less but limit the achievable penumbra softness. |
| Samples per ray for directional lights | 4–8 range | The sample count affects the balance between soft shadow quality and computational cost. |
| Variable controlling the SMRT ray count | When the relevant value is 0 | SMRT is disabled, reverting to a hard shadow with a single sample. |
The variables are r.Shadow.Virtual.SMRT.RayCountLocal and r.Shadow.Virtual.SMRT.SamplesPerRayLocal for local lights, and r.Shadow.Virtual.SMRT.RayCountDirectional and r.Shadow.Virtual.SMRT.SamplesPerRayDirectional for directional lights. The documentation notes that a sample count in the 4–8 range gives good results. Fewer rays or samples can reduce performance costs, but may cause noise in the penumbra or insufficient softness.
3. Consider resolution, scene scale, and performance together
Think of VSM resolution as a page system rather than a single large map. The system divides a virtual resolution of 16K × 16K into 128 × 128-pixel pages, processing only the pages needed to shadow on-screen pixels. Caching pages that can be reused from previous frames helps performance. Moving objects or changes to lights can invalidate the relevant pages.
For directional lights, the clipmap structure preserves high resolution near the camera while covering more distant areas. Each clipmap level has the same resolution, and each successive level covers twice the radius of the previous one. By default, virtual page tables are allocated for levels 6–22. You can change these level limits with the
r.Shadow.Virtual.Clipmap.FirstLevelandr.Shadow.Virtual.Clipmap.LastLevelvariables, but first observe the scene’s shadow requirements before changing them.Keep in mind that large local lights can approach resolution limits. Spot lights use a single 16K VSM with a mip chain, while Point lights use a cube map with a 16K VSM on each face. The documentation recommends considering directional lights for large local lights of this kind, where possible. On the other hand, in scenes with dense non-Nanite foliage, for example, Distance Field Shadows can help reduce costs for directional lights in areas beyond the dynamic shadow distance of Movable lights.
VSM’s high resolution doesn’t mean every quality setting is free. Test shadow scale, light sizes, and scene coverage together. According to the documentation, reducing resolution bias can increase shadow resolution, but may also incur a performance cost. So instead of applying higher resolution across the entire scene, first check where that level of detail is actually needed from the camera and light positions.
4. Architectural visualization workflows and common mistakes
For softer shadows in interior renders, the first thing to check is the light source size—not whether to add Contact Shadows in every case. Because of VSM’s resolution and accuracy, Contact Shadows are generally not needed to achieve sharp contact shadows and may be less accurate than VSM shadows. However, they can be useful for adding cheaper shadow contribution from objects that are not rendered into shadow maps.
When editing Static or Stationary lights, shadows shown in the Level Editor are previews if lighting has not been built; don’t assume they match the final result. To verify the results, start a lighting build by selecting Build > Build All Levels from the main menu. Build times can vary depending on hardware, scene complexity, and other factors.
Common mistakes:
Choosing an unsupported traditional Stationary shadow method in a project using Nanite.
Increasing the source radius or angle without checking penumbra noise and the performance impact.
Mistaking preview shadows from unbuilt Static or Stationary lights for the final image.
Assuming VSM is automatically suitable for every project that does not use Nanite.
For architecture, interior design, and archviz teams, a key benefit of VSM is the ability to use highly detailed shadows with less manual adjustment, especially in scenes using Nanite. In return, the target platform, light mobility, Nanite usage, and quality scale should all be considered together. For teams working across multiple computers, clearly specifying the chosen method in the project settings—and checking the built result as the final step for scenes that require a lighting build—makes the workflow more predictable.
Sources
2 sourcesSource texts are not republished; short quotes are marked, everything else is our own summary and commentary.
For architecture and visualization offices in Turkey, the practical value of VSM lies particularly in its ability to deliver detailed shadows with less manual adjustment in scenes using Nanite. But that doesn’t mean the same method is right for every project: real-time requirements, Nanite usage, and light mobility should guide the initial decision. Even in a small interior scene, it’s important to test quality settings against the scene.
Teams should measure performance and image quality together when adjusting SMRT ray and sample counts, and shouldn’t treat a preview as the final result in scenes that require a lighting build. The official documentation does not provide licensing or pricing information, so no conclusions can be drawn about purchase costs. Lightmass build times also depend on hardware and scene complexity, making testing essential for hardware planning.
Frequently asked questions
How do you enable Virtual Shadow Maps in Unreal Engine 5?
Select `Shadow Map Method` in the `Direct Lighting` section under `Engine > Rendering` in the project settings. VSM may need to be enabled separately in projects created before Unreal Engine 5.0.
Is Nanite required for VSM?
VSMs are designed to be used with Nanite. They may not be suitable for projects or target platforms that do not use Nanite.
How do you adjust soft shadows in Unreal Engine?
`Source Radius` for local lights and `Source Angle` for directional lights affect shadow softness. The SMRT quality settings also let you adjust the ray count and samples per ray.



