Cycles: Experiment with shadow catcher

New build up on the latest patch on the first post.

Loving this! Windows version worked perfectly for my needs.

Any chance for a Mac build?

Sergey mentioned that he may commit to master.

Any news about reflections?

What would that mean in terms of Mac build availability? Does it mean that we would get it in the next official Blender release (2.78)?

here a quick attempt with shadow catcher by @Sergey and with @BlackhartFilms addon from blendermarket:

shadoww catcher:

easy compositing addon:

camera calibration done via BLAM! addon.

I really love the shadow catcher object solution (also the addon works fine but I prefer the integrated approach).
Since is a “shadow catcher” you don’t expect it to catch “reflections” too, but using a glossy material on the the S.C. objec also provide some kind of reflections (something darkish anyway…)
Is it possible to manage (good) reflections and shadows catch together? I mean if the shader you apply to the S.C. object has a glossy factor is it possible to have nice-coloured reflections catched?
great work @Sergey, thank you very much!

If he commits to master, you would be able to download a osx build from graphicall or from blender (may be the better option for an osx build) and it would already be in the build.

Damn, this feature doesn’t seem to be included in the 2.78 RC :frowning:

He hasn’t committed the code into the master branch yet.

He tung,

how cool is that!?? To me it is working like it should work. Many many thanks! Should be included in 2.78. in my opinion.
I´m happy :slight_smile:


Thank you Sergey for this fantastic feature!

I have found the various compositing solutions to be not very suitable for VFX animations. The Shadow Pass with object ID can allow you to do a simplistic shadow in a single pass, but the lack of a material that doesn’t self shade is very limiting. The With/Without method is fine, but needs multiple passes which is very time consuming for animation. This implementation seems to solve everything!

One feature request (which I imagine you are already aware of). A layer pass for catcher shadows and a separate pass for catcher reflections would be fantastic.

Also a problem with the current patch (31-aug-16) - the shadow catcher seems to be self shading for light from the environment, either from simple background color or HDRi as shown the the following screen shot.

Another couple of small issues…

  • If two or more objects are selected as shadow catchers, they shade each other. It’s easy enough to join them I guess, but it would be convenient if this wasn’t necessary.

  • CGI objects with a small percentage of transparency become completely transparent if they are in front of a shadow catcher object.

Where can I find the latest build for Windows? Has the build in the first post been updated as improvements have been made?

Yes, I posted a updated build against the latest master that Sergey committed. After 2.78 release I suspect Dr. Sergey is gonna rock this patch out.

Updated the build, Now on Graphicall = arc_patch_D1788_Win7.x64-4dbc4af

New build is live = arc_patch_D1788_Win7.x64-cb6b55b
*Updated 11.18.16
Mainly rebasing against latest master, don’t expect any difference in behavior
@Lukas Stockner, i’ve tried implementing your idea of using non-MIS-weighted
numbers for the shadow, but there were following issues:

  • It made BPT somewhat darker shadows than with PT
  • I’m not sure we can store MIS weight in BsdfEval anymore: this weight is different for different terms in the BSDF eval sum, so don’t think we can divide final sum bu overall MIS weight to get number we want?

@Brecht Van Lommel, can we start some discussion about what is the best approach to get
this into master? What i have in mind is:

  • Figure out whether i got Lukas’s idea right.
  • Make this an Experimental option, so we keep some margin about making possible changes in the render results if we’ll re-consider some parts of the change to work better with denoiser.


This looks fantastic, I’m desperate to give the new build a test however for the last few days I’ve been unable to download anything from the downloads keep failing partway through. I’ve tried different browsers/computers/locations etc even downloading direct from the terminal with no luck. Would someone here help me out and download it then weTransfer it to me?




here a real world production example for the shadow catcher.

Old variant.
3 pass rendering (see Compositor combine 1-4)

You see in upper right window.
The reflection geometry (e.g. marked with red line) is only allowed to cast a shadow on the car (green line)
and not to the ground because the shadow on the ground is already in the backplate footage (4).

Thats the case for all shots. e.g car under trees…

i tried the latest build. arc_patch_D1788

Translated to the Test.blend provided.
Create a cube over Suzanne. The shadow from the cube should only be visible on suzanne.
Not on the shadow catcher.
It must pe possible to mark the cube (in real live the complete reflection environment like in my example)
as “don t cast shadow” on shadow catcher.

Thats a common case for all animations of objects (here car) in movie footage.

In Autodesk VRED i did it this way.
Mark the group with reflection environment as “CastShadowOnShadowMaterial” Off.

You see that shadow from reflection env is only rendered on the car (next to green line).

The shadow is not rendered on the ground plane (red line). Because the shadow is already in the background moviefootage.

I think similar function in Blender is essential and cut´s down the render time for the movie about half compared to the old 3 pass rendering and compositor madness.)


Are there plans to build it with denoise branch?