Q100327: How do Nuke's internal "colorspaces" work?
This article explains how Nuke's "colorspaces" work, and why these are different from standardised colorspaces such as The Academy Color Encoding System (ACES).
When you use Nuke's internal color management system, you can create and select different LUTs to use for various file types (8-bit, log files, etc.), as shown below:
Then when reading in an image, Nuke will set the "colorspace" for the Read node to be the one defined for that image type in the Project Settings.
In the example below, reading in a 8-bit .jpg image will have the "colorspace" set to default (sRGB) as it is controlled by the 8-bit files space in the color management settings shown above.
However, Nuke's "colorspace" isn't a standard colourspace.
As discussed in article Q100328: What is a Colourspace?, a colourspace is a set of parameters which define the colour capabilities of a particular device or stored in a digital file, generally outlined by a set of three colour primaries and a white point.
Nuke's internal color management does not define these primaries and white point, instead they are driven by a colour transform from one colourspace to another colourspace. This is because Nuke relies on the Grassman's Law principle of additive colour mixture, more information about which can be found here:
What this means is that the primaries don't matter for any of the operations Nuke does, provided they are consistent. Switching between "colorspaces" involves a linear operation with a matrix, which through a linear transfer function preserves the linearity required when modelling the accumulation or attenuation of light.
This also allows users to mix a variety of images from various colourspaces as they would be only having linear based colour transforms applied to them.
Nuke's working space is locked to linear in order for it to be able to obey Grassman's Laws.
Using Nuke's LUTs
Nuke's internal color management converts between different "colourspaces" using LUTs (Look Up Tables).
A LUT defines a transformation which is the difference of the pixel values between the reference colourspace (linear for Nuke) and another colourspace, in the example below from linear to sRGB.
You would apply the above sRGB curve to a linear image in order to get the sRGB result.
If you wanted to go from an sRGB image to linear, you would then apply the inverse operation of the transform:
More information about how LUTs work can be found here: http://www.cambridgeincolour.com/tutorials/gamma-correction.htm
Per the above, a standard basic workflow for using colourspaces in Nuke would be:
A more indepth description of how to use colourspaces in Nuke can be found in this article: Q100319: How to use colorspaces in Nuke?
We're sorry to hear thatPlease tell us why