Understanding Holdout Passes in Compositing

Holdout passes are one of those things everyone learns the hard way. You're three hours into a render, everything looks correct, you composite it, and suddenly the foreground object is either invisible or accidentally eating pixels from everything behind it. I've seen it happen on commercial work more times than I care to count. The fix isn't complicated once you know what's actually going on, but the terminology across different render engines makes it confusing. A holdout pass, sometimes called an opacity pass or depth pass depending on the software, tells the compositor to treat a specific object or group of objects as if it were transparent for the main beauty pass while still allowing it to be picked up separately. In practical terms, this means you can have a glass building facade in your architectural visualization render that blocks out the city behind it in the holdout layer but doesn't contribute reflections or diffuse lighting. The building is effectively removed from the final composite, leaving only its silhouette information. This sounds simple enough, but the real problem comes when you're dealing with complex geometry like the title references. "The buildings that got in the way" is basically the unofficial name for every architectural project where the host building or surrounding structures create holdout conflicts because they're blocking other elements you actually want to composite cleanly.

In Cycles, Blender's holdout works through material settings. You set a material to holdout mode and it becomes transparent to the camera but still affects lighting for other objects. In Eevee, it's the opposite problem — holdout materials completely occlude the render in a way that can break subsequent passes unless you're careful about render layer ordering. The distinction matters more than most tutorials admit.

Setting Up Holdouts in Practice

Here's how you actually do it without breaking the rest of your render. Start by isolating the problematic geometry into its own collection or object group. Don't try to apply holdout materials to scattered individual objects — it creates sorting issues in the compositor that will haunt you later. For Cycles specifically:

Get the Full Details

Architectura & Natura - Holdouts! The Buildings That Got in the Way
Architectura & Natura - Holdouts! The Buildings That Got in the Way
  • Select the objects you want to hold out
  • Create a new material slot on them
  • Set the material to holdout type in the shader editor
  • Make sure the holdout material is on the same object hierarchy level as your base materials, not overriding them

The common mistake here is thinking you can just toggle holdout on any material and call it done. Holdout materials remove the object entirely from the beauty pass output. If that object was also contributing indirect lighting to nearby surfaces, those lighting contributions disappear too. This is why architectural renders with holdout pass often end up looking flat until someone remembers to restore the baked lighting information separately. I spent two days debugging a project last year where a building's holdout pass was eating part of the adjacent structure's reflection. The issue wasn't the holdout itself — it was that the Z-depth range on the holdout pass was bleeding through because of overlapping bounding boxes. The building I thought was cleanly isolated had a few scattered vertices from connected geometry that were slightly offset due to a subdivision surface modifier I'd applied earlier in the modeling phase. The workaround was brutally simple but not obvious: I went into edit mode on the problematic building, selected all geometry, and ran a merge by distance operation with a threshold of 0.001. Then I reapplied the holdout material. The bleed stopped immediately. This kind of thing doesn't show up in any manual or tutorial. It's the kind of problem you find when you've already wasted a full day trying to figure out why the composite looks wrong at half resolution but fine at full resolution.

Advanced Considerations

Holdout passes are genuinely useful but they have real limitations that nobody emphasizes enough. They don't play well with subsurface scattering. If your building has any translucent materials — frosted glass panels, certain concrete types, anything with subsurface properties — the holdout pass will misbehave unpredictably. The render engine treats the subsurface calculation as part of the material output, and the holdout layer can't cleanly separate it. You'll get artifacts at the edges of your holdout objects that look like ghosting or double-exposure effects. Another issue is motion blur interaction. When objects with holdout materials are moving during a frame, the motion blur calculation happens before the holdout pass is applied, which means you can get partial holdout regions in the final image where the object was only partially in frame during the blur calculation. This is particularly annoying for architectural fly-throughs where camera motion is constant. For projects where holdout complexity is high — large urban scenes with many interacting buildings — consider using a combination approach instead. Render your holdout objects as a separate pass using the crypto material or object index pass, then use that mask in your compositing software rather than relying on the native holdout feature. It's slower to set up initially but gives you far more control over the final result, especially when you need to adjust the holdout boundaries non-destructively.

Holdouts save time when you understand what they're actually doing under the hood. They remove objects from specific render passes, not from the entire render pipeline. Treating them as a magic "hide this object" button is what creates the problems in the first place. The buildings that got in the way are usually the ones you didn't isolate properly before applying the holdout material in the first place.

David R. Godine, Publisher: Holdouts!: The Buildings that Got in the Way
David R. Godine, Publisher: Holdouts!: The Buildings that Got in the Way