C_ColourMatcher

C_ColourMatcher aims to produce a global gain-based color correction across all the views in a rig to balance out differences in exposure and white balance. It solves across all cameras to find the minimum required gain changes to ensure color similarity.

Note:  C_ColourMatcher does not compensate for color shifts not resulting from exposure- or gain-type differences. It also does not deal with gamma- or offset-type differences.

Color matching relies on solve data and should be performed before stitching the solved camera output together, so ideally, place C_ColourMatcher between C_CameraSolver and C_Stitcher.

Inputs and Controls

Connection Type

Connection Name

Function

Input

Source

A preview sequence from C_CameraSolver to color correct.

Control (UI)

Knob (Scripting)

Default Value

Function

C_ColourMatcher 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.
You should also select this if you wish to render from the command line with the --gpu option.

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 color correct the output.

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

Keying

Match 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

500

Sets the interval between keyframes for the Key All button.

Key All

addAllAnalysisKeys

N/A

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

Delete All

deleteAllAnalysisKeys

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.

Analysis

Match

matchType

Exposure

Sets the type of match to calculate:

Exposure - calculates exposure differences and corrects across all cameras.

Exposure and Colour - calculates exposure and color differences and corrects across all cameras.

Analyse

solveGainCompensation

N/A

Click to analyze the selected match type across all cameras.

Reset

deleteGainCompensation

N/A

Click to delete the calculated analysis.

Output

Gains

gainsOutput

1

Displays the gains per view once the analysis pass is complete.

Exposure

globalExposure

0

Adjusts the global exposure across all cameras.

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.

Converge

convergenceDepth

10

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

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:

Grades (split) - creates a single Grade and Exposure node containing the calculated exposure and color differences.

Grades (separate) - creates separate Grade and Exposure nodes for each view containing the calculated exposure and color differences.

OCIO CDL Transforms (split) - creates a single OCIOCDLTransform and Exposure node containing the calculated exposure and color differences.

OCIO CDL Transforms (separate) - creates separate OCIOCDLTransform and Exposure nodes for each view containing the calculated exposure and color differences.

Create

exportButton

N/A

Click to create the export specified in the export dropdown.

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

beforeRender

none

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

before each frame

beforeFrameRender

none

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

after each frame

afterFrameRender

none

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

afterRender

none

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

render progress

renderProgress

none

These functions run during rendering to determine progress or failure.