bevy/crates/bevy_pbr/src
Daniel Chia c3a46822e1 Cascaded shadow maps. (#7064)
Co-authored-by: Robert Swain <robert.swain@gmail.com>

# Objective

Implements cascaded shadow maps for directional lights, which produces better quality shadows without needing excessively large shadow maps.

Fixes #3629

Before
![image](https://user-images.githubusercontent.com/1222141/210061203-bbd965a4-8d11-4cec-9a88-67fc59d0819f.png)

After
![image](https://user-images.githubusercontent.com/1222141/210061334-2ff15334-e6d7-4a31-9314-f34a7805cac6.png)


## Solution

Rather than rendering a single shadow map for directional light, the view frustum is divided into a series of cascades, each of which gets its own shadow map. The correct cascade is then sampled for shadow determination.

---

## Changelog

Directional lights now use cascaded shadow maps for improved shadow quality.


## Migration Guide

You no longer have to manually specify a `shadow_projection` for a directional light, and these settings should be removed. If customization of how cascaded shadow maps work is desired, modify the `CascadeShadowConfig` component instead.
2023-01-25 12:35:39 +00:00
..
prepass Move prepass functions to prepass_utils (#7354) 2023-01-24 20:36:40 +00:00
render Cascaded shadow maps. (#7064) 2023-01-25 12:35:39 +00:00
alpha.rs Standard Material Blend Modes (#6644) 2023-01-21 21:46:53 +00:00
bundle.rs Cascaded shadow maps. (#7064) 2023-01-25 12:35:39 +00:00
lib.rs Cascaded shadow maps. (#7064) 2023-01-25 12:35:39 +00:00
light.rs Cascaded shadow maps. (#7064) 2023-01-25 12:35:39 +00:00
material.rs Standard Material Blend Modes (#6644) 2023-01-21 21:46:53 +00:00
pbr_material.rs Standard Material Blend Modes (#6644) 2023-01-21 21:46:53 +00:00
wireframe.rs Changed Msaa to Enum (#7292) 2023-01-20 14:25:21 +00:00