Arnold 18.104.22.168 added support for per-light AOVs for volumetrics.
Here’s how to set up per-light AOVs in MtoA 22.214.171.124:
- In the light Attribute Editor, enter a name for the light group.
- Create a custom AOV for the light group. Give the AOV a name that starts with “volume_”. For example, if the light group name is “red”, then the AOV name is “volume_red”.
Here’s a question asked recently. Given a shading tree like the one below, why don’t AOVs like diffuse_direct include the blended color from the Blend Color node?
The answer: because it is the Standard shader that writes the AOV, not the Blend Color shader. The diffuse_direct AOV gets the diffuse layer calculated by the Standard shader, and that’s it.
The MtoA AOV browser shows you what AOVs are implemented by which shaders:
A simple example of using a Color4 Passthrough to create a custom AOV. In this example, I’m using Store Color in Channel to put a per-object Alpha in the custom AOV. I could easily use overrides to do this on a per-partition level.
In this video, I show how to a color mask AOV using a custom AOV and the Utility shader. Topics covered include:
– Creating a custom AOV
– Setting the default shader for a custom AOV
– Setting up the Utility shader to output a color for each shape
– Understanding the difference between the Color and Color ID color modes
So, what’s this Preserve Layer Name setting do?
Preserve Layer Name is for single-layer EXRs, and it determines whether or not the AOV is written into the pre-defined R,G,B,A channels.
By that, I mean that if Preserve Layer Name = False, then a single-layer EXR will have these channels:
And if Preserve Layer Name = True, then the single-layer EXR will have channels like this (that include the “layer name”):
Channel names like “Arnold_Direct_Diffuse.R” can cause problems with some software, so by default Preserve Layer Names is set to False.
Note that Preseve Layer Names applies to single-layer EXRs only. If you’re writing out multi-layer EXRs, you’ll always get names like “Arnold_Direct_Diffuse.R”.