O_VerticalAligner Controls

O_VerticalAligner Tab

Views to Use

From the views that exist in your project settings, select the two views you want to use to generate an occlusion mask. These views are mapped for the left and right eye.

Align

Select how to move the views to align the images.

Both Views

Move both the left and right views so that they are aligned.

Left to Right

Move the left view only to line up with the right.

Right to Left

Move the right view only to line up with the left.

Filter

Select the filtering algorithm you want to use when remapping pixels from their original positions to new positions. This helps avoid problems with image quality, particularly in high contrast areas of the frame (where highly aliased, or jaggy, edges may appear if pixels are not filtered and retain their original values).

Impulse

This option means no filtering is done. Each output pixel equals an input pixel.

Cubic

Remapped pixels receive some smoothing.

Keys

Remapped pixels receive some smoothing and minor sharpening.

Simon

Remapped pixels receive some smoothing and medium sharpening.

Rifman

Remapped pixels receive some smoothing and significant sharpening.

Mitchell

Remapped pixels receive some smoothing and blurring to hide pixelation.

Parzen

Remapped pixels receive the greatest smoothing of all filters. Use this option to prevent ringing on sharp edges.

Notch

Remapped pixels receive flat smoothing (which tends to hide Moiré patterns).

Lanczos4

This filter is good for scaling down.

Lanczos6

Remapped pixels receive some sharpening. This filter is good for scaling down and image warping.

Note:  Note that this option is not ideal for vertical alignment; instead Cubic or Parzen are recommended for this.

Sinc4

Remapped pixels receive a lot of sharpening. This filter is good for scaling down.

Output STMap

When enabled, this allows you to output an STMap along with an aligned image and disparity vectors.

Global

Select the types of alignment you want to use to vertically align the images. You can select preset options, or you can select Custom and manually define the types of alignment you want to include. See the table below for the types of alignment each preset option includes.

Preset Option

Description

Camera Correction

Focal Length

Vertical Shift

2D Rotation

Perspective Warp

Vertical Skew

Transform

Use this option to perform a 2D correction without any change in pixel aspect or skew.

 

 

 

Match Camera

Use this option to correct using a match move camera connected to the upstream O_Solver.

 

 

 

 

 

Keystone Only

Use this option to correct vertical alignment without changing the parallax.

 

 

 

 

 

Full

Use Full to include all the alignment options except Vertical skew.

 

All alignment methods concatenate. This means that if you select several alignment types, their functions are combined. You can also analyze the data to create corner pin and camera information in all methods except Vertical Skew. See the table below for a description of what each alignment type does. The alignment types are applied in the following order.

Camera correction

Correct the vertical alignment for a match-move camera connected to an upstream O_Solver. If there is no camera connected, this uses the internal camera calculated by O_Solver. The correction is refined by other alignment options that are selected.

Focal length

Align the features by calculating a 2D scale to correct focal length differences.

Vertical shift

Align the features vertically by moving the entire image up or down. Calculate a 2D vertical shift to correct a global offset.

2D rotation

Align the features vertically by rotating the entire image around a point. The center of the rotation is determined by the algorithm. This helps correct in-plane camera roll.

Perspective warp

Do a four-corner warp on the images to align them on the y axis. This may move the features slightly along the x axis. Perspective warp can help correct camera tilt as well as roll.

Note:  A perspective change can alter pixel aspect ratio and introduce pixel skew.

Vertical skew

Align the features along the y axis using a skew. This does not move the features along the x axis. Vertical skew allows you to correct keystoning without changing horizontal disparity. This varies the vertical shift across the image without changing the horizontal position of pixels. However, this may also introduce pixel skew.

Note:  If you select or deselect an alignment type after selecting a preset option, the preset Type dropdown, automatically updates to Custom.

Local Options

There are two modes you can use for vertical alignment. The Global Alignment method is on by default. Select the Local Alignment checkbox to perform a local alignment in addition to the global alignment.

Global Alignment

This applies a global image transform to align the feature matches generated by an upstream O_Solver node.

Local Alignment

This rebuilds the view(s) to remove vertical disparity calculated by an upstream O_DisparityGenerator. Use this mode to create a per-pixel correction if there are any local distortions in the mirror or lens and changes in alignment with depth.

Pre-blur

The Pre-blur control allows you to set the size of the blur applied to the disparity before performing a local alignment. To smooth out the correction across depth boundaries, increase the blur size.

Correction

The Correction control allows you to set the amount of local correction to apply between the global transform at 0 and the full correction at 1. This would be useful, for example, if you want to tone down the local distortion that is applied.

Fix Scale Options

Zoom to Prevent Black in the Frame

Select the Zoom to prevent black in frame checkbox to scale the image in order to prevent pulling pixels from outside the input image. To minimise the scale, change the Align dropdown to Both Views.

Warning:  The scale has to be applied to both images, even when aligning Left to Right or Right to Left.

Calculate Scale

The Calculate scale control allows you to calculate the scale at the current frame. If the alignment options change, the scale needs to be recalculated. You can lock the scale correction to prevent any changes by selecting the Lock scale checkbox.

Scale

The Scale control allows you to set the global scale that is applied to prevent black in the frame. You can set a key to interpolate the scale calculated at different frames.

Warning:  Animating the Scale control creates a dynamic zoom on the shot, which may not be the stereographer's original intent. In this case, it is recommended to use a static zoom from a single frame, to preserve the original intent of the shot.

Fix Offset Options

Preserve Subject Parallax

Select the Preserve subject parallax checkbox to shift the image in a way that preserves the parallax at the specified Fix Point. This requires the input to have disparity vectors. If disparity vectors do not already exists, you need to add an O_DisparityGenerator node upstream of O_VerticalAligner.

Fix Point

You can move the Fix Point to sample the input disparity and update the applied offset to preserve the parallax. View the output of O_VerticalAligner to set the Fix Point when the Output is set to Image. You can lock this to prevent any changes by selecting the Lock offset checkbox.

To change the Fix Point, drag the fixPoint widget from the bottom-left corner of the Viewer and drop it in the new position. Disparity is then recalculated according to the new Fix Point. You can also use the user matches determined by O_Solver to set the Fix Point.

Offset

You can use the Offset control to set the correction in pixels, that is applied to prevent parallax changes at the Fix Point. To interpolate the offset calculated at different frames, set a key.

Note:  Note that you can re-converge the views after you have aligned the plates to preserve depth.

Analyze Sequence

Analyze the sequence to create a corner pin or an aligned camera output. Use Analyse Sequence to create the output data in all global methods except Vertical Skew (the default). Then, you can apply the data to the Create Corner Pin, Create Camera, or Create Rig controls.

Note:  You cannot use Analyse Sequence with the Local alignment checkbox selected.

Create Corner Pin

Click this to create a corner pin representing the result of O_VerticalAligner after you have clicked Analyse Sequence. This works in all global methods except Vertical Skew.

Create Camera

If you have a pre-tracked Nuke stereo camera connected to the Camera input of the O_Solver up the tree and you click Analyse Sequence, you can then click Create Camera to create a vertically aligned camera from the analysis. This gives you a single Camera node with split controls to hold the left and right view parameters. This works in all global methods except Vertical Skew.

Create Rig

If you have a pre-tracked Nuke stereo camera connected to the Camera input of the O_Solver up the tree and you click Analyse Sequence, you can then click Create Rig to create a vertically aligned camera rig from the analysis. This gives you two Camera nodes and a JoinViews node that combines them. This works in all global methods except Vertical Skew.

Output Tab

Four Corner Pin

This represents the 2D corner pin that can be applied to the input image to create the same result as O_VerticalAligner (in all global methods except Vertical Skew). This allows you to do the analysis in Nuke, but take the matrix to a third-party application – such as Baselight – and align the image or camera there.

Transform Matrix

This provides the concatenated 2D transform for the vertical alignment. The matrix is calculated when you click Analyse Sequence on the O_VerticalAligner tab. There is one matrix for each view in the source.

Python Tab

These controls are for Python callbacks and can be used to have Python functions automatically called when various events happen in Nuke.

before render

These functions run prior to starting rendering in execute(). If they throw an exception, the render aborts.

before each frame

These functions run prior to starting rendering of each individual frame. If they throw an exception, the render aborts.

after each frame

These functions run after each frame is finished rendering. They are not called if the render aborts. If they throw an exception, the render aborts.

after render

These functions run after rendering of all frames is finished. If they throw an error, the render aborts.

render progress

These functions run during rendering to determine progress or failure.