Per-light AOVs
AOV Shaders
Light Path Expressions
Per-light AOVs

It is possible to view AOVs while rendering in MPlay, Render View (right click and enable the View Bar to see the AOV chooser) and Render Region (right click and select the AOV from the Image Plane menu). 

A set of AOV shaders exists to allow easy reading and writing of AOVs from within a shader network.

Enable AOV Composition is now always enabled and the option has been removed.

AOV Shaders  


Only shaders with AOV-writing capabilities should be added to 'AOV Shaders' in AOVs.

AOV shaders such as Cryptomatte AOVs can also be added to 'AOV Shaders' in AOVs.


A tutorial about compositing AOVs can be found here.

Layer Name

Output layer names can be customized in file formats that support layers (regular or deep EXR) by adding an optional custom layer name after the driver name in the options.outputs string. E.g.

outputs 2 1 STRING
 "RGBA RGBA gaussian_filter driver_exr beauty"
 "RGBA RGBA variance_filter driver_exr beauty_variance"

When using AOV wildcard syntax and specifying a name for an output layer, the AOV type will be replaced by the given name.

For example, using a wildcard of diffuse_*, a layer name of myLayer, and AOVs of 'red' & 'blue', the layers written into the EXR will be named myLayer_red and myLayer_blue instead of the default diffuse_red and diffuse_blue.

Output layers in files that support layers (such as regular or deep EXR files) can be individually set to type HALF by adding an optional HALF modifier to the corresponding output string. For instance: "my_aov RGB filter driver HALF".

Light Path Expressions 

You can define custom Light Path Expressions to write lighting components into separate AOVs. 

LPE menu with existing light groups

Separate File

Render the AOV in a separate file, as opposed to storing it in as an additional channel of the beauty image.


Image Format

Specifies the image format of the AOV if it is being rendered to a separate file. See the Image Format section for more information. By default, this will be the same as the beauty.


The type of data to be written in the AOV - RGBA, float, vector, etc. At the moment Arnold for Houdini will not specify a default type for each AOV so you will have to explicitly set this. This will be updated in a future release. Refer to the list below for what type to use for each AOV.


Specify whether 16-bit floating point (binary16) or full 32-bit precision is used. By default, this will be the same as the beauty.


Allows you to set multiple EXR compressions per AOV.

Pixel Filter

Specifies the pixel filter used on the AOV, see the Pixel Filter section for more information. By default, this will be the same as the beauty.

Filter Deep AOV

If set to false disables any filtering operation on this layer's raw data. Useful for normals or ID layers.

Deep AOV Tolerance

Tolerance over which the AOV samples will not be merged together.

Half Precision for Deep AOV

Use 16-bits float for this AOV filtering.

The Mix shader only works with AOVs of type RGB. If an AOV exists but is not specified on the AOVs tab, some limited mixing will occur, without a smooth transition: if the mix value is 0 or less, input1 will be output, else input2. Leaving an AOV name blank will disable mixing.

Per-light AOVs 

Each light object has an 'AOV Light Group' attribute which can be used to write out the light contribution to a separate AOV with a corresponding name. To create a per-light AOV you must do the following:

  1. Enter a name for the per-light AOV in the 'AOV Light Group' of the light. 

'Red' entered in AOV Light Group

2. Add a custom AOV in the Render Output. For example, if the light group name is “red”, then the AOV name should be RGBA_red (if you want the red light contribution to the beauty). Or diffuse_red if you want just the red light contribution to the diffuse.

RGBA_red custom AOV in Arnold Output

Light path expressions can be used to output light into specific AOVs.