Expose unused SHADOW_MODULATE's alpha as shadow opacity for 2d lighting shadows #90805
+10
−8
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The light built-in
SHADOW_MODULATE
is avector4
but only first three elements of it are used for modulating the color of shadows, and the alpha channel was totally unused previously.In this pr, the alpha channel of
SHADOW_MODULATE
will modulate the alpha of shadow, so users can change the opacity of received shadows when overridinglight()
function.Maybe related to godotengine/godot-proposals#7136 and godotengine/godot-proposals#9297
As
shadow_modulate
is initialized tovec4(1.0)
before lighting compute , so the default behavior of canvas shaders should not get differences.2024-04-17.23-24-40.mp4
EDIT: made an example Project here
shadow_modulate.zip
Before:
shadow_modulate_alpha_before.mp4
This PR:
shadow_modulate_alpha.mp4