The O_DisparityGenerator node is used to create disparity maps for stereo images. A disparity map describes the location of a pixel in one view in relation to the location of its corresponding pixel in the other view. It includes two sets of disparity vectors: one maps the left view to the right, and the other maps the right view to the left.
Note: O_DisparityGenerator only requires an O_Solver node as one of its inputs if you intend to use the Alignment control. Alignment defaults to 0, but increasing it forces the disparity map to match the camera geometry to remove noise on the vertical component of disparity. You might want to do this if your plates don't contain much detail, such as bluescreen images with markers in the background or plates with a lot of featureless areas like sky.
The following Ocula nodes rely on disparity maps to produce their output:
• O_VerticalAligner (in Local Alignment mode)
• O_DisparityToDepth, and
If you have more than one of these nodes in the Node Graph with one or more of the same inputs, they might well require identical disparity map calculations. O_DisparityGenerator is a utility node designed to save processing time by allowing you to create the disparity map separately, so that the results can then be re-used by other Ocula nodes.
The final disparity vectors are stored in disparity channels, so you might not see any image data appear when you first calculate the disparity map. To see the output inside Nuke, select a disparity channel from the channel controls in the top-left corner of the Viewer. Examples of what a disparity map might look like using the RGB and R channels, after adjusting the Viewer gain and gamma controls, are shown below. As you can see, the RGB layers on the left are harder to read than the single R channel.
In general, once you have generated a disparity map that describes the relation between the views of a particular clip well, it will be suitable for use in most of the Ocula nodes. We recommend that you insert a Write node after O_DisparityGenerator to render the original images and the disparity channels as a stereo .exr file (sometimes referred to as .sxr). This format allows for the storage of an image with multiple views and channel sets embedded in it. Later, whenever you use the same image sequence, the disparity map is loaded into Nuke together with the sequence and is readily available for other Ocula nodes. For information on how to render disparity in to an .exr file, see Writing Disparity into a Clip.
If you have a CG scene with camera information and a z-depth map available, you can also create disparity maps using the O_DepthToDisparity node. For more information, see DepthToDisparity.