Recently we’ve had a small discussion about the shadow catcher in Cycles-X over in the “Let’s (finally) fix the ShadowCatcher” thread and we have some feedback for it.
At the moment it’s really difficult to use the shadow catcher to add CG objects to real life reflections and probably refractions. This is because you’re replacing pixels from real world footage with pixels from your CG scene via multiplication in the compositor. As such, the values in the shadow catcher pass can get quite “extreme”. The issue with this is that if your shadow catcher object is even just a little bit different from the real world, the values produced in the shadow catcher pass end up quite a way off from what they’re supposed to be. And as a result, the final result after compositing the shadow catcher into your scene can have very noticeable artifacts.
Take for example this scene:
There’s a reflective surface. and a background reflected in that surface. I now wish to add a red sphere to the scene. Adding the sphere is easy, but adding the reflections with the shadow catcher can be difficult. This is the expected result:
And these are bad results produced by the shadow catcher simply by having the shadow catcher object representing the water be slightly different from the “real world water”:
In our discussion over on the shadow catcher thread I came to the conclusion that having glossy reflections (and probably refractions) included in a render pass the user can just alpha over the real life footage would probably be best as it resolves the major issues we have with the shadow catcher.
However, I’m not entirely sure how feasible that approach is in terms of performance or whether or not it will continue to produce accurate results. Maybe there’s some other way to setup it up?



