I'm trying to squeeze out some animation highlights for a sizzle reel and wanted to save time by reusing my background with the compositor. Here is what was being rendered before I used a transparent background and set the ground plane to a shadow-catcher. This took about 15 to 20 minutes and have 32 of these to render:

enter image description here

So I saved an image with only the background in it and set up the compositor, thinking the program would either completely ignore most of the background (I set the ground plane as a shadowcatcher) or zip-thru the empty areas, but the square regions are taking just as long to compute empty space!

enter image description here

I followed this tutorial for my setup pretty much exactly, except the image I am using for the composited background is just the ground plane without the character:


Here is my compositor setup (for some reason the character isn't in the preview but obviously he is being rendered sans background):

enter image description here

What am I doing wrong? How can I save time rendering this image sequence? Eevee is not an option because the shadows don't blend as nice even if I crank up the settings

EDIT: Border rendering result not compositing correctly with background:

enter image description here

The topic of this question is how to save time rendering using the compositor so this is still relevant because using border-rendering WOULD save time if it worked with the compositor. Is there a way to do that? I turned "Crop to Render Region" off because keeping it on was literally cropping the image. But with it off, I have these black regions.

  • 3
    $\begingroup$ Blender doesn't know the tiles are blank, even if you do, until it has rendered them. More info here: developer.blender.org/T34888 and blender.stackexchange.com/questions/143798/…. In short, border rendering may help. $\endgroup$ – Ray Mairlot Aug 10 '19 at 3:16
  • $\begingroup$ Will rendering with border region still composite correctly? I haven't seen examples of that where the background is put back together with the foreground $\endgroup$ – hatinacat2000 Aug 10 '19 at 3:39
  • $\begingroup$ Using border rendering is leaving a black region where the image is supposed to be composited with the background, is there a way to fix this? $\endgroup$ – hatinacat2000 Aug 10 '19 at 4:01
  • $\begingroup$ Try using a color key set to black. That's in the matte menu, as I recall. $\endgroup$ – Joseph Brandenburg Aug 14 '19 at 4:38
  • $\begingroup$ I like your Luigi! $\endgroup$ – Millard Aug 19 '19 at 19:17

No adaptive sampling in Cycles in Blender versions prior to 2.83

Cycles used lack adaptive sampling functionality in versions lower than 2.83 so no matter what, the pixels being rendered used to get sampled as many times as there were samples defined in the render settings.

Mask with Holdout shader

You could make a plane, parent it to the camera(Ctlr+p) using Without Inverse option so it snaps to the camera and is oriented to it's local space, move the plane and cut a hole in it so it's sort of a mask. If you assign Holdout shader to it it will get rendered as transparency (transparent film enabled) and it will still get sampled, however those samples are going to be as easy to calculate as possible, so it will speed up the process greatly. You can make any shape of the mask just by modelling the hole the way you need it to be, however if it covers anything that you need in the render(like shadows for example) that will become invisible, so you need to be careful about what you mask.

enter image description here

You can see the masked areas outside the center of the image render a lot faster:

enter image description here

Adaptive sampling is added since Blender 2.83

From version 2.83 adaptive sampling is finally added and if enabled will render transparent areas a lot faster.

enter image description here

| improve this answer | |
  • 3
    $\begingroup$ It would be interesting to know the reason for the downvote someone gave to this answer. $\endgroup$ – Martynas Žiemys Aug 14 '19 at 9:04
  • $\begingroup$ Wasn't me, I love crazy out-of-the-box workarounds like that. I have to pose another animation tomorrow and will confirm this strategy then. Thank you for this suggestion, I am excited to try it (plus it should be easy b.c. I am using orthographic projection and the camera, character are fixed[-ish] for each animation) $\endgroup$ – hatinacat2000 Aug 14 '19 at 10:03
  • $\begingroup$ That's a nice trick. Not sure why somebody would downvote this, computer graphics is all about taking shortcuts while making it look as good as possible. $\endgroup$ – Robert Gützkow Aug 14 '19 at 10:45
  • $\begingroup$ I mean... I honestly hate this workaround and the fact that there is no adaptive sampling in Cycles myself( it samples everything even when rendering masked render layers!), but I think working with what we have, that might be of some help in some situations... $\endgroup$ – Martynas Žiemys Aug 14 '19 at 12:58
  • $\begingroup$ @MartinZ Adaptive sampling is being worked on, not sure if/when it will merged into master. developer.blender.org/D4686 the branch is cycles_adaptive_sampling. $\endgroup$ – Robert Gützkow Aug 15 '19 at 20:28

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.