RenderMan gives you access to a powerful tool called arbitrary output variables or AOVs. You may already be familiar with AOVs through the RenderMan Studio secondary outputs, which are a subset of the general capabilities of AOVs. Essentially, AOVs let you output any arbitrary values that your shading network computes into a frame buffer. This means you can ouput lighting information as secondary outputs, but you can also output procedural patterns, masks, vectors, normals, etc. The possibilities are limited only by how much use you can make of your AOVs in compositing. This HowTo shows how to set up a procedural shading network in Slim that will output interesting AOVs for compositing. Project files
- Set the Maya Project to the AOV_project folder from the RAR file.
Open the scene AOV_project/scenes/AOV_start.mb.
The scene is setup to render a shadow map and some subtle point-based colorbleeding. So if you render out of the box, you will see a shadow pass, a radiosity pre-pass, and then the final pass. There are also ray traced reflections on the floor. Disable ray tracing from the RenderSettings > Features tab to speed your rendering.
Open Slim and create a new palette File > New Palette
At any time, feel free to load the final Slim palette from $PROJ/slim/palettes/aov_palette.splt using Slim > File > Open Palette... to see how the final network was put together
- Add a Delux shader to your scene and start building up a "float" procedural pattern. What the pattern is has no importance, but it is interesting. Reference the network in step 7, if you need some ideas.
Once we have a pattern built up, we want to output it as an AOV. Create a float AOV node by right-clicking in the workspace and selecting float > (All floats) > (Bakeable - float Primvar) > float AOV .
Now connect in your pattern to the float AOV node, by middle-mouse-clicking the float pattern and then middle-clicking on the float AOV node. Again, middle-mouse-click onto the float AOV node, and then onto the destination where the pattern went; so you insert it between the two nodes.
An AOV node acts like a pass through node, letting your data flow through unchanged. You can hook your pattern into it and hook the output into the rest of your network. All the node does is mark that point in the network, give it an AOV name, then tell RenderMan to output it, if the matching display channel is delared at rendertime(see below).
In the AOV node, give your AOV a name. This can be any string, as long as it obeys standard rules (such as no spaces, no reserved characters like $, /, \, &, etc). Here we use cells_aov
Continue to build up your network. Here we throw together a few more nodes including a facing forward node to map in the reflection intensity of our Delux shader. Also add AOV nodes at any point where you would like to have an output of your pattern. In the end, we have three AOV nodes (two float and one color) called fresnel_aov, cell_aov, and cell_color_aov.
- Right-click over your Delux shader and click Add to Scene.
- In Hypershade, select the delux node and assign it to the cloth object.
To set these up for output as framebuffers, we need to do two things: declare them as displaychannels and add them to our outputs list. To declare them as DisplayChannels, we need to use the RiDisplayChannel MEL command and add it to the Render Settings > Advanced > RiInjection Points> Default RiOptions MEL. These are the commands used to output our AOVs display channels:
RiDisplayChannel "float cells_aov"; RiDisplayChannel "color color_cells_aov"; RiDisplayChannel "float fresnel_aov";
Next, we add this as an output Render Settings > Passes > Output > Create Output > Custom... . Here we add all three outputs, one at a time, simply using the display name that we wrote in our original slim AOV nodes.
Ensure you are going to render with "it" by going to Render > Render Current Frame  and selecting Internal Render to it.
Start "it" by click on the
Now do a render to "it" (see how). You should see all of your AOVs and secondary outputs show up in the catalog list.
These outputs could be used in compositing; to vary the reflectivity of our cloth or modify specific colors in our pattern, using our float cell or color cells AOVs as keys.
- Add AOV nodes in Slim.
- Add RiDisplayChannel "type name" to the RiInjection Points> Default RiOptions MEL
- Add your AOV names as outputs in the Passes > Outputs > Create Output > Custom
Project Files .rar Secondary Outputs And AOVs