Cycles Shadow Catcher Plugin

OK, folks. This isn’t quite in the final state, and there are a couple more things I want to add, but it works with just a little user tweaking now, and so I figured ready for a release. This uses a modified version of a node setup I found to work very well for both shadows and reflections. The plugin will set up your scenes, layers and the compositing node setup. There are just a couple of preparation steps that you need to make it work, which I’ve covered in a brief video at https://www.youtube.com/watch?v=M2LgAytYRts&feature=youtu.be
EDIT: I should add that, unlike some other methods, this works with lights, emitters, HDRI, AO, caustics and reflections. You can effectively do a complete composite.

Give me a shout with any problems. Hope you find it useful.

Attachments


This is an example showing how it works with just HDR lighting. Deliberately chosen because of the windows to show the reflection, too.

Because it’s quite a dark scene, and prone to very noisy renders, I made a duplicate of the sky, and on the background scene left the intensity at 1, but ramped it up to 3 for the main scene.

Attachments


Thanks alot Roken! Very nice result.
I must try it soon…
Have a nice Sunday.
Patrick D.

Nice :slight_smile: Thank you for sharing. Could you make a github repo?

I could, but I honestly don’t think it’s needed. It’s a single python script, and already available. When I add the couple of refinements, I’ll post here. Everyone has the source code, then, to modify as they see fit. Suggestions are welcome, and if they add value (workflow rather than financial - I’m not looking to market this), then I’ll see what I can do.

If you really want the source, simply unzip the zip and you have it.

I tried installing, I got an error. Too bad since I’d be interested in something like this.

Attachments


That’s weird, the failure is immediately upon start. Can you try unzipping the script, open the text editor in Blender and load the script there, run it and see if the error persists. Also check that you don’t already have a plugin with a panel called Shadow Catcher?

It worked from the text editor.
I’m not aware of any other addon called that.

OK, I’m working on fixing it and making it generally more robust.

OK, try this. I managed to reproduce the error here, and it no longer appears with this.

I’ve also included automatically copying the camera and sky to the background now, as well as a couple of error checks.

shadowcatcherplugin.zip (2.01 KB)

OK, as requested, I’ve added a github repo for this at https://github.com/RokenPrice/Shadow-Catcher. Latest update is there with:

Colour highlighting of the compositing nodes most likely to be those that you edit
Added an image node for using your own background image rather than the scene sky, and a toggle to connect it up (and disconnect the background if it’s attached)

NB. Don’t enable the background/image after editing compositor nodes, since you’ll lose the edits. I’ll try to fix this in a later update.

Thank you :slight_smile:

Awesome! Thanks!

I’ve added an update on github. Got rid of a bunch of annoying errors, and toggling the background/image no longer destroys the compositing settings that you may have changed.

Looking Awesome!^^

For those using this, I’ve updated on github. I found a better way of controlling the amount of compositing of the shadows/reflections.

Now you have a new node, “Value” and you use this to control the strength of the composited shadow. I removed one of the MixRGB nodes since it’s no longer required, but left the other for colour correction.

I’ve also added a blur node which enables you to control the softness of the shadow in compositing.

Any questions give me a shout. Get the latest version at https://github.com/RokenPrice/Shadow-Catcher.

NB. I recommend removing the old version before installing, owing to a slight naming change, otherwise you can create a conflict.

A new update. I’ve now added a panel on the Image Editor to quickly change the strength and blur of the shadows without having to go to the node editor. The nodes are still there, but the UI controls the main two.

https://github.com/RokenPrice/Shadow-Catcher/blob/master/shadowcatcher.py
Oh, the RGB node is still there to colour correct the shadows. It seems to work much better this way.

If you have any problems when lighting with HDRI only and the strength over doing it, give me a shout. There’s a work around, but it does take some manual work (and adding a new scene). I may look at adding the fix automatically in an update. It doesn’t seem to happen with all HDRs, so I have to decide if it’s worth it. NB. If you have a problematic HDR, it will add extra render passes, so will take longer.

Probably about time I updated the YT tutorial. That will have to wait until weekend.

Hi, this is potentially very useful to me however I typically use multiple layers for my objects and they aren’t necessarily arranged so that I can use layers 1 and 2 without moving things around. Is it possible that you can modify things so that you don’t have to organise it in such a restrictive fashion as now. I am thinking of a small array of selection boxes that mimic those in the 3d view header where you can nominate which layers the ground and the lights are to be found. That is for example I will be using objects in layers 1,2,3,4,5,6,8,9 for the render and I put the plane in layer 9 and the lights in layer 8. Thanks. Any other scheme you come up with is fine too :wink:

I’m glad the concept is good for you, and it simply started as a one click solution.

Layer management is a good idea. Maybe easier to allow you to specify which layer the shadow catcher is on, rather than force a layer hierarchy. Perhaps a UI element that simply says “Shadows are here”. It is easy enough, though, to enable it and then change the render layers to suit your particular needs. It would be nice to be able to use multiple catcher layers, too. That would allow reflections and shadows to be separated and adjusted independently, but would need a lot more programming on the backend. Having said that, I’m not averse to working with the idea. I’d like to make this the definitive solution whilst retaining ease of use.

I liked that reflection in windows too! I just downlaoded it hope I will be able to use in right way ! :stuck_out_tongue: