Page tree

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »


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]



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


By default, light sources do not illuminate holdout objects directly.

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.

Shadows and Compositing

A holdout shadow pass can be output using the PxrShadowFilter plug-in. The occluded and unoccluded input AOVs should be rendered using the holdouts LPE prefix.

DisplayChannel "color occluded" "string source" ["color lpe:holdouts;C[DS]+[LO]"]
DisplayChannel "color unoccluded" "string source" ["color lpe:holdouts;unoccluded;C[DS]+[LO]"]

Compositing can be previewed in RenderMan by using PxrImagePlaneFilter SampleFilter plug-in. This will composite the beauty render over the specified image plane, using the alpha channel and holdout shadow AOV to mask the plate.