Arbitrary Output Variables

Arbitrary Output Variables

Arbitrary Output Variables (AOVs) are the secondary images produced by the renderer. There can be any number of them generated simultaneously and each one may go to a different file, a different display driver, or use different pixel filter settings. In some cases, special pixel filter modes may be used to avoid mixing values from different samples in a non-sensical way; typically these select a single sample to be representative of the whole pixel.

Broadly speaking, AOVs in RIS fall into three main categories: Built-in AOVs, Integrator (Global) AOVs, Custom AOVs, and Light Path Expressions.

Built-in AOVs

The built-in AOVs display mostly geometric information pertaining to points on the visible surfaces seen by the camera. These values are automatically generated by the renderer and are available as AOVs regardless of the active integrator. Here is the current list of available builtin-ins:

point P
Position of the point hit by the incident ray
images/outputs/alienP.png
float PRadius

Cross-sectional size of the ray at the hit point

(Note: the exposure of the image at right has been multiplied for the purposes of this illustration.)

images/outputs/alienPRadius.png
float cpuTime
The time taken to render a pixel.
images/outputs/teaPot_time.png
float sampleCount

The number of samples taken for the resulting pixel.

(Note: the exposure of the image at right has been reduced since samples begin at value 1.)

images/outputs/teaPot_samples.png
normal Nn
Normalized shading normal
images/outputs/alienNn.png
normal Ngn

Normalized geometric normal

(Note: in this particular example, the shading and geometric normals are the same.)

images/outputs/alienNgn.png
vector Tn
Normalized shading tangent
images/outputs/alienTn.png
vector Vn
Normalized view vector (reverse of ray direction)
images/outputs/alienVn.png
float VLen
Distance to hit point along the ray

float curvature
Local surface curvature
images/outputs/alienCurvature.png
float incidentRaySpread
Rate of spread of incident ray

float mpSize
Size of the micropolygon that the ray hit
images/outputs/alienMpSize.png
float u, float v, float w
The parametric coordinates on the primitive
images/outputs/alienU.png

u

float du, float dv, float dw
Derivatives of u, v, and w to adjacent micropolygons
images/outputs/alienDu.png

du

vector dPdu, vector dPdv, vector dPdw
Direction of maximal change in u, v, and w
images/outputs/alienDPdu.png

dPdu

float dufp, float dvfp, float dwfp
Multiplier to dPdu, dPdv, dPdw for ray differentials
images/outputs/alienDufp.png

dufp

float time
Time sample of the ray

vector dPdtime
Motion vector

float id

Returns the integer assigned via the identifier attribute as the pixel value

(Note: the exposure has been reduced in the image at right for the purpose of illustration.)

images/outputs/alienID.png
float outsideIOR
Index of refraction outside this surface


Integrator (Global) AOVs

On top of regular LPE-based AOVs, this integrator ouptuts a number of standard AOVs typically used by compositors.

Declaration Contents Channels
color __Pworld P in world-space
__Pworld.r : x component
__Pworld.g : y component
__Pworld.b : z component
color __Nworld Nn in world-space
__Nworld.r : x component
__Nworld.g : y component
__Nworld.b : z component
color __depth Multi-purpose AOV
__depth.r : depth from camera in world-space
__depth.g : height in world-space
__depth.b : geometric facing ratio : abs(Nn.V)
color __st Texture coords
__st.x : s
__st.y : t
__st.z : 0.0
color __Pref Reference Position primvar (if available)
__Pref.r : x component
__Pref.g : y component
__Pref.b : z component
color __Nref Reference Normal primvar (if available)
__Nref.r : x component
__Nref.g : y component
__Nref.b : z component
color __WPref Reference World Position primvar (if available)
__WPref.r : x component
__WPref.g : y component
__WPref.b : z component
color __WNref Reference World Normal primvar (if available)
__WNref.r : x component
__WNref.g : y component
__WNref.b : z component

Custom AOVs

In addition to the above, some custom shading plugins may recognize other requests for AOVs and respond to them in their own particular ways. The names of these AOVs and what exactly gets displayed is up to the particular plugin.


Examples

images/dino3Crop.png A Tale of Three Dinos - We've played with the Dino example a bit here to show off some of the AOV support in PRMan's RIS mode. Note that, at this time, this particular .rib file is not included with the other examples.