0
$\begingroup$

So, I have a shadow catcher set up to gather the light from a fireball in a VFX shot. It shows on the shadow catcher pass in the viewport render view, but not when I take the shadow catcher pass in compositing and alpha over the footage with it. What am I doing wrong?

render view: viewport render view

composite composited shadow catcher layer

Here are how my layers are set up

Background

background render layer

Foreground

Foreground render layer

And this is how I have my shadow catcher set up to be used in the compositor. I'm just taking the shadow catcher output from the render layer node and that's what I get.

Render layer node

Is this a bug? Or is this not doing what I'm thinking it does? How would I get the render view shadow catcher?

Node setup

Compositing node setup

$\endgroup$
1
  • $\begingroup$ See my answer on how the Shadow Catcher pass works in general. But one question: is there some volumetric fog in the scene? Because it looks like that... this might interfere with the transparency of the scene and the fog can throw shadows as well... $\endgroup$ Commented May 6 at 7:26

1 Answer 1

1
$\begingroup$

The Shadow Catcher pass is not doing what you think it does. You cannot use it with an Alpha Over node because it has no transparency. The Shadow Catcher pass gives a completely opaque output which you have to multiply with the image.

Here is an example of a use case: I put a cube with a red emissive part upon a plane. There is a light source which makes the cube throw a shadow on the plane, which is also partly lit from the emission. The plane itself by the way only has a Diffuse BSDF set to completely white. The background is set to Film > Transparent.

basic setup

If you now enable the Shadow Catcher option on the plane, it will become transparent and only show the shadows. Note that it really shows only shadows, no emitted light or anything. Where the red light brightens up the shadow, there is simply no or less shadow. And that is a big difference between using a shadow catcher directly in rendering or using the Shadow Catcher pass. The shadow catcher rendered directly is always only a greyscale value darkening the background.

shadow catcher enabled

So to have the darkening and brightening you need to enable the Shadow Catcher pass in the View Layer properties under Passes > Light as you already did. After rendering, the rendered image will not show the shadows or light on the floor, just the cube on a transparent background.

image layer

The Shadow Catcher pass shows a non-transparent image with the shadow and light information. It might not be visible, but other than the direct shadow catcher just darkening with greyscale values, the Shadow Catcher pass also gives color information and is not limited to the 0 to 1 range, i.e. pixels can have values higher than 1 per channel.

shadow catcher pass

So the order of operations to use this pass now is, first of all you place your rendered image (the cube in this example) over some background with the Alpha Over node, either some reference image or here a simple blue color.

alpha over the rendered image

Now you can darken and brighten the image according to the data from the Shadow Catcher pass by using a Mix Color node set to Multiply.

multiplying the shadow catcher

By the way, the mix factor can of course be used to decrease the shadow effect by using values less than 1. Or to intensify the effect you can increase the value, below I have set it to a value of 2, mostly to show one thing: as you can see to the right of the cube, the Shadow Catcher also catches the light bouncing of the bright side of the cube.

light bounces

$\endgroup$
5
  • $\begingroup$ Thank you for your suggestion to use multiply! However, the render view in viewport shows the correct thing, but its as if something is blocking a portion of the emitted light in the shadow catcher pass in compositing. I still get the color, but it's only a small part of where the light needs to be. Is there something that could be causing this? I'll add my nodes to the original post if it helps. EDIT - no fog, but I'm using a volume shader for my fire. $\endgroup$ Commented May 17 at 0:27
  • $\begingroup$ I accidentally had holdout switched on for my background collection this whole time... Didn't see it because blender likes to hide it sometimes, and I must've pressed it at some point. Thank you for your help, Gordon $\endgroup$ Commented May 17 at 0:51
  • $\begingroup$ @BraedonRogers Yeah, sorry that wasn't what you were looking for. $\endgroup$ Commented May 17 at 4:27
  • $\begingroup$ That was one of my problems, so your comment helped tremendously! Thank you! $\endgroup$ Commented May 19 at 7:10
  • $\begingroup$ @BraedonRogers Okay... I just thought it didn't since the answer was not accepted. $\endgroup$ Commented May 19 at 11:21

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .