C_Stitcher

C_Stitcher uses Ocula-style disparity vectors to line up matched features in the overlap areas between overlapping cameras and then blends the results to generate a spherical latlong.

Note:  C_Stitcher requires a C_CameraSolver upstream to generate an image.

Inputs and Controls

Connection Type

Connection Name

Function

Input

Source

A preview sequence from C_CameraSolver to stitch into latlong space.

Control (UI)

Knob (Scripting)

Default Value

Function

C_Stitcher Tab

Local GPU

gpuName

N/A

Displays the GPU used for rendering when Use GPU if available is enabled. Local GPU displays Not available when:

Use CPU is selected as the GPU device in the Preferences.

no suitable GPU was found on your system.

it was not possible to create a context for processing on the selected GPU, such as when there is not enough free memory available on the GPU.

You can select a different GPU device, if available, by navigating to the Preferences and selecting an alternative from the GPU Device dropdown.

Note:  Selecting a different GPU requires you to restart Nuke before the change takes effect.

Use GPU if available

useGPUIfAvailable

enabled

When enabled, rendering occurs on the Local GPU specified, if available, rather than the CPU.

Note:  Enabling this option with no local GPU allows the script to run on the GPU whenever the script is opened on a machine that does have a GPU available.
You should also select this if you wish to render from the command line with the --gpu option.

See Windows, Mac OS X and macOS, or Linux for more information on the GPUs Nuke supports.

Input

Projection

inputProjectionType

Default (source)

Sets the input projection type:

Default (source) - the source input is connected to a C_CameraSolver and uses the images and metadata to construct the latlong output.

Latlong - the source input is connected to a panorama that has already been converted to latlong space.

Stitch

Enable Warps

enableWarps

enabled

When enabled, the linked cameras displayed on the Cameras tab are warped using the vectors generated at the keyframes specified.

When disabled, the input is not warped.

Override Cameras

overrideCameras

disabled

When enabled, you can customize which cameras and links are used to generate the stitch on the Cameras tab.

When disabled, all cameras and links are used to generate the stitch.

Enable Stereo Stitch

enableStereo

disabled

When enabled, C_Stitcher creates default left and right views and then uses on omni-directional rig model to generate a stereo stitch automatically.

Note:  This automatic stitch method requires a greater amount of overlap between adjacent cameras than regular stitching.

When disabled, C_Stitcher generates a monoscopic stitch using all cameras.

Keying

Stitch Keys

 

 

Key number

1

Displays the total number of stitch keyframes added to the sequence.

Key count

1

Displays the current stitch keyframe.

N/A

N/A

Click to jump to the previous keyframe.

N/A

N/A

Click to jump to the nextkeyframe.

N/A

N/A

Click to add a keyframe at the current frame in the sequence.

N/A

N/A

Click to delete the keyframe at the current frame in the sequence.

Step

keyStep

30

Sets the interval between keyframes for the Key All button.

Key All

addAllStitchKeys

N/A

Click to add keyframes to the sequence at intervals set by the Step control.

Delete All

deleteAllStitchKeys

N/A

Click to delete all keyframes from the sequence.

Import

importAllKeys

N/A

Click to import existing keyframes automatically from C_CameraSolver, C_ColourMatcher, or C_Stitcher nodes in the current script.

Note:  Importing keyframes deletes any existing keyframes.

Output

Format

outputFormat

dependent on Compositing environment Project Settings

Sets the output resolution passed down the node tree.

Typically, you would set the format globally in the Project Settings, but this control overrides the global setting.

Blend

blendType

Alpha

Switches between the default Alpha mode and the Multi-Band modes:

Multi-Band - can improve stitch results by matching low frequency color changes over the course of the blend region.

Spherical Multi-Band - can improve stitch results at the poles, looking up or down.

Note:  Multi-Band blending can be slower to process than the default Alpha mode.

Suppression

blendLevel

0.125

Controls the size of the smallest level of blending applied to views.

Lower values can help balance color and exposure between blended images, higher values are closer to the result from the default Alpha blending mode.

Note:  Size is only active when Blend is set to Multi-Band or Spherical Multi-Band.

Expand

fullBlend

enabled

When enabled, blending is expanded outside the alpha mask used to blend images together, which can help to fill in missing areas in views.

Note:  Expand is only active when Blend is set to Multi-Band or Spherical Multi-Band.

Filter

resampleType

Cubic

Sets the filtering algorithm used during stitching. As a general guide line, the filters increase in quality at the cost of processing time as you move down the list. Bilinear filtering is the fastest and Lanczos the sharpest.

Converge

convergenceDepth

10

Sets the depth at which the cameras overlap, allowing you to bring particular areas in the scene into focus.

