In movies and commercials, we often need to composite the CG objects over a live action plate. To convince the audience that the CG objects are real and belong to the scene, we need to use a holdout object to collect the CG objects' shadow and reflection that match very closely to the shadow and reflection in the live action plate.


In RenderMan, holdout objects are specified by enabling the trace attribute holdout.

Attribute "trace" "int holdout" [1]

Integrators and AOVs

Holdouts are an integrator feature implemented at the integrator level. Available integrator that support holdouts are: PxrPathTracer, PxrVCM, and PxrUPBP.

// The same holdout render featuring caustics and thin shadows

Because holdouts are considered an intrinsic geometric property when calculating illumination, LPE workflow remain unchanged for holdout geometry.

// A render of a beauty, diffuse, specular AOV



To create a holdout light (a light source that directly illuminates other holdouts), create a light using "__illumholdout" as the light group suffix. This tells integrators to consider this light as a new light source when illuminating holdout geometry.


// render showing illumholdout light source

Alpha, Shadows, and Compositing



// render showing holdout shadow pass


// render comparing image plane to no image plane

Additional Considerations
