This is RenderMan 21 Documentation you are viewing. The Rmanwiki home page will redirect you to the current documentation.

Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Image Removed

In movies and commercials, we Image Added

 

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
infinitefalse
labelsFilterholdouts
slidesToScroll2
slidesToShow2
captionstrue

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.

// The same holdout render featuring caustics and thin shadows

Because holdouts are considered an intrinsic geometric property when calculating illumination, LPE workflow remain

Carousel Image Slider
includepxrDome_intensity05.jpg, pxrDome_intensity10.jpg, pxrDome_intensity20.jpg
maxNumber3
dotsfalse
columns3
infinitefalse
sliderHeight190
arrowsfalse
labelsFilterintegrator
gutterSize20
titleIntensity
animatefalse
captionstrue

LPE workflow remains unchanged for holdout geometry.

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

Carousel Image Slider
includepxrDome_intensity05.jpg, pxrDome_intensity10.jpg, pxrDome_intensity20.jpg
maxNumber3
dotsfalse
columns3
infinitefalse
sliderHeight190
arrowsfalse
labelsFilteraov
gutterSize20
titleIntensity
animatefalse
captionstrue

Note

Because holdouts workflow involves multiple AOVs, rendering with adapt all enabled can reduce noise.

Lights

By default, light sources are considered holdouts and do not illuminate other 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 (a light source that directly illuminates other holdouts), create a light using does directly illuminate holdout objects, use "__illumholdout" as the light group suffix. This tells integrators integrator plug-ins to consider this light as a new non-holdout light source when illuminating holdout geometrydetermining illumination.

Code Block
Light "PxrSphereLight" "spherelight" "string lightGroup" ["light__illumholdout"]

// render of additional illumholdout light source

Carousel Image Slider
includepxrDome_intensity05.jpg, pxrDome_intensity10.jpg, pxrDome_intensity20.jpg
maxNumber3
dotsfalse
columns3
infinitefalse
sliderHeight190
arrowsfalse
labelsFilterillumholdout
gutterSize20
titleIntensity
animatefalse
captionstrue

Alpha, Shadows, and Compositing

Holdout contribution can be composited over a film plate using an alpha and shadow pass as masks. The shadow pass is generated using the PxrShadowDisplayFilter plug-in and can be optionally written to its own AOV or added to the alpha. 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 shadow"
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
includepxrDome_intensity05.jpg, pxrDome_intensity10.jpg, pxrDome_intensity20.jpg
maxNumber3
dotsfalse
columns3
infinitefalse
sliderHeight190
arrowsfalse
labelsFiltermask
gutterSize20
titleIntensity
animatefalse
captionstrue

Compositing can be interactively previewed in RenderMan by using the PxrImageDisplayFilter plug-in. This will composite the film plate with the beauty channel, using the alpha channel and holdout shadow AOV to mask the plate.

Carousel Image Slider
includepxrDome_intensity05.jpg, pxrDome_intensity10.jpg, pxrDome_intensity20.jpg
maxNumber3
dotsfalse
columns3
infinitefalse
sliderHeight190
arrowsfalse
labelsFilterimageplane
gutterSize20
titleIntensity
animatefalse
captionstrue