Compositing Nodes#
Clarisse has been designed to offer a set of specialized nodes meant to eliminate the mandatory back-and-forth between the lighting and a compositing application needed to visualize the render in context when working with layers, live action plates and AOVs.
Clarisse compositing engine has also been designed with quality control in mind, so that lighting artists can make sure final compositing artists have all the different render passes/AOVs they need to reconstruct the beauty in the compositing package they use for example.
Note
Clarisse is not designed to replace fully-fledged compositing software packages. However, depending on the complexity of your compositing needs (if they are relatively simple), Clarisse could replace the compositing software you are using.
Compositing nodes are a set of nodes related to compositing. Most of these nodes process something from input connection(s) and output an image. The 3 most common compositing nodes you will be likely using are Image Node Read which reads an image from disk, Image Node Render which renders a Render Scene and Image Node Write which write an image to disk. With the exception of a few nodes such as Image Node Write, that inherits from the base class Process, most compositing nodes inherits from the base class Image Node.
New to Clarisse?
In Clarisse, items are always instances of a class as you would find in an object oriented language. When you create a node in Clarisse, the node itself is an instance of a class. The class (which can inherit from a base class too) defines node attributes, their default values, node behavior and data. A class can be seen as the type of the item/node you create if it makes more sense to you. For more information about classes in Clarisse, please refer to Contexts, Objects and Classes
Common Attributes#
Attribute | Description |
---|---|
Thumbnail | Enable/Disable the display of the node thumbnail in the Build View. Please note that node thumbnails are displayed in the Build View only when nodes are being evaluated or when they are already evaluated. Node thumbnails don’t trigger evaluations. |
Thumbnail Size | Set the size of the thumbnail in the Build View. Note you can change the thumbnail size directly in the Build View by resizing the actual thumbnail. |
Action | Description |
---|---|
Clear Cache | Clear the internal image cached by the node. If you clear the image cache, the node will request an evaluation when displayed by the Image View. |
Nodes inheriting from Image Node class can all be displayed by the Image View. To display an Image Node in the Image View, either directly drag its output to the Image View or while hovering in the Build View press X to initiate a link and plug it to the Image View Node or alternatively press 1, 2, 3, 4 to automatically plug it to the desired Image View slot.
!!! Tip New to Clarisse? The Image View in Clarisse is the dedicated user interface element that displays images or renders in your builds. When the current node isn’t evaluated (for example an Image Node Render or an Image Node Read), the Image View will automatically request an evaluation to display it. For more information about the Image View, please refer to Image View.
Image Node Constant#
The Image Node Constant, generates an image color matte.
Attribute | Description |
---|---|
Color | Define the color of the image. |
Resolution Mode | When set to Use Project Preferences, the resolution of the image is defined by the default resolution set in the preferences. When set to Custom, the resolution is defined by Resolution Preset. For more information please refer to Rendering in Clarisse > Render Resolution. |
Resolution Preset | Define the image resolution using a resolution preset. Note that it is possible to specify a custom resolution presets file using the Preferences Panel. |
Resolution | Define a custom resolution for the image. |
Image Node Render#
The Image Node Render is used to render an input Render Scene. In other words, the Image Node Render translates a input 3D Scene to a 2D image through rendering.
Attribute | Description |
---|---|
Scene | Input Render Scene to render. |
Deep Rendering#
It is possible to compute Deep data while rendering in output to output a Deep EXR. By default, deep rendering is disabled. It can be enabled using Enable Deep Rendering attribute.
Enable Deep Rendering Mode | Description |
---|---|
None | Disable Deep Rendering (default) |
Interactive Only | Deep Rendering is only enabled during interactive session of Clarisse. |
Command Line Only | Deep Rendering is only enabled when rendering on CNode. This should be the most common use. |
Always | Always Enable Deep Rendering. |
Deep Rendering Options#
You will find quite a few attributes to control deep rendering.
Attribute | Description |
---|---|
Deep Channels | Define which Deep channels should be stored in the deep buffer. By default, the deep rendering stores RGBA for each fragment. It is possible however to only store a deep alpha buffer by setting Deep Channels to Alpha. |
Deep Raw Samples | When enabled, the deep buffer is not post processed so that deep samples are not merged and alpha blended. |
Deep Data Precision | Set the precision of the Deep Channels which can be set to either 16-bit Float or 32-bit Float. This settings doesn't affect Depth Channels which are always stored in 32-bit |
Merge Threshold | Set the minimum distance between samples before they are merged. |
Max Sample Count | Set the maximum number of samples per pixel. By default this value is set to Unlimited which means that all samples are stored. When setting a maximum number of samples, samples farthest to the camera are discarded. |
Deep Output#
Deep Render output is performed using a process Image Node Write Deep on which you connect the Image Node Render. For more information, please refer to Image Node Write Deep.
Image Node Write#
Unlike most compositing nodes, an Image Node Write is actually a process node. The role of the Image Node Write process is to save an input image to disk. To learn more about processes and rendering in using the build assembly workfow, please respectively refer to process nodes and setting up renders.
To write an input Image Node in an interactive session, you have to select the Image Node Write and press Run Process in the Attribute Editor.
Note
While processes can be run directly in Clarisse, they are usually executed by CNode. To learn more about executing a process with CNode please refer to Executing a process with CNode
Attribute | Description |
---|---|
Input | Input Image Node to write to disk |
Open EXR Output Compression Mode | Set the OpenEXR compression mode when the image format is set to Open EXR. |
Filename | Set the output filename. Use # to specify the number of digits of the sequence. For example seq_####.exr |
Format | Set the output file format |
Metadata | Additional Metadata that is stored in the image file such as an EXR. Note that not all image format supports Metadata. |
Image Sequence File Pattern#
The Filename attribute supports a special tag # to format the output image sequence pattern. This special tag allows you to specify where the current frame should be located in the output image filename. This tag is also used to format the number of digits of the output frame number.
For example:
/path/to/my/seq.##
outputs to/path/to/my/seq.01
for frame 1 and/path/to/my/seq.159
for frame 159/path/to/my/seq_####_final
outputs to/path/to/my/seq.0001
for frame 1
Note
Please note that #####
is automatically appended at the end of the filename if it is missing.
Image Node Write Deep#
Important
Clarisse will display an error message when deep rendering isn't properly set on the input Image Node Render.
Note
While processes can be run directly in Clarisse, they are usually executed by *CNode. To learn more about executing a process with CNode please refer to Executing a process with CNode
Attribute | Description |
---|---|
Input | Input Image Node Render to output the deep buffer to disk |
Open EXR Output Compression Mode | Set the OpenEXR compression mode when the image format is set to Open EXR. |
Filename | Set the output filename. Use # to specify the number of digits of the sequence. For example seq_####.exr |
Image Sequence File Pattern#
The Filename attribute supports a special tag # to format the output image sequence pattern. This special tag allows you to specify where the current frame should be located in the output image filename. This tag is also used to format the number of digits of the output frame number.
For example:
/path/to/my/seq.##
outputs to/path/to/my/seq.01
for frame 1 and/path/to/my/seq.159
for frame 159/path/to/my/seq_####_final
outputs to/path/to/my/seq.0001
for frame 1
Note
Please note that #####
is automatically appended at the end of the filename if it is missing.
This node status bar displays useful information in the Build View.
Status Bar | Description |
---|---|
Red | Input Image Node Render deep rendering is disabled. |
Yellow | Input Image Node Render deep rendering is set to render when rendering from command-line using CNode. Running the process during an interactive session of Clarisse will fail. |
Image Node Read#
The Image Node Read is used to read a still image or a sequence of images from disk. While it may sound as its main purpose is be to bring live action plates into your compositing graph, it does actually a lot more than its obvious usage.
Attribute | Description |
---|---|
Input | Input Image Node Write process. |
Input Mode | Control how the node should read the image. |
Sequence Mode | Set if the read node is working on a still or a sequence or images. |
First Frame | Set the first frame of the sequence |
Last Frame | Set the last frame of the sequence |
Frame Offset | Set the sequence frame offset |
Pre Behavior | Set the pre-behavior of the sequence |
Post Behavior | Set the post-behavior of the sequence |
Filename | Set the filename of the image or sequence. Use # to specify the number of digits of the sequence. For example seq_####.exr |
If you carefully look at Image Node Read attributes, you can notice that it can take as Input an Image Node Write process. It may look curious at first glance but it is actually a key feature to improve the flow of your builds and add the support of image disk caching.
Consider the following example. Let’s say you have an Image Node Render representing a render layer that you’d like to save to disk. Naturally, you would connect it to an Image Node Write. However, there’s a good chance that you would like to merge it with others in order to get a full precomp of your layers. As a result you node graph would look like the following one.
Let’s say that you already partially or entirely rendered your render layers. You may want your compositing graph to directly read the rendered frames from disk instead of having the renderer re-rendering them and the read node allows just that. This is where the Input Image Node Write ability of the Image Node Read becomes very handy. Let’s consider the following graph.
As soon as you connect an Image Node Write to a Image Node Read, you can notice that the Filename attribute of the node is greyed out in the Attribute Editor. By default, the read node will load the image file if it exists on disk, otherwise it requests an evaluation to the image node connected to the write node. The behavior of the read node can directly controlled using its Input Mode attribute.
Input Mode | Description |
---|---|
Force Evaluation | Always evaluate the image node connected to the Write node even if the image file is on disk. |
Evaluate Missing (default) | Evaluate the image node connected to the Write node that is connected to Input if the image file is missing from disk. |
Read From Disk | The read node will always read the image from disk and ignore any Write node connected to Input. |
This workflow is very handy as the flow of your graph is very elegant while benefiting from a controllable image disk caching feature.
Image Node Reformat#
The Image Node Reformat is used to resize an input image to a new resolution.
Attribute | Description |
---|---|
Resolution Preset | Set the output resolution from the list of resolution presets. |
Resolution | Set the output resolution of the image |
Resize Type | Set how the image should be resized |
Center | If enabled, resize the image from its center when Resize Type is different than Distort. |
Filter | Set the image sampling filter used to resize the image. |
Resize Type#
Since there's no single way to resize an image, the Reformat node offers multiple ways to resize the input image.
Type | Description |
---|---|
Width | Resize the image so that the width is entirely included in the output image |
Height | Resize the image so that the height is entirely included in the output image |
Fit | Resize the image so that the its smallest side (width or height) fills the output width or height. The longest side is scaled accordingly to preserve the aspect ratio of the input image. |
Fill | Resize the image so that the its longest side (width or height) fills the output width or height. The smallest side is scaled accordingly to preserve the aspect ratio of the input image. |
Distort | Resize the image without preserving the aspect ratio of the input image. |
Filter#
It is possible to apply a filtering algorithm to resample the pixels of the resized image.
Type | Description |
---|---|
Nearest Neighbor | Retreive the original pixel value without filtering |
Box | Perform a box average of the original pixel values |
Bilinear Filtering | Perform a bilinear interpolation of the original pixel value |
Bicubic Filtering | Perform a bicubic interpolation of the original pixel value |
Image Node Color Space#
Clarisse internally works in linear space. This means that all input images should be transformed to linear prior any compositing operations. The Image Node Color Space allows to transform the color space of input Image Node. For more information about color management in Clarisse please refer to Color Management.
Attribute | Description |
---|---|
Input Color Space | Define the input color space of the input image. |
Output Color Space | Define the color space of the input image will be transformed into. |
For example, unlike EXRs which are almost always stored in linear, PNGs are likely to be encoded in sRGB. In other words, PNGs must be transformed to linear so that compositing operations and display looks are applied correctly. In that case, you must plug your Image Node Read to an Image Node Color and set Input Color Space to sRGB and Output Color Space to linear.
Image Node Unmult#
This Image Node Unmult divides (unmultiplies) RGB channels of the input image by the alpha.
if (a > 0) {
r = r / a;
g = g / a;
b = b / a
}
Image Node Premult#
This Image Node Premult multiplies RGB channels of the input image by the alpha.
if (a > 0) {
r = r * a;
g = g * a;
b = b * a
}
Image Node Merge#
The Image Node Merge, merges two or more Image Nodes resulting in a new image. This node is typically used to merge render layers together or to merge foreground/background live action plates to 3D renders.
Attribute | Description |
---|---|
A | Define the A image. By default A is the foreground. Note that you can stack multiple A inputs. |
B | Define the B image. By default B is the background |
Mask | Specify a mask on which the operation is performed |
Window | Define the resulting image window in the event the image window of the inputs mismatch. |
Merge Mode | Define the type of merge operation performed by the node. |
Alpha | Specify how resulting alpha should be computed. |
Mix | Specify the weight of the merging operation. |
Pass Through | Enable pass through. If enabled the Merge node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Stacking Multiple A Inputs#
It is possible to specify multiple A inputs. In that case additional A inputs are considered on top. For example A #1 is under A #2 which is under A #3 etc… In other words looking at the Attribute Editor, the top most input A is the last entry of the A list.
read2
is the top most input.read2
is applied on top ofread1
Merge Operation Mode#
The type of merge operation can be controlled using the Merge Mode attribute. By default the Merge node performs an A over B operation.
Merge Mode | Description |
---|---|
Over | Perform A over B according to the alpha of A. |
Disjoint Over | Perform A over B according to the alpha of A except that if a pixel is partially covered by both A and B, the operation assumes the two inputs do not overlap. This operation removes most seams that appear when merge images have overlapping holdouts. |
Conjoint Over | Perform A over B according to the alpha of A except that if a pixel is partially covered by both A and B, the operation assumes A completely overlaps B. |
Add | Add A to B. |
Subtract | Subtract B to A. |
Multiply | Multiply A to B. |
Divide | Divide A by B. |
Screen | Perform of screen operation |
Minimum | Minimum between A and B |
Maximum | Maximum between A and B |
Resulting Alpha#
By default, the merge node merges the input alphas together using the merge operation specify by Merge Mode. However, it is possible to change this default behavior by using the Alpha attribute.
Alpha | Description |
---|---|
Merge | Merge input alphas together using the merge mode operation. |
Keep A | Keep alpha from input A only |
Keep B | Keep alpha from input B only |
Varying Input Image Window Behavior#
You may have input images with different image window sizes, in that case the merge node resulting image window is, by default, an union of all input image windows. In other words, the resulting image window will grow to the input image window maximum extent. However, you may want to change this behavior and in that case you can use the Window attribute.
Window | Description |
---|---|
Union | Resulting image window is the union of all input image windows. |
Keep A | Restrict the output image window to input A image window |
Keep B | Restrict the output image window to input B image window |
Intersection | Resulting image window is the intersection of all input image windows. |
Image Node Grade#
The Image Node Grade is used to perform basic grading operations on the input image.
Attribute | Description |
---|---|
A | Define the input A image. |
Black Point | Set the black point of the input image. |
White Point | Set the white point of the input image. |
Gamma | Apply gamma correction on the input image. |
Exposure | Control the exposure of the input image. |
Pass Through | Enable pass through. If enabled the node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Image Node Reorder#
The Image Node Reorder is used to redirect an image layer to an another one. This node is meant to reshuffle image layers and image channel layers.
Attribute | Description |
---|---|
A | Define the input A image. |
Image Layer Source | Define the name of the source image layer |
Image Layer Destination | Define the name of the destination image layer |
Destination Channel Order | Set the order of the destination image layer |
Inherit Input Image Layers | Set if input image layers should be inherited to the output image or not. |
Pass Through | Enable pass through. If enabled the node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Reshuffling Image Channel Layers#
Using Destination Channel Order it is possible to reshuffle the source channel layer to the destination one using the following characters:
Character | Description |
---|---|
r |
1st channel of the incoming image layer. Usually the red component. |
g |
2nd channel of the incoming image layer. Usually the green component. |
b |
3rd channel of the incoming image layer. Usually the blue component. |
a |
4th channel of the incoming image layer. Usually the alpha component. |
0 |
set the channel to 0 |
1 |
set the channel to 1 |
Examples:
Value | Description |
---|---|
rrrr |
Set all the destination image layer channels to the value of 1st channel of the source image layer. |
rgba |
Do nothing |
rgb1 |
Fill the destination image layer 4th channel by a constant 1 |
rgb0 |
Fill the destination image layer 4th channel by a constant 0 |
1111 |
Fill all the destination image layer channels by 1 |
r |
Equivalent to r000 |
Image Node Multiply#
Multiply the input image by a specified color.
Attribute | Description |
---|---|
A | Define the input A image. |
Color | Define the color to multiply to input A. |
Pass Through | Enable pass through. If enabled the node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Image Node Blur#
The Image Node Blur, blurs the input image.
Attribute | Description |
---|---|
A | Define the input A image. |
Filter | Specify the filter used to perform the blur |
Size | Specify the size of the kernel in pixels |
Threshold | Lower this value if square artefacts appears when in Gaussian. |
Pass Through | Enable pass through. If enabled the Merge node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Blur Filter Type#
Filter | Description |
---|---|
Box | Perform a fast box blur |
Gaussian | Perform a gaussian blur |
Image Node Diff#
The Image Node Diff, return a specified color if the difference between input A and B is higher or equal to a specified threshold. This node is extremely useful when comparing two images together. For example, you can use this node for quality control to see if the beauty you reconstructed using AOVs perfectly matches the rendered beauty pass.
Attribute | Description |
---|---|
A | Define the input A image. |
B | Define the input B image. |
Window | Define the resulting image window in the event the image window of the inputs mismatch. |
Background Mode | Define the color of the background when the difference is lower that the specified threshold. |
Background Color | Set the background color when Background Mode is set to Use Background Color. |
Difference Threshold | Set the threshold for which the node should display Difference Color when performing the difference operation. |
Difference Color | Set the resulting output color when the difference between A and B is higher than the specified threshold. |
Pass Through | Enable pass through. If enabled the node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Background Mode#
Using the Background Mode attribute you can control the color that is returned when the difference between A and B is lower than the Difference Threshold.
Background Mode | Description |
---|---|
Use Background Color | Return the color set in Background Color. |
A | Return the color in A |
B | Return the color in B |
=== "Background Color (default)
Varying Input Image Window Behavior#
You may have input images with different image window sizes, in that case the resulting image window is, by default, an union of all input image windows. In other words, the resulting image window will grow to the input image window maximum extent. However, you may want to change this behavior and in that case you can use the Window attribute.
Window | Description |
---|---|
Union | Resulting image window is the union of all input image windows. |
Keep A | Restrict the output image window to input A image window |
Keep B | Restrict the output image window to input B image window |
Intersection | Resulting image window is the intersection of all input image windows. |
Image Node Offset#
The Image Node Offset, offsets the input image in X and Y. Please note that the offset node doesn’t perform subpixel transformations.
Attribute | Description |
---|---|
A | Define the input A image. |
Offset X | Specify the number of pixels the input image should be offset in X |
Offset Y | Specify the number of pixels the input image should be offset in Y |
Pass Through | Enable pass through. If enabled the node returns the input specified in Master Input |
Master Input | Define which input should be returned by the node if Pass Through is enabled |
Image Node Optix Denoiser#
The Image Node Optix Denoiser denoises an input render image using NVIDIA OptiX Denoiser. This node requires a NVIDIA based graphics card. For more information about the denoiser its hardware specifications please refer to Optix Denoiser.
Attribute | Description |
---|---|
Strength | Control the strength of the denoiser output. It basically performs an over operation from the denoised output over the input image. When set to 100% you get the full output from the denoise image. When set to 0% you get the original input image. |
Use Albedo | Use the albedo AOV to guide the denoiser to improve the results. Note that sometimes this can introduce some artifacts leading to an image degradation. |
Use World Normal | Use the world_normal AOV to guide even further the denoiser. Note that you can only enable normals if the Use Albedo is enabled. |
Albedo AOV | Choose the name of the image buffer you wish to use as albedo |
World Normal AOV | Choose the name of the image buffer you wish to used as world normal |