Generates lookup tables, or LUTs, from color management nodes downstream of a CMSTestPattern node. LUTs are generated according to the size of CMSTestPattern cube size.
You can use the GenerateLUT node to create both 1D and 3D LUTs:
• 1D LUTs assume that the primary color channels (red, green, and blue) are independent, and the output for a particular primary color (for example, red) only depends on the input value of that channel (rather than the values of all three channels). For each input value, there is one output value. 1D LUTs are represented by a curve. They are useful for quickly creating an image for viewing purposes, using less processing power, but they cannot be used to adjust saturation independently of brightness.
• In 3D LUTs, the output values of each primary color channel are calculated based on the input values from all three channels (red, green, and blue). For each input value, there are three output values. This is represented by a 3D grid or cube. 3D LUTs can adjust saturation and brightness together, and are very useful for emulating a particular known look, such as Cineon.
TIP: For good visual fidelity when using 3D LUTs, it is recommended that a log colorspace is used for 3D LUT generation.
Connection Type |
Connection Name |
Function |
Input |
unnamed |
An arrangement of nodes that do the color correction you want your 3D LUT to do, preceded by a CMSTestPattern node. |
Control (UI) |
Knob (Scripting) |
Default Value |
Function |
GenerateLUT Tab |
|||
output file |
file |
none |
The path and file name of the LUT file you want to generate. |
file type |
file_type |
none |
The file format of the LUT file you want to generate. If this is set to auto (the default), Nuke guesses the format from the file name extension. The following file extensions are recognized: • .3dl - Autodesk and ASSIMILATE Scratch LUT format (3D). • .blut - Side Effects Houdini binary LUT format (3D). • .cms - Light Illusion LightSpace CMS LUT format (1D and 3D). • .csp - Rising Sun Research CineSpace LUT format (3D). • .cub - FilmLight Truelight LUT format (1D and 3D). • .cube - IRIDAS LUT format (1D and 3D). • .vf - Nuke's native LUT format used by the Vectorfield node (3D). |
1D preLUT |
|||
1D preLUT size |
lut1d |
1024 |
The size of the 1D LUT. |
style1d |
logarithmic |
Some systems assume the LUT is designed to apply to logarithmic images, others linear. Some LUT formats are assumed to encode values as either logarithmic or linear. Use this setting to get your output LUT values encoded the way your use of the LUT requires. |
|
3D LUT (These controls are only visible when you’ve selected 3dl in the file type dropdown menu.) |
|||
input bit depth (.3dl) |
bitdepth_id |
10 bit |
The bit depth to scale input values to for .3dl files. For example, a 10-bit file has values between 0 and 1023. |
output bit depth (.3dl) |
output_bitdepth_id |
input bit depth |
The bit depth to scale output values to for .3dl files. For instance a 10-bit file has values between 0 and 1023. In general this should match the input bit depth. |
clamp ouput |
clamp_output |
enabled |
Clamp 3D LUT output values to the range of 0-1. Turning this off allows superwhite values to be represented which are allowed in some packages, such as Nuke. This may cause the result to be unreadable in other packages. |
3dl file format |
format_3dl_id |
autodesk flame/smoke |
Select the format you want to use for your .3dl file. The final cube size is determined by the CMSTestPattern which generates the input. • autodesk flame/smoke - use Autodesk preferred cube sizes of 17x17, 33x33, and 65x65. • autodesk lustre - use Autodesk preferred cube sizes of 17x17, 33x33, and 65x65, and output a 3DMESH/Mesh header. • assimilate scratch - scale and offset the 3D LUT. This should be used only for legacy scratch files prior to Flame compatibility. |
Generate and Write LUT File |
generate |
N/A |
Generate the LUT file and save it to the output file location. |
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. |