Skip to content

Commit 3ec52c2

Browse files
authored
Increase default normal bias to avoid common artifacts (#10346)
# Objective Bevy's default bias values for directional and spot lights currently cause significant artifacts. We should fix that so shadows look good by default! This is a less controversial/invasive alternative to #10188, which might enable us to keep the default bias value low, but also has its own sets of concerns and caveats that make it a risky choice for Bevy 0.12. ## Solution Bump the default normal bias from `0.6` to `1.8`. There is precedent for values in this general area as Godot has a default normal bias of `2.0`. ### Before ![image](https://github.com/superdump/bevy/assets/2694663/a5828011-33fc-4427-90ed-f093d7389053) ### After ![image](https://github.com/bevyengine/bevy/assets/2694663/0f2b16b0-c116-41ab-9886-1ace9e00efd6) ## Migration Guide The default `shadow_normal_bias` value for `DirectionalLight` and `SpotLight` has changed to accommodate artifacts introduced with the new shadow PCF changes. It is unlikely (especially given the new PCF shadow behaviors with these values), but you might need to manually tweak this value if your scene requires a lower bias and it relied on the previous default value.
1 parent d70b4a3 commit 3ec52c2

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

crates/bevy_pbr/src/light.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,7 @@ pub struct SpotLight {
116116

117117
impl SpotLight {
118118
pub const DEFAULT_SHADOW_DEPTH_BIAS: f32 = 0.02;
119-
pub const DEFAULT_SHADOW_NORMAL_BIAS: f32 = 0.6;
119+
pub const DEFAULT_SHADOW_NORMAL_BIAS: f32 = 1.8;
120120
}
121121

122122
impl Default for SpotLight {
@@ -210,7 +210,7 @@ impl Default for DirectionalLight {
210210

211211
impl DirectionalLight {
212212
pub const DEFAULT_SHADOW_DEPTH_BIAS: f32 = 0.02;
213-
pub const DEFAULT_SHADOW_NORMAL_BIAS: f32 = 0.6;
213+
pub const DEFAULT_SHADOW_NORMAL_BIAS: f32 = 1.8;
214214
}
215215

216216
/// Controls the resolution of [`DirectionalLight`] shadow maps.

0 commit comments

Comments
 (0)