WebGPURenderer: Fix receiveShadow and introduce shadowPositionNode #28146
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.
Description
Currently, setting
material.receiveShadow = falsedoes not affect the shadow behavior. This pull request fixes the issue.This pull request also introduces
shadowPositionNodewhich allows the modification of the comparison point for objects receiving the shadow.There is a current limitation with
light.shadowNode, which globally affects all the meshes receiving a shadow from a light, andmaterial.shadowNode, which modifies the behavior of the mesh that casts a shadow.material.shadowPositionNodemodifies the behavior of the mesh that receives the shadow.This allows the alignment of shadows on custom surfaces modified by nodes or even custom effects on specific surface, for example:
PS: Since it's more about the pixels rather than the position of the vertices, would something like
shadowCompareNodebe better? /cc @sunagThis contribution is funded by Utsubo