Performance Tips
intermediate performanceUmbra Soft Shadows · Troubleshooting & FAQ
Umbra Soft Shadows is optimized for production use. The main performance drivers are Sample Count and Occluders Count (when Contact Hardening is enabled). Follow these guidelines to balance quality and performance.
Built-in Optimization Options
| Option | Effect | Trade-off |
|---|---|---|
| Loop Optimization | Halves actual texture samples without reducing coverage area | Minimal visual difference at moderate sample counts |
| Frame Skip Optimization | Resolves shadows every other frame, reusing previous results | May cause shadow lag during fast camera rotation |
| Downsample | Resolves at half screen resolution | Softer result; good for mobile and VR |
Additional Tips
- Disable Contact Hardening when not needed — it requires extra occluder samples and is the most expensive feature.
- Normals Source: Reconstruct From Depth is the fastest option in Forward rendering (ignored in Deferred where normals come from G-buffers).
- Reduce shadow distance and cascade count in the URP asset to lower overall shadow cost.
- Keep Sample Count and Occluders Count as low as possible while maintaining acceptable visual quality.
- Reduce Blur Iterations — each additional pass adds a render-target resolve.
Using Profiles for Quality Tiers
Create multiple UmbraProfile assets with different settings for each quality tier (Low, Medium, High). Swap them at runtime from a settings menu:
using Umbra;
// Switch to a mobile-optimized profile
UmbraSoftShadows.instance.profile = mobileProfile;
You can also toggle Umbra entirely by enabling/disabling the component on the Directional Light.
Was this page helpful?
Suggest an improvement
Help us improve this documentation page.