Skip to main content

PCSS and object shadows

Features > Shadows contains three groups described here: PCSS, Movable Object Shadows, and Native Preshadows (Fallback). These are project controls and update live. They do not change the sampling density of baked static shadow data.

PCSS​

PCSS, or Percentage-Closer Soft Shadows, estimates the distance between shadow-casting geometry and a receiving surface through a blocker search. It uses that estimate to vary the filtering radius: a narrow edge near contact becomes a broader penumbra as separation grows. More samples can reduce noise, but cannot recover detail absent from the source shadow map.

These controls operate on eligible conventional directional shadow paths, not Virtual Shadow Maps. Desktop DirectX 11 and DirectX 12 require SM5 or higher; desktop Vulkan requires SM6. Use deferred shading. The baked branch also inherits Spectral's non-stereo restriction. See the platform tables for forward, mobile, and VR limitations.

Enabled​

Default: disabled.

Enables PCSS. The remaining PCSS controls are editable while it is enabled. Disabling it removes this filtering choice, not the light itself.

From Static​

Default: enabled.

Applies PCSS to shadows cast by static geometry, including baked shadows and native static-to-movable preshadows. Turn it off to retain the cheaper filtering for those paths while optionally using PCSS for movable objects.

“Static” describes the source geometry, not simply a light's mobility.

From Movable​

Default: enabled.

Applies PCSS to shadows cast by movable objects. Disabling it uses Unreal's regular shadow filtering for those objects. It does not disable their shadows.

Quality​

Default: Balanced.

Sets blocker-search samples and final filtering samples. Searching estimates how far the shadow caster is from the receiver; filtering uses that information to form the soft edge.

ChoiceBlocker searchFilter samples
Performance816
Balanced1632
High2448
Cinematic3264

More samples can reduce visible sampling noise, with higher GPU cost. Quality is separate from shadow-map resolution.

Temporal Blue Noise​

Default: enabled.

Varies sample placement each frame so TAA or TSR can smooth the result over time. Check both stationary views and motion. Without suitable temporal accumulation, the changing sample pattern can be more visible.

Softness Scale​

Default: 1. Range: 0.1 to 10.

Multiplies softness relative to the light's source angle. Larger values broaden the soft region; smaller values keep it tighter. It cannot exceed the effective filtering limit indefinitely, so check Maximum Penumbra if further increases stop changing the result.

Maximum Penumbra (shadow texels)​

Default: 32. Accepted range: 4 to 128; slider range: 8 to 64.

Caps the soft-shadow radius in the highest-resolution shadow-map texels. A penumbra is the partially lit region at a soft shadow edge.

Increasing the cap permits wider filtering but does not force every shadow to have that width. Source angle, separation, and Softness Scale still determine the requested softness.

Minimum Filter Radius (px)​

Default: 1. Accepted range: 0.5 to 3; slider up to 2.

Minimum filtering footprint at contact edges. Raise it to soften harsh contact sampling. Lower it for a tighter contact. A large minimum can blur contacts even when physical separation would otherwise produce a hard edge.

Movable Object Shadows​

These controls expose native shadow values. Their initial displayed values depend on the project's current renderer/scalability configuration; the property initializers are not universal defaults.

Object Shadow Texels Per Pixel​

Range: 0.1 to 8.

Requested shadow-map density relative to the object's projected screen size. Higher values request more detail and increase cost until limited by the maximum resolution.

It does not set a fixed resolution for every object.

Maximum Object Shadow Resolution​

Range: 32 to 8192.

Caps requested shadow-map resolution. Raising density has little effect once this cap is reached. This native setting also affects conventional local-light shadows, so check more than the selected character when changing it.

Object Shadow Fade Start (px)​

Range: 3 to 1024.

Projected shadow resolution below which fading starts. Higher values cause small-on-screen shadows to fade sooner. This is measured in pixels, not meters; object size and camera field of view affect the apparent distance.

Object Shadow Fade End (px)​

Range: 1 to 1022.

Projected resolution below which the shadow disappears. It must remain at least two pixels below Fade Start. The editor maintains that separation when these settings change.

Lowering the end allows smaller shadows to remain visible, which may increase work for distant objects.

Native Preshadows (Fallback)​

Preshadows are Unreal's fallback static-to-movable shadow maps. Valid Spectral baked-shadow coverage bypasses this path. These controls therefore may have no visible effect on a receiver already using Spectral's data.

Preshadow Resolution Scale​

Spectral default: 1. Range: 0.5 to 1.

Scales native preshadow resolution. A lower value reduces cost and detail. Spectral's default favors full resolution, including for small masked details. It does not change Spectral's baked-shadow spacing.

Preshadow Fade Start (px)​

Range: 3 to 1024. Current value comes from the native setting.

Projected size below which native preshadows begin fading. Raising it fades the fallback sooner, not Spectral's baked coverage.

Preshadow Fade End (px)​

Range: 1 to 1022. Current value comes from the native setting.

Projected size below which native preshadows disappear. It must stay at least two pixels below their Fade Start.

Identify the active shadow pathTip

Before raising a value, check whether you are looking at Spectral baked shadows, movable-object shadows, or native fallback preshadows. Their resolution and fade controls are not interchangeable.