diff options
author | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-19 10:13:56 +0200 |
---|---|---|
committer | Rémi Verschelde <rverschelde@gmail.com> | 2023-04-19 10:13:56 +0200 |
commit | 27253f3eb2c78a9ad5114c92eae2036b10e1d7e0 (patch) | |
tree | 69e7ebe57cdb8254940a657279fdc9b7dddb9698 | |
parent | c01b11ec8176c94a1b26ab3ed3b311e4fecd51be (diff) | |
parent | ab603e347f057737fdc0bdf47e2437ad32924cad (diff) | |
download | redot-engine-27253f3eb2c78a9ad5114c92eae2036b10e1d7e0.tar.gz |
Merge pull request #76240 from clayjohn/Light2D-artifacts
Clamp normal when calculating 2D lighting to avoid artifacts
-rw-r--r-- | drivers/gles3/shaders/canvas.glsl | 2 | ||||
-rw-r--r-- | servers/rendering/renderer_rd/shaders/canvas.glsl | 2 |
2 files changed, 2 insertions, 2 deletions
diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl index ea0a0b660d..ae3892fb61 100644 --- a/drivers/gles3/shaders/canvas.glsl +++ b/drivers/gles3/shaders/canvas.glsl @@ -589,7 +589,7 @@ void main() { if (bool(read_draw_data_flags & FLAGS_FLIP_V)) { normal.y = -normal.y; } - normal.z = sqrt(1.0 - dot(normal.xy, normal.xy)); + normal.z = sqrt(max(0.0, 1.0 - dot(normal.xy, normal.xy))); normal_used = true; } else { normal = vec3(0.0, 0.0, 1.0); diff --git a/servers/rendering/renderer_rd/shaders/canvas.glsl b/servers/rendering/renderer_rd/shaders/canvas.glsl index 1fb8b28b15..c96524b5c9 100644 --- a/servers/rendering/renderer_rd/shaders/canvas.glsl +++ b/servers/rendering/renderer_rd/shaders/canvas.glsl @@ -508,7 +508,7 @@ void main() { if (bool(draw_data.flags & FLAGS_FLIP_V)) { normal.y = -normal.y; } - normal.z = sqrt(1.0 - dot(normal.xy, normal.xy)); + normal.z = sqrt(max(0.0, 1.0 - dot(normal.xy, normal.xy))); normal_used = true; } else { normal = vec3(0.0, 0.0, 1.0); |