AOVs for Image Compositing tutorial

RGBA (beauty) AOV

This tutorial is a beginner's guide to using AOVs for use in compositing. It should be noted that the AOVs required depends on the specific requirements of the compositor and how they will use these AOVs. It is therefore recommended to clarify which AOVs are required before rendering them out. If you are new to render passes (AOVs) you may wonder which AOVs are required to compose the final render. It all depends on various factors, and specifically on the materials and light set-up, what components you used in the shaders and what you need to do with the final image. However, sometimes the beauty render is enough.

Composing the Beauty AOV

The RGBA beauty AOV can be split into smaller AOVs where each contains part of the lighting. In compositing, these AOVs can then be individually modified and added together to get the full beauty AOV. More AOVs give more control in compositing, but also extra work to handle, and they take up more memory and disk space, especially combined with light groups.

Some example sets of additive AOVs for the full beauty AOV are:

Simply adding together such AOVs is all that is needed for the beauty AOV.

Standard Surface AOVs

For example, let's see how the standard_surface shader is composed and which AOVs there are. The first thing to consider is the sections below because they can be separated into different AOVs.

standard_surface shader

This is what we see when we look at the list of AOVs. We can see all of the above components in the AOV list, however, there are more AOVs other than what is in the standard_surface shader.

List of AOVs available in the Arbitrary Output Variables (AOVs) window

We can see some components are broken down into four AOVs, for example with coat, there are coat_albedo, coat_direct, and coat_indirect. In addition, there are also a couple of direct and indirect AOVs and there are no base AOVs, however, there are diffuse AOVs. The standard_surface simulates a physically-based shader and so the diffuse parameters are named base. Then we have diffuse, specular, sss, coat, sheen as well as other AOVs. These AOVs can be used to build the final image in a compositing software package. The AOV with the _albedo index is the pure color of our component. The texture (flat color) is given to the color parameter of the shader.

beauty AOV specular_albedo AOV

Direct and Indirect AOVs

Now onto what the _direct and _indirect AOVs do. When combined together, they basically do the same thing as the diffuse AOV but separated into their light components. Whereas direct is direct rays from the light source, and indirectly reflects rays from geometry when direct rays hit them (the ray depth parameter controls how many times this ray bounce occurs). Below is a simple example:

1: direct rays come from the light source. 2: indirect rays bouncing from the surface.

Now, if we composite diffuse_direct + diffuse_indirect, we get exactly the same result as in the diffuse AOV. The same applies to the other AOVs in the standard_surface shader.

diffuse_direct + diffuse_indirect = diffuse AOV

Beauty (RGBA) AOV

As for the ordinary direct and indirect passes, this is the RGBA (beauty) render, only expanded into direct and indirect rays. The RGBA contains the fully rendered image containing all of the material and light settings.

direct + indirect = RGBA (beauty) AOV

Compositing

Now, after we have learned how the shader works, we can proceed to the next stage, and specifically determine which AOVs are required to composite the image. In brief:

RGBA (beauty) AOV

diffuse specular
diffuse_direct diffuse_indirect specular_direct
specular_indirect sss_direct sss_indirect
albedo diffuse_albedo sss_albedo
Note:

The fresnel in the diffuse_albedo is a result of the specular_ior and how it affects the albedo of the diffuse to make it energy efficient. So with no specular, there would be no fresnel on the diffuse_albedo, as all the energy would be in the diffuse.

RGB ID mask used for selecting objects in composite

Other examples that utility AOVs can be used for include:

Thanks to Slava Sych for the assistance with this tutorial.