FAQ
beginner faqUmbra Soft Shadows · Troubleshooting & FAQ
Is this asset compatible with Unity 6?
Yes. All Kronnect assets are fully compatible with Unity 6. The minimum supported version is Unity 2022.3 LTS, and this includes Unity 6 and any newer releases.
Can I use Umbra Soft Shadows with other render pipelines?
No. Umbra Soft Shadows is designed exclusively for the Universal Render Pipeline (URP). Built-in and HDRP are not supported.
Does it work with dynamic objects?
Yes. Umbra integrates with Unity's real-time directional light shadow system. Soft shadows apply to all objects — static and dynamic — the same way standard Unity shadows do.
Can I customize shadow cascades?
Yes. Umbra respects all URP shadow settings including bias, normal bias, and cascade splits. The Advanced section provides Cascade Scales and Blend Cascades for additional control over cascade transitions.
What performance impact should I expect?
Impact varies with settings. The main cost drivers are Sample Count and Occluders Count (when Contact Hardening is enabled). See Performance Tips for optimization strategies.
Does Umbra generate a global shadow texture I can sample in custom shaders?
Yes. Sample _ScreenSpaceShadowMapTexture in screen-space coordinates. Values range from 0 (fully shadowed) to 1 (fully lit).
Can Umbra cast shadows over a transparent ground/plane?
Yes. Enable Transparent Receiver Plane in the Advanced section and place a plane using the included Transparent Floor material or ShadowReceiverTransparent shader. See the Demo Transparent Receiver scene for an example.
How do I switch shadow quality at runtime?
Use UmbraProfile ScriptableObjects for each quality tier and assign them at runtime via UmbraSoftShadows.instance.profile = yourProfile;. See Scripting Support for full API details.
How does the performance of umbra-soft-shadows compare to Unity URP's built-in soft shadows?
Umbra uses screen-space shadow resolution, which can provide performance improvements in complex scenes with lots of geometry. However, it uses more samples than standard PCF shadows, so it may be slower in simple scenes, though the difference is often barely noticeable on PC depending on settings like sample count and blur iterations.
Does Umbra Soft Shadows replace Unity's shadow rendering entirely, or does the original shadow casting still consume processing time?
The shadow caster pass is still executed, but the shadow resolve is replaced by Umbra's calculation. In regular Unity shadows, the shadowmap can be sampled many times per pixel for soft shadows. With Umbra enabled, shaders only sample once from the screen space shadow texture generated by Umbra, eliminating those multiple samples. Umbra performs its own work instead, but this is generally more efficient. Check the guides for optimization options like loop and frame skipping.
How can I access Umbra's softened shadows in a custom shader that uses a custom lighting function?
Umbra enables the _MAIN_LIGHT_SHADOWS_SCREEN keyword in URP. To access the softened shadows in your custom shader, use the URP shadows API and call MainLightRealtimeShadow(shadowCoord), passing the screen space UV as (uv.x, uv.y, 0, 1) to shadowCoord. This will retrieve the soft shadows from the global _ScreenSpaceShadowmapTexture that Umbra generates.
How can I achieve far distance shadows with contact shadows, using expensive shadows up to 150 units and cheaper shadows beyond that up to 1000 units render distance?
Contact shadows have two operation modes: 'shadow texture' mode renders them into the same shadow texture and they are affected by shadow distance (good for close details), and 'after opaque' mode which limits them to the camera far clip plane (suitable for large distances). Use 'after opaque' mode for far distance shadows to avoid the expense of rendering shadows across the entire 1000 unit distance.
Does Umbra Soft Shadows support multiple directional lights in a scene, such as a sun and moon light that toggle on and off?
Umbra Soft Shadows only supports one directional light instance per scene at this time. When switching between multiple directional lights (like a sun/moon system), the shadows will not render correctly on the newly enabled light without manually toggling the Umbra Soft Shadows component on and off.
How do I fix flickering issues when using Umbra Soft Shadows with The Vegetation Engine's AI Module?
The flickering is likely caused by shaders not properly supporting screen space shadows, which is common with shaders created using Amplify Shaders. Check the FAQ guide at https://kronnect.com/guides/umbra-soft-shadows-faq/ for a workaround. If the issue persists, contact the asset author to report compatibility issues.
How can I create shadows that are hard near the shadow-casting object but become progressively softer at greater distances?
Use the Contact Hardening option set to 0.7 or 0.9, and increase the distance spread parameter. Set blur to 0 for better results. This creates the effect where shadows are strong near the object and soften with distance.
Why are shadows not displaying correctly on certain objects in umbra-soft-shadows?
Objects using incompatible shaders will fall back to regular URP shadows instead of Screen Space Shadows. Verify the object is using a compatible shader (like SimpleLit) and that the required shader keywords are included in your shader variant collection.
Why use static lambdas and avoid capturing variables in Render Graph SetRenderFunc?
There are two main reasons: (1) Capturing variables in lambdas causes GC allocation, and (2) In Render Graph, capturing variables in the SetRenderFunc lambda breaks Render Graph compilation caching, which incurs additional CPU cost each frame. Instead, refer to the PassData passed in as a lambda parameter rather than capturing it from the outer scope.
How do I fix shadow flickering and artifacts when using Unity's Temporal Anti-Aliasing (TAA)?
Go to the Directional Light settings, navigate to Shadows, and increase the Depth Bias value to around 8. This should reduce the flickering caused by TAA interaction with the shadows.
Which shader keywords can be safely disabled to reduce build size when using Umbra soft shadows?
You can disable _SHADOWS_SOFT, _SHADOWS_SOFT_LOW, _SHADOWS_SOFT_MEDIUM, _SHADOWS_SOFT_HIGH, _REFLECTION_PROBE_BOX_PROJECTION, _REFLECTION_PROBE_BLENDING, MAIN_LIGHT_SHADOWS, and MAIN_LIGHT_SHADOWS_CASCADE. However, you must keep _MAIN_LIGHT_SHADOWS_SCREEN enabled when using Umbra, as it is required for the soft shadows to work properly.
How can I fix jagged edges and flickering shadows in Umbra Soft Shadows?
Jagged edges can be reduced by disabling MSAA on the URP asset and using the blur and edge preserve options in Umbra settings. Flickering shadows at edges while moving the camera can be caused by the Frame Skip Optimization setting - disable it if you experience this issue.
Why does Umbra Soft Shadows produce jagged shadow edges when MSAA is enabled?
Umbra works in screen space by resolving world space pixel positions from depth. MSAA samples multiple positions around pixel centers, and some of those positions may or may not match the sampling depth. This causes some samples to be under shadows while others are not, resulting in jagged shadow differences along edges. Using blur and edge preserve options can help mitigate this, though it may not be perfect.
I have a question not covered here
Please visit the Support Center and use our AI Support Assistant to get answers. If the issue persists, submit a reproduction project so we can investigate further and help you.
Suggest an improvement
Help us improve this documentation page.