URP Shadows Not Showing or Blurry in Unity 6? Fix Shadow Settings

Illustration: a lit 3D pillar casting a crisp glowing-edged shadow on a floor grid

Your objects float with no shadows, or shadows are blocky, blurry, flicker as the camera moves, or vanish a short distance away. URP shadows not showing or blurry in Unity 6 almost always comes down to a handful of settings spread across the URP Asset, the light, the renderer and each mesh. This guide goes through where each setting lives and what to change, starting with the quickest checks.

Where Shadow Settings Live in URP

Shadows in URP depend on four places. A problem in any one of them breaks shadows:

  1. The URP Asset (the Universal Render Pipeline Asset assigned in Project Settings > Graphics and per quality level in Project Settings > Quality). Its Shadows section sets Max Distance, cascades, resolution and depth/normal bias. Its Lighting section has the Cast Shadows toggles for main and additional lights, plus shadow resolution.
  2. The light: its Shadow Type (No Shadows, Hard, Soft) and its own bias settings.
  3. The renderer on each object: Cast Shadows and, for receiving, the material and shader.
  4. The camera: its Rendering > Shadows setting can turn shadows off for that camera.

Important: each Quality level can use a different URP Asset. If you edit one asset but the Game view uses another quality level, nothing changes. Check which asset is active in Project Settings > Quality.

No Shadows at All

Work through these:

  • Light Shadow Type is No Shadows. Set the Directional Light to Soft Shadows.
  • Main Light Cast Shadows is off in the URP Asset’s Lighting section.
  • Max Distance is tiny, or the camera is further from the objects than Max Distance.
  • Mesh Renderer Cast Shadows is Off on the object. Set it to On.
  • Material doesn’t receive shadows. URP Lit and Simple Lit receive shadows by default. An Unlit shader never does. Custom shaders and Shader Graphs need the right keywords; Shader Graph Lit targets handle this, and Unlit graphs don’t receive shadows without custom lighting.
  • Camera Rendering > Shadows is off.
  • Baked light: a light set to Baked only casts shadows into lightmaps. If you haven’t generated lighting, there are none. Mixed or Realtime lights cast real-time shadows. See the baked vs realtime lighting guide.

Shadows Disappear in the Distance

That’s Max Distance in the URP Asset’s Shadows section. Beyond it, no shadows are drawn. The default is 50 units. Raising it shows shadows further away but spreads the same shadow map resolution over a bigger area, so near shadows get blurrier.

The balance for most games: set Max Distance only as far as the player needs to see shadows clearly, then use cascades to keep near shadows sharp. For a top-down game with a fixed camera, a small distance like 30 to 40 gives crisp shadows. For open worlds, 100 to 150 with four cascades.

Blurry or Blocky Shadows

Shadow maps are textures. Sharpness depends on how many shadow map pixels cover each metre on screen.

  • Shadow Resolution: in the URP Asset’s Lighting section, Main Light Shadow Resolution. 2048 is a good default; 4096 is sharper but uses more memory and GPU time.
  • Max Distance: lower it. Halving the distance roughly doubles sharpness.
  • Cascades: use 2 to 4 so nearby areas get more resolution (next section).
  • Soft Shadows: soft shadows blur edges by design. If they look too blurry, try the Soft Shadows quality setting in the URP Asset (Low, Medium, High) or switch the light to Hard shadows for a crisp look.
  • Render Scale below 1 makes everything, including shadows, softer.

Cascades Explained

A directional light’s shadow covers everything from the camera to Max Distance. Cascades split that range into slices, each with its own part of the shadow map. Near slices cover small areas at high detail, far slices cover big areas at low detail.

In the URP Asset, set Cascade Count to 2, 3 or 4 and adjust the split percentages. The first cascade should be small, since that’s what’s right next to the player. Turn on the cascade debug view (the colour bars in the URP Asset show splits) to see where each slice ends.

If you see a visible line where shadow quality changes, adjust splits or enable the Last Border fade so the far edge fades out instead of cutting off.

Shadow Acne and Peter-Panning

Shadow acne is striped, noisy shadowing on lit surfaces. Peter-panning is when shadows detach from the object that casts them, so objects look like they float. Both come from bias:

  • Depth Bias pushes the shadow away from the surface. Too low: acne. Too high: detached shadows.
  • Normal Bias shrinks the caster along its normals. Too high: thin objects lose their shadows or get holes.

The URP Asset sets defaults. Each light can override them with Bias set to Custom. Change in small steps. If thin objects like fences lose shadows, lower Normal Bias on that light. If you see acne, raise Depth Bias slightly. Also make sure meshes have thickness; single-sided planes are prone to both problems. If shadows look wrong on a Blender model, check its normals with the flipped normals guide.

Point and Spot Light Shadows

Additional lights (point and spot) only cast shadows if Additional Lights is set to Per Pixel and Cast Shadows is ticked in the URP Asset’s Lighting section. They share a shadow atlas with a fixed resolution, so many shadowed lights each get a small slice and look blurry.

  • Increase Additional Lights Shadow Atlas Resolution.
  • Set per-light shadow resolution tiers (Low, Medium, High) on the light.
  • Limit how many additional lights cast shadows. Point lights are expensive: each needs six shadow views.

With the Forward+ rendering path (common in Unity 6 URP), more lights are supported, but shadow costs still add up.

Performance Trade-offs

Shadows are one of the biggest rendering costs. Every shadow-casting object is drawn again into the shadow map for each cascade it touches. To save cost:

  • Turn off Cast Shadows on small props and distant objects that don’t need them.
  • Use fewer cascades on mobile (1 or 2) and lower resolution.
  • Bake shadows for static objects with Mixed lighting (Shadowmask) so only moving objects cast real-time shadows.
  • Use LODs with Cast Shadows off on lower LODs. The LOD and occlusion culling guide covers this.

💻 Shadows are GPU-hungry

High shadow settings can bring a weak laptop GPU to its knees in the Editor. See our budget laptop picks for Unity for machines with a capable GPU.

Troubleshooting

Changed URP Asset settings but nothing happens

The active Quality level uses a different URP Asset. Check Project Settings > Quality and edit the asset assigned there.

Shadows flicker or swim when the camera moves

Low resolution over a large distance. Lower Max Distance, add cascades, or raise resolution.

Object casts shadows but doesn’t receive them

The material uses an Unlit shader or a custom shader without shadow receiving. Switch to URP Lit or add shadow sampling.

Thin objects have no shadow

Normal Bias is too high. Lower it on the light with custom bias.

Shadows only appear close to the camera

That’s Max Distance. Raise it, balancing with cascades.

FAQ

Hard or soft shadows?

Soft shadows look more natural and hide aliasing. Hard shadows are slightly cheaper and suit stylised games.

What shadow resolution should I use?

2048 for desktop is a good start. 1024 or lower on mobile.

How many cascades?

Two to four on desktop, one or two on mobile.

Can sprites cast shadows in URP?

Not with the 3D shadow system by default. The 2D Renderer has its own Shadow Caster 2D component for 2D lights.

Why are shadows different in the build?

The build uses a different quality level and therefore possibly a different URP Asset.

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *