Visibility, Presence, and Opacity

Visibility, Presence, and Opacity

This document is an artist guide to camera visibility, presence and opacity in RIS.

Camera Visibility

This is an object attribute that sets the camera visibility. It is either 0 or 1 (on or off). If it is 0, that means the object is not visibible in the camera.

When To Use

To show or hide an object from the camera. By default, camera visibility is set to 1. Setting camera visibility to 0 is the most optimized way to hide an object.

How To Use


Camera visibility in RenderMan for Maya is an object attribute. To set it to 0, uncheck it in Maya Attribute Editor's Attributes > RenderMan > Visibility Setttings:



Camera visibility in RenderMan for Katana is an object attribute. To set it to 0, set it to No in PrmanObjectSettings's Visibility for camera:


Note that in Katana, another option of hiding the object is by pruning the object.


Attribute "visibility" "constant int camera" [0]


This is a Bxdf parameter that sets the probability (the chance) of surface hit. It is a scalar value of either 0 or 1. By default, it is set to 1 which means that it has 100% chance of surface hit and thus the surface is present to the renderer. If it is set to 0, that means the surface is not present to the renderer.

Whether it is present or not present, the light scattering properties do not change.

Presence is normally connected to a black and white mask. We can see in this example below where it is 0 (black in the mask), there is no surface. The alpha channel is black.


We have a plane assigned to PxrLMPlastic Bxdf's Presence default to 1.0:


We have a checker mask texture:


Now we connect the checker mask to PxrLMPlastic Bxdf's Presence:


The resulting alpha with the checker Presence:


Why Do We Need This?

For render optimization. Presence is for camera rays and indirect rays. The renderer only needs to shade the surface and execute the Bxdf when the surface is present.

When To Use

  • Connect the Presence parameter to a texture that defines a "cut out" in the surface. For instance, we model a leaf as a cheap bilinear patch and paint a black and white mask for shape of the leaf.
  • To hide particles.

When Not To Use

  • Not for translucency, transparency, or refraction.

  • Presence should be set to either 0 or 1. Setting presence between 0 and 1 will produce unwanted noise!!! For instance, if we set the presence to 0.4, we are telling the renderer that there is 40% chance of hitting the surface and 60% chance of missing the surface! This is illustrated in the example below:

  • PxrLMPlastic with Presence at 1.0:

  • PxrLMPlastic with Presence to 0.4. We can see the noise!

  • PxrLMGlass with Presence at 1.0:

  • PxrLMGlass with Presence to 0.5. In addition to the noise, it is also wrong!


If we want to shade a translucent surface, we can set the Translucence shading parameter instead.


If we want to specify refraction, we should use a glass shader such as PxrLMGlass.

How To Use

Presence is a Bxdf parameter. It appears at the bottom of a PxrLM Bxdf:



In RIS, opacity is a color type. It is only for setting the shadow opacity color. It has nothing to do with the surface opacity. In other words, it does not modify the alpha of your render. It is only for transmission rays (which are for shadow only). The colored transmittance passes straight through the surface without any bending.

Why Do We Need This?

To efficiently produce colored shadow opacity and allow a scene to be rendered with the direct lighting optimization.

When To Use

To tint the shadow such as in thin glass and hair.

How To Use

In PxrLMGlass Bxdf, when Thin glass is turned on, the refraction color is used to tint the shadow. This sets the shadow opacity color for the renderer.


Note in thin glass, the shadow opacity color is tinted with the refraction color.


Opacity in the alpha channel is unaffected.



Bxdf "PxrLMGlass" "terminal.bxdf" "integer thin" [1] "color reflectionColor" [1 1 1]
     "color refractionColor" [0.0175232 0.8 0.8]

See Also