1
0
mirror of https://github.com/godotengine/godot.git synced 2025-11-04 12:00:25 +00:00

Merge pull request #112212 from Rudolph-B/Issue-101312

Fix Light2D none shadow filter to use nearest sampling
This commit is contained in:
Thaddeus Crews
2025-10-31 09:23:29 -05:00

View File

@@ -407,7 +407,9 @@ vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv
uint shadow_mode = light_array.data[light_base].flags & LIGHT_FLAGS_FILTER_MASK; uint shadow_mode = light_array.data[light_base].flags & LIGHT_FLAGS_FILTER_MASK;
if (shadow_mode == LIGHT_FLAGS_SHADOW_NEAREST) { if (shadow_mode == LIGHT_FLAGS_SHADOW_NEAREST) {
shadow = texture_shadow(shadow_uv); vec2 unit_p = floor(shadow_uv.xy / canvas_data.shadow_pixel_size) * canvas_data.shadow_pixel_size;
float depth_sample = texture(sampler2D(shadow_atlas_texture, shadow_sampler), unit_p.xy).r;
shadow = step(depth_sample, shadow_uv.z);
} else if (shadow_mode == LIGHT_FLAGS_SHADOW_PCF5) { } else if (shadow_mode == LIGHT_FLAGS_SHADOW_PCF5) {
vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0); vec4 shadow_pixel_size = vec4(light_array.data[light_base].shadow_pixel_size, 0.0, 0.0, 0.0);
shadow = 0.0; shadow = 0.0;