Skip to content

Commit

Permalink
expose unused SHADOW_MODULATE.a as shadow opacity
Browse files Browse the repository at this point in the history
  • Loading branch information
maidopi-usagi committed Oct 3, 2024
1 parent 5ccbf6e commit a35f27f
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 12 deletions.
11 changes: 6 additions & 5 deletions drivers/gles3/shaders/canvas.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -452,7 +452,7 @@ vec3 light_normal_compute(vec3 light_vec, vec3 normal, vec3 base_color, vec3 lig
vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv
#ifdef LIGHT_CODE_USED
,
vec3 shadow_modulate
vec4 shadow_modulate
#endif
) {
float shadow = 0.0;
Expand Down Expand Up @@ -488,11 +488,12 @@ vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv

vec4 shadow_color = godot_unpackUnorm4x8(light_array[light_base].shadow_color);
#ifdef LIGHT_CODE_USED
shadow_color.rgb *= shadow_modulate;
shadow_color.rgb *= shadow_modulate.rgb;
shadow *= shadow_modulate.a;
#endif

shadow_color.a *= light_color.a; //respect light alpha

return mix(light_color, shadow_color, shadow);
}

Expand Down Expand Up @@ -736,7 +737,7 @@ void main() {
light_color = light_shadow_compute(light_base, light_color, shadow_uv
#ifdef LIGHT_CODE_USED
,
shadow_modulate.rgb
shadow_modulate
#endif
);
}
Expand Down Expand Up @@ -838,7 +839,7 @@ void main() {
light_color = light_shadow_compute(light_base, light_color, shadow_uv
#ifdef LIGHT_CODE_USED
,
shadow_modulate.rgb
shadow_modulate
#endif
);
}
Expand Down
15 changes: 8 additions & 7 deletions servers/rendering/renderer_rd/shaders/canvas.glsl
Original file line number Diff line number Diff line change
Expand Up @@ -393,7 +393,7 @@ vec3 light_normal_compute(vec3 light_vec, vec3 normal, vec3 base_color, vec3 lig
vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv
#ifdef LIGHT_CODE_USED
,
vec3 shadow_modulate
vec4 shadow_modulate
#endif
) {
float shadow;
Expand Down Expand Up @@ -431,11 +431,12 @@ vec4 light_shadow_compute(uint light_base, vec4 light_color, vec4 shadow_uv

vec4 shadow_color = unpackUnorm4x8(light_array.data[light_base].shadow_color);
#ifdef LIGHT_CODE_USED
shadow_color.rgb *= shadow_modulate;
shadow_color.rgb *= shadow_modulate.rgb;
shadow *= shadow_modulate.a;
#endif

shadow_color.a *= light_color.a; //respect light alpha

return mix(light_color, shadow_color, shadow);
}

Expand Down Expand Up @@ -643,8 +644,8 @@ void main() {

light_color = light_shadow_compute(light_base, light_color, shadow_uv
#ifdef LIGHT_CODE_USED
,
shadow_modulate.rgb
,
shadow_modulate
#endif
);
}
Expand Down Expand Up @@ -730,8 +731,8 @@ void main() {

light_color = light_shadow_compute(light_base, light_color, shadow_uv
#ifdef LIGHT_CODE_USED
,
shadow_modulate.rgb
,
shadow_modulate
#endif
);
}
Expand Down

0 comments on commit a35f27f

Please sign in to comment.