How to get a shadowpass in blender 3.6

Prior to Blender 3.5 there was an option to include a shadow pass. Since Blender 3.5 this option was removed and as a substitute we should now render with a shadow catcher. How on earth do i get shadow from an entire scene to be used in post production? If i convert the entire scene to shadow catchers the there is no shadow to catch… anybody got a solution? Thanks!

Unfortunately, it has been removed from Blender 3.5 (see here, at the very bottom of the page), and now it is suggests to use Shadow Catcher instead.

Thanks for the reply, the article doesn’t suggest a solution. The shadow catcher works for getting the shadow on the floor for example, not for the entire scene. If you know of a workaround i would gladly hear it.

Brecht mentions it could be brought back if there are enough user cases:

We may restore this if were enough good use cases for the previous implementation, but let’s wait and see what the feedback is.

(see commit: https://projects.blender.org/blender/blender/commit/0731d78d) As of now we need to fall back on 3.4.

Yes, you’re right, they’ll see what fans wound want and then decide whether to retrieve it back or not.

As for this, I didn’t find anything, unfortunately. Suppose, it is better to just use Blender 3.4 for this one.

Perhaps I’m missing something… but, I feel like sufficient good use cases would exist, to the degree that light trees should not have been approved as a replacement if it required sacrificing shadow pass.

But, as I don’t use cycles - were shadow pass results just so poor that they weren’t worth keeping? Because if “yes”, then it feels like they made a decision that makes some sense.

i haven’t worked with shadow passes yet, but could you do a material placement for everything in scene to say, a flat (non shiny) white, and render that? giving you a black and white (assuming lights are white too) with the shadows showing?

this is the full quote:

This was not working well in non-trivial scenes before the light tree, and now
it is even harder to make it work well with the light tree. It would average the
with equal weight for every light object regardless of intensity or distance, and
be quite noisy due to not working with multiple importance sampling.

We may restore this if were enough good use cases for the previous implementation,
but let’s wait and see what the feedback is.

Some uses cases for this have been replaced by the shadow catcher passes, which
did not exist when this was added.

I reckon the shadowpass was removed to adhere to the speed and quality standard the devs set.

It is not ideal since there are is a lot of transparency going and i would need to make a seperate material for all materials and a lot of different colored lamps.

Was hoping to start using 4.0 in our pipeline, we’ll see what the devs come up with. :beers:

1 Like

the transparencies i would .think. you could keep, just not the colors used in them (as that could darken the shadows more than they should be). not having a global light colour replace, and ‘change color/roughness’ of materials without affecting transparency levels would make that a chore though.

mayhaps a python script could do that? again, not something i’ve played with, but just spitballing ideas if the devs don’t come up with a proper solution.

There seems to be an issue there. As long as you activate the shadow catcher option of an object and the transparency option in Render>Film and the output is set to RGBA, you get an image with the shadow on transparent Background.
Everything is fine.
But as soon as you activate the shadow catcher pass in the view layer panel, the shadow catcher object appears in the rendered image. No matter what I try.
So if I want to compose the shadow catcher pass onto another background, I have to cut out the shadow catcher object beforehand.
Don’t know if this is intended, but it seem’s not logical to me.

1 Like