0
$\begingroup$

I'm doing everything I know how to do, but I must be missing something because my shadow catcher isn't working. It receives a shadow, but instead of becoming transparent, it just gets dark. (Using Cycles, and I do have Transparent enabled in the Render settings.)

This is my setup:

  1. Enable "Shadow Catcher" in the Object Properties
  2. Enable "Transparent" in the Render > Film settings
  3. Background image > Emission Shader
  4. Foreground Object over Shadow Catcher Object
  5. HDRI to light the scene

This is what happens: Example

Why doesn't the rest of the Shadow Catcher (marked in yellow) become transparent?

I know there is a way to do this in the Compositor, but I would assume it is also possible to set up the scene without having to do that, no?

PROJECT FILE

$\endgroup$
2
  • $\begingroup$ Is there any reason to have "transparent" turned On eve if you are going to render with a background? $\endgroup$
    – Emir
    Commented Feb 5 at 2:47
  • 1
    $\begingroup$ Hey @Emir, on hindsight, you're right there is no point. I watched a tutorial where someone used the Shadow Catcher (but in a different context) and said 'make sure you have transparent turned on in the Film settings' so I just did this without thinking it through ;) $\endgroup$ Commented Feb 5 at 17:56

1 Answer 1

0
$\begingroup$

If you check it closer, you can see checker pattern in black - it means it is transparent ... but shadow catcher does it transparent through entire scene :)

Using shadow catcher feature expects you want to do composition ... so you should mix fg with bg in Compositor.


In some scenarios you can try ...

Cycles

Disable Shadow Catcher and change material of your plane. Here the material is used for back plate and floor plate. The trick here is to use Window Texture Coordinates for texture mapping.

enter image description here enter image description here

Based on your comment ... I don't think there is a native way to do it in Cycles ... try this Eevee setup.

Eevee

In Eevee you can trick it by using Shader to RGB node ... plus under Material Properties > Settings >

  • Blende mode set Alpha Blend
  • Shadow Mode set None.

enter image description here enter image description here

$\endgroup$
2
  • $\begingroup$ Just trying to follow your answer: 1) You're saying that you have to do this with compositing. 2) You're saying that I could simply add the background texture to the ground plane object and let the shadow fall onto it. This would be fine, except that I am building a scene with a background that is set to shadeless (i.e. an emission shader that won't take shadows), and I want to add a shadow onto it with a Shadow Catcher, but without having to use the Compositor. $\endgroup$ Commented Feb 5 at 17:59
  • $\begingroup$ Sorry I don't have a solution for you, just another workaround with Eevee (I know you asked for Cycles, but I don't know any other then Compositor). Maybe someone with programming skills to write an OSL shader ... $\endgroup$
    – vklidu
    Commented Feb 5 at 19:33

You must log in to answer this question.

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