Page tree

Versions Compared

Key

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

...

Historically (RenderMan RIS 21 and before) presence has been used for masking out parts of an object, while opacity has historically been used for coloring shadows cast by an object. Depending some ray types (e.g. camera rays), opacity was being ignored, and probabilistic hit-testing was mandatory for presence.

...

It is important to note that in this usage, presence conceptually has no bearing on light scattering (and vice-versa). Where a material is partially present, its light scattering properties do not change. Instead, this is interpreted as the material scattering less often, with each scatter event being identical to what would happen with a totally present material. Critically, this mean that presence is not a way to model transparent surfaces such as glass, because the light scattering and refractive properties of the glass cannot be modelled modeled by presence alone.

A leaf rendered with PxrDiffuse, using a leaf texture map as input to the presence parameter.

...

The RixOpacity object is bound to a shading context, similarly to a RixBxdf object. RixOpacity::GetPresence() will typically use this shading context (along with any pattern inputs) to return an array of presence values. There are RixShadingContext::numPts presence values in the array. These presence values need to range from 0 to 1, where:

  • 1 is fully present
  • 0 is fully absent
  • any value in between would usually denotes a probabilistic presence for anti-aliasing

...

Nonetheless, it can be desirable to have a method by which approximate colored shadows can be efficiently produced. These are often preferable to the physically realistic, but noisy, color shadows produced by considering indirect paths. RenderMan allows the bxdf to return an opacity color, to influence the colors of shadow resulting from tracing transmission rays. An opaque object would yield black shadows, as if returning an opacity of [1 1 1], i.e. white.

Note that opacity describes the transmittance straight through the surface (no bending)

...

When the RixOpacity API returns both a presence and an opacity value, they are combined (multiplied) together. In this case, one could thing think of the presence component as the 'intensity' and the opacity component as the 'color'.

...