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. 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.
|
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. |