From e3dbf7463488aa1a5fb0782bb01fa3fd4b4eca00 Mon Sep 17 00:00:00 2001 From: landervr <31851431+CpnWaffle@users.noreply.github.com> Date: Tue, 29 Apr 2025 12:57:59 +0200 Subject: [PATCH] Fix reflection probe dark borders --- .../shaders/forward_clustered/scene_forward_clustered.glsl | 4 ++-- .../shaders/forward_mobile/scene_forward_mobile.glsl | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl index f9947be27a5..bb78cd1a7ac 100644 --- a/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl +++ b/servers/rendering/renderer_rd/shaders/forward_clustered/scene_forward_clustered.glsl @@ -1949,11 +1949,11 @@ void fragment_shader(in SceneData scene_data) { } if (ambient_accum.a < 1.0) { - ambient_accum.rgb = mix(ambient_light, ambient_accum.rgb, ambient_accum.a); + ambient_accum.rgb = ambient_light * (1.0 - ambient_accum.a) + ambient_accum.rgb; } if (reflection_accum.a < 1.0) { - reflection_accum.rgb = mix(specular_light, reflection_accum.rgb, reflection_accum.a); + reflection_accum.rgb = specular_light * (1.0 - reflection_accum.a) + reflection_accum.rgb; } if (reflection_accum.a > 0.0) { diff --git a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl index 728bd7128b5..edbebbd14c3 100644 --- a/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl +++ b/servers/rendering/renderer_rd/shaders/forward_mobile/scene_forward_mobile.glsl @@ -1418,11 +1418,11 @@ void main() { } if (ambient_accum.a < 1.0) { - ambient_accum.rgb = mix(ambient_light, ambient_accum.rgb, ambient_accum.a); + ambient_accum.rgb = ambient_light * (1.0 - ambient_accum.a) + ambient_accum.rgb; } if (reflection_accum.a < 1.0) { - reflection_accum.rgb = mix(specular_light, reflection_accum.rgb, reflection_accum.a); + reflection_accum.rgb = specular_light * (1.0 - reflection_accum.a) + reflection_accum.rgb; } if (reflection_accum.a > 0.0) {