Rendering with multiple cameras, typical of stereoscopic setups, requires multiple render output channels/AOVs with specific cameras assigned to each. We will show multi-cam rendering through a left/right stereo configuration, with several AOVs being output interactively and to disk for each eye.
Scene setup in Katana proceeds as usual. If you have previously created your cameras and brought them in (perhaps through Alembic caches), then you will not have anything extra to do. Otherwise, when you create your cameras, be sure to create both a left and a right camera representing each stereoscopic eye:
Resulting in this simple scene:
In this case, only the left eye is used for rendering (set as the main camera in "RenderSettings_initial".
AOV Channel Setup
After the initial render settings, you should set up any AOVs that you want to be available in both stereoscopic eyes. These are created with the
ArnoldOutputChannelDefine node. For example, adding both direct diffuse and indirect diffuse channels might have the following settings:
Note that the filename parameters, while set, don't actually have any effect; Katana will place those output files elsewhere. The light path expressions (new to Arnold 5) control the light that is captured in the particular channel, and each channel will be available for any render output (and camera) later on.
Next, create one
RenderOutputDefine node per channel per camera; e.g., in this case, there will be two for the primary RGBA output (left eye, right eye), two for the direct diffuse, and two for the indirect diffuse, for a total of six. Here are the settings for the direct diffuse, left eye:
Note that the camera is explicitly set on this output.
In order to get all of the left eye / right eye outputs into the monitor, they must be included in a
RenderSettings node after all of the outputs have been defined. The only changes that need to be made are to include all of the outputs that are now available:
The camera that was previously set in the
cameraName parameter will be ignored because each output has its own camera. The
interactiveOutputs parameter allows you to control which outputs actually show up in the monitor, in this case all AOVs for both eyes will be available, and can even be viewed as rendering progresses. When rendering to disk, all outputs will be written regardless of the interactive output settings.
An example scene is available here producing the following outputs interactively. Arnold will automatically render each eye in turn, producing three AOVs per eye. The time spent in setup only happens once, resulting in overall faster renders. Switching between the same AOV but left and right eyes will demonstrate the ocular distance between the eyes.