summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--drivers/gles2/shaders/canvas.glsl4
-rw-r--r--drivers/gles3/shaders/canvas.glsl4
2 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gles2/shaders/canvas.glsl b/drivers/gles2/shaders/canvas.glsl
index 643b6a5cc9..e74c7d7166 100644
--- a/drivers/gles2/shaders/canvas.glsl
+++ b/drivers/gles2/shaders/canvas.glsl
@@ -440,6 +440,10 @@ FRAGMENT_SHADER_CODE
color *= light;
#ifdef USE_SHADOWS
+ // Reset light_vec to compute shadows, the shadow map is created from the light origin, so it only
+ // makes sense to compute shadows from there.
+ light_vec = light_uv_interp.zw;
+
float angle_to_light = -atan(light_vec.x, light_vec.y);
float PI = 3.14159265358979323846264;
/*int i = int(mod(floor((angle_to_light+7.0*PI/6.0)/(4.0*PI/6.0))+1.0, 3.0)); // +1 pq os indices estao em ordem 2,0,1 nos arrays
diff --git a/drivers/gles3/shaders/canvas.glsl b/drivers/gles3/shaders/canvas.glsl
index 90775c841f..88368516c1 100644
--- a/drivers/gles3/shaders/canvas.glsl
+++ b/drivers/gles3/shaders/canvas.glsl
@@ -549,6 +549,10 @@ FRAGMENT_SHADER_CODE
color *= light;
#ifdef USE_SHADOWS
+ // Reset light_vec to compute shadows, the shadow map is created from the light origin, so it only
+ // makes sense to compute shadows from there.
+ light_vec = light_uv_interp.zw;
+
float angle_to_light = -atan(light_vec.x, light_vec.y);
float PI = 3.14159265358979323846264;
/*int i = int(mod(floor((angle_to_light+7.0*PI/6.0)/(4.0*PI/6.0))+1.0, 3.0)); // +1 pq os indices estao em ordem 2,0,1 nos arrays