Is it possible to disable self casting shadows on a mesh but still reseive and cast shadows, eevee?

I want to do NPR animations, which require me to control the shadows on the mesh, however this is where I come into the problem at hand. I already found a way to control the “shadow” on the mesh, but this technique doesn’t allow other meshes to cast shadows onto it. So is it possible, hopefully through nodes, to disable self casting shadows but keep received shadows and cast shadows? If not then I’ll have to find some way to reduce the intensity of the shadows cast onto the mesh by the sun but keep received shadows intensity.

I’m using blender 2.92 and eevee render engine
This is how I see it, unless I’m wrong. Its weird I know, but this is kinda how I understand it based on what I’ve messed with.

Casting shadow is when the mesh blocks the sun.
Receive shadow is when on mesh casts a shadow onto another mesh.
Self shadow is when shadows are cast by the sun unto the mesh using the meshes own geometry.

Go to the material setting and turn shadow to none.

image

That disables self and cast shadows, tho it still receives shadows. I’m trying to figure if it’s possible to disable self shadows, but the mesh still casts a shadow onto other meshes and receives shadows from other meshes.

I have trouble reading here. Can you define “self shadow” and “cast shadow on other meshes”, then “receive shadow from other meshes”?

For more precise terminology

the “self shadow” is the Form Shadow, as in the shadow is due to the form turning away from the light

Cast shadow is when an object casts shadow onto other objects

In this case the cube has cast shadow and form shadow

The left monkey has no form shadow but the right one does

The left monkey has a cast shadow from the cube

Both monkeys cast no shadow

I’ve posted a picture of what I’m trying to say.

Might not be possible without some workarounds

Maybe this one? But they did it for grass.

Is it possible to “disable” form shadow but still retain the others., I’m starting to this it’s not possible. Or at least lessen it or change its direction without change the suns direction, do to having other meshes not just one.

You could try adding adding a hull, where the outer hull material has the shadow mode set to none.
Duplicating and scaling or using the displace modifier would come to mind.
I’m not certain that this would work, you should probably also try disabling backfaces for the hull.

You can use the light path node and the ray length info to only cast shadows on objects that are some distance away, or have the shadows fade in as they get further out:


Unfortunately, I don’t think this works in Eevee.

1 Like