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 containing C_CameraSolver metadata 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. The output between the GPU and CPU is identical on NVIDIA GPUs, but using the GPU can significantly improve processing performance. CaraVR supports AMD GPUs on late 2013 Mac Pro 6,1, mid 2015 Mac Pro 11,5, and and late 2016 MacBook Pro 13,3, running OS X 10.9.3 'Mavericks', or later. While, in some cases the bit-wise equality between GPU and CPU holds, for some operations there are limitations to the accuracy possible with this configuration. 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. GPU processing also requires certain NVIDIA and AMD drivers. For more information on the minimum requirements, please refer to the Nuke Release Notes available in Help > Release Notes. |
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. |
Auto |
autoConvergenceDepth |
enabled |
When enabled, the Converge control is set automatically by upstream metadata. When disabled, you can use the Converge control to manually adjust what convergence depth is in focus. |
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. |