Convergence can be used to align input images before stitching to reduce vector warp artifacts.

Export

Export menu

exportMenu

STMaps (split)

Sets the export nodes to add to the Node Graph:

STMaps (split) - creates a single STMap containing a stitch_map channel for all views in the stitch.

STMaps (separate) - creates a separate STMap, containing a stitch_map channel, for each view in the stitch.

Manual STMap Stitch (split) - creates a workflow to distort the original inputs through a single STMap containing a stitch_map channel for all views in the stitch.

Manual STMap Stitch (separate) - creates a workflow to distort the original inputs through separate STMaps, containing a stitch_map channel, for all views in the stitch.

PPass (split) - creates a single C_STMap containing a ppass_map channel for all views in the stitch.

PPass (separate) - creates a separate C_STMap node, containing a ppass_map channel, for each view in the stitch.

Manual PPass Stitch (split) - creates a workflow to distort the original inputs from C_CameraSolver through a single C_STMap containing a ppass_map channel for all views in the stitch.

Manual PPass Stitch (separate) - creates a workflow to distort the original inputs from C_CameraSolver through separate C_STMaps, containing a ppass_map channel, for all views in the stitch.

Create

exportButton

N/A

Click to create the export specified in the export dropdown.

Cameras Tab

Override Cameras

overrideCameras

disabled

When enabled, you can customize which cameras and links are used to generate the stitch.

When disabled, all cameras and links are used to generate the stitch.

Cameras

camKnob

N/A

Allows you to customize which cameras and links are used to generate the stitch. You can manually toggle individual cameras and links on and off or use the Preset dropdown.

Preset

camPreset

All

Allows you to quickly select and deselect all cameras and links in a stitch.

Toggling individual cameras and links on and off automatically sets Preset to Custom.

Stereo Tab

Enable Stereo Stitch

enableStereo

disabled

When enabled, C_Stitcher creates default left and right views and then uses on omni-directional rig model to generate a stereo stitch automatically.

Note:  This automatic stitch method requires a greater amount of overlap between adjacent cameras than regular stitching.

When disabled, C_Stitcher generates a monoscopic stitch using all cameras.

Left View

leftView

left

Controls which Nuke view is output as the left and right views.

Right View

rightView

right

Eye Separation

eyeSeparation

0.065

Determines how far apart the two views are, from a viewer's perspective. If you set the Eye Separation, or interpupillary distance (IPD), too low, objects in the scene appear crushed horizontally, but raising it too high can leave holes in the stitch.

The IPD is measured in the same units as the Rig Size control in the upstream C_CameraSolver properties, so adjust it accordingly.

Falloff Type

eyeSeparationFalloffType

Cosine

Determines how pole merging is handled:

None - no IPD adjustment occurs towards the poles.

Linear - the views are merged gradually from the Start Angle specified toward the pole. Increasing the angle moves the start point toward the poles.

Cosine - the views are merged smoothly toward the poles. Reducing the Separation Falloff shifts the transition in depth towards the poles.

Start Angle

separationFalloffStartAngle

0

Sets the point at which falloff begins when Falloff Type is set to Linear.

Increasing the value pushes the merge point toward the poles, a value of 90 disables pole merging entirely.

Separation Falloff

separationFalloff

1

Sets the rate off falloff for the eye separation towards the poles when Falloff Type is set to Cosine.

A value of 1 produces smooth merging toward the poles for the left and right views.

Reducing the value pushes the merge point toward the poles, a value of 0 disables pole merging entirely.

Vectors Tab

Enable Warps

enableWarps

enabled

When enabled, the linked cameras displayed on the Cameras tab are warped using the vectors generated at the keyframes specified.

When disabled, the input is not warped.

Vector Detail

vectorDetail

0.4

Controls the density of the calculated vectors. Higher values pick up finer disparity changes, but take longer to calculate.

Strength

strength

1

Sets the tolerance applied when matching pixels between matched cameras.

Higher values allow you to accurately match similar pixels in one image to another, concentrating on detail matching even if the resulting vectors are jagged.

Lower values may miss local detail, but are less likely to provide you with the odd spurious vector, producing smoother results.

Consistency

consistency

1

Sets how accurately the same points between matched cameras are mapped to each other.

Increase the value to encourage the vectors to match.

Iterations

maxIteration

8

Controls how may times the vectors are generated based on the previous iteration.

Increasing this control produces smoother vectors, but increases processing time.

Warps

warps

4

Controls the range of pixel comparison performed during generation.

Increasing this control produces smoother vectors, but increases processing time.

Temporal Window

temporalWindow

0

Sets the number of frames to either side of keyframes to perform temporal averaging over.

Increasing this control produces smoother vectors, but significantly increases processing time.