Quick answer: Enable Cast Shadow on the foliage type. Raise Shadow Cull Distance, and confirm the light actually casts dynamic shadows.
A forest of foliage-painted trees renders fine but casts no shadows. The foliage type has shadows disabled, or shadow culling is too aggressive.
Foliage Type Settings
Open the Foliage Type asset (or the instance settings in the Foliage tool). Under Shadows:
- Cast Shadow: must be on.
- Cast Dynamic Shadow / Cast Static Shadow: match your lighting setup (movable light = dynamic).
- Affect Dynamic Indirect Lighting: optional, for bounce.
Shadow Cull Distance
Foliage has a separate cull distance for shadows. If it’s low, distant trees render but stop casting shadows. Raise Shadow Cull Distance (Start/End) to match the visible range, or set to 0 for no shadow culling.
Light Setup
A Movable directional light casts dynamic shadows; a Static light only casts baked shadows (and foliage painted after the bake won’t have them). For dynamic foliage shadows, the light must be Movable or Stationary with dynamic shadows enabled.
Nanite Foliage
If the foliage mesh is Nanite, ensure Nanite shadows are enabled in the project’s shadow settings — Virtual Shadow Maps are the recommended path for Nanite foliage.
Verifying
Trees cast shadows on the ground and each other. Distant trees still shadow within the raised cull range. Shadow quality matches the rest of the scene.
“Foliage shadows are opt-in and separately culled. Enable Cast Shadow, raise the shadow cull distance.”
For dense forests, balance Shadow Cull Distance against perf — full-range foliage shadows are expensive; a moderate distance with VSMs is the sweet spot.