This is RenderMan 21 Documentation you are viewing. The Rmanwiki home page will redirect you to the current documentation.
In movies and commercials, we
VFX artists often need to composite the CG objects over a live action film plate. To convince the audience that the CG objects are real and belong to the scene, we need to use a holdout object to holdouts are used to collect the CG objects' shadow and reflection that match very closely to the shadow and reflection in the live action plate.
Carousel Image Slider | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Geometry
Holdout objects are used in place of real world object to catch light interactions from 3D objects. In RenderMan, holdout objects are specified by enabling the trace holdout attribute holdout.
Code Block |
---|
Attribute "trace" "int holdout" [1] |
Integrators and AOVs
Holdouts are an integrator illumination feature implemented at the integrator level. They are able to catch a variety of integrator-specific illumination effects such as diffuse and specular reflections, transmissions, and caustics. Available integrator that support holdouts are: PxrPathTracer, PxrVCM, and PxrUPBP.
Carousel Image Slider | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Because holdouts are considered an intrinsic geometric property when calculating illumination, LPE workflow remain unchanged for holdout geometry.
Carousel Image Slider | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Note |
---|
Because holdouts workflow involves multiple AOVs, rendering with adapt all enabled can reduce noise. |
Lights
By default, light sources do not illuminate holdout objects directly. This prevents double contribution between 3d lights used to illuminate non-holdout geometry and the illumination already captured on the plate image.
To create a holdout light (i.e. a light source that directly illuminates other holdoutsholdout objects), create a light using "__illumholdout" as the light group suffix. This tells integrators to consider this light as a new holdout light source when illuminating holdout geometry.
...
Alpha, Shadows, and Compositing
A holdout shadow pass Holdout contributions can be composited over a film plate using an alpha and shadow pass as the masking term. The shadow pass can be output using the PxrShadowFilter plug-in. Occluded The occluded and unoccluded input AOVs should be rendered using the holdouts LPE prefix so that they only contain the shadowing term for holdout geometry.
Code Block |
---|
DisplayChannel "color occluded" "string source" ["color lpe:holdouts;C[DS]+[LO]"] DisplayChannel "color unoccluded" "string source" ["color lpe:holdouts;unoccluded;C[DS]+[LO]"] |
Carousel Image Slider | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Compositing can be interactively previewed in RenderMan by using PxrImagePlaneFilter SampleFilter plug-in. This will composite the film plate with the beauty render over the specified image plane, using the alpha channel and holdout shadow AOV to mask the plate.
Carousel Image Slider | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
...