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 d0599ca
Show file tree
Hide file tree
Showing 2 changed files with 10 additions and 8 deletions.
9 changes: 5 additions & 4 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,7 +488,8 @@ 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
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
9 changes: 5 additions & 4 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,7 +431,8 @@ 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
Expand Down Expand Up @@ -644,7 +645,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 @@ -731,7 +732,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

0 comments on commit d0599ca

Please sign in to comment.