How to STOP light from casting shadows of objects in different layers!?

:information_source: Attention Topic was automatically imported from the old Question2Answer platform.
:bust_in_silhouette: Asked By Green Dot

I want to make the shadow of an object less opaque without affecting the shadows of different objects.

And no, I DO NOT want to uncheck “Cast Shadow” in the mesh’s settings.

I understand a light has “Cull Mask” layers. It says “The light will affect objects in selected layers”.

Okay, so I put omni-light A in layer 1 only; I turn it’s “Cast Shadows” on.

But when I put an object B in layer 2 only and turn it’s “Cast Shadow” on, the light does not shine on it but it STILL casts the objects shadow!

Wasn’t this supposed to be fixed in Godot 4? It’s driving me nuts!!!

Also, what is this new “Shadow Mesh”. Will that help in any way?
Please HELP! It’s so frustrating!

:bust_in_silhouette: Reply From: Calinou

I want to make the shadow of an object less opaque without affecting the shadows of different objects.

This can be done by duplicating the node that casts shadows, setting its Cast Shadow mode to Shadows Only and using a custom shader to make it dithered: Implement dithered shadows for semi-transparent objects · Issue #3276 · godotengine/godot-proposals · GitHub
The shadow is still technically opaque, but it’ll use a dithering pattern that makes it look semi-transparent.

You’ll then need to change the original node’s Cast Shadow property to Off, so that no opaque shadows are casted.

Wasn’t this supposed to be fixed in Godot 4? It’s driving me nuts!!!

Cull Mask only affects lighting, not shadow. There is currently no property to exclude certain meshes from shadow rendering for a given light only: Add per-light shadow cull masks to control which objects cast shadows · Issue #3606 · godotengine/godot-proposals · GitHub

Thank you! At least i can do something about it now :slight_smile:

Green Dot | 2022-10-10 10:49