Merge Node Colorspace Handling
- Where to find it:
- Main Window / Edit / Preferences / Node Graph Tab
- What is the Preference doing
- Why is the Colorspace Setting important
- What is the difference and why do I care ?
- Layers vs Nodegraph
Only available in Mari Versions below 4.7
This feature is only available in Mari Versions below Mari 4.7.
Mari 4.7 introduces native handling of Merge Node Colorspaces for the Nodegraph so the feature
is no longer necessary in 4.7 and above
What is the Preference doing
The Set Colorspace Enabled option determines the default setting of Colorspace Enabled Dropdown inside of a Merge Node,
when such a Node Type is manually created by the User inside of the Nodegraph.
By default it will be 'Enabled', which is the default Mari ships with.
Why is the Colorspace Enabled Setting important ?
Since Mari internally works in linear data it works best with 16bit input data (paint etc.).
However a lot of users prefer to work in 8bit for performance reasons, which can introduce stepping and artifacts due to maris continues conversion
to its internal 16bit linear colorspace.
To combat stepping and artifacts the Foundry introduced the Colorspace Enabled setting which changes the order of operations in which linear conversions are
The Explanation of the Colorspace Enabled dropdown from the Mari Node Reference:
When working in the layerstack Mari will automatically set this setting for the user depending on the Colorspace chosen for the channel the user is working on e.g.
- Set the dropdown to 'Enabled' on Color Channels
- Set the dropdown to 'Disabled' on Scalar/Mask Channels
When creating a merge node manually inside of the Nodegraph, Mari is not capable of detecting if you are working in a 'color' context or a 'scalar' / 'mask' context and will
keep the Merge Node Colorspace at its default setting which is 'Enabled'.
A good example video of the differences between the Colorspace Enabled and Disabled can be viewed here
What is the difference and why do I care ?
The Colorspace Enabled dropdown changes the behavior of used Blendmodes, leading to unexpected results when working with Scalar Data (e.g Roughness,
Displacements, Bumps, Normal Maps etc.)
Blend modes work based of value ranges. An example is the Overlay Blend mode.
If the colorspace dropdown is disabled we will get a result that is expected and compatible with many other
applications such as photoshop
- An overlay value of 0.5 is considered a neutral value, internally being treated as 0.0.
- An overlay value below 0.5 will darken the result
- An overlay value above 0.5 will brighten the result
If the colorspace dropdown is enabled we will get a result that produces unexpected results, that is not compatible with user knowledge about
how blendmodes work on 'scalar' values
- Both Base Layer and Blend Layer will be converted to sRGB
- The Blending will take Place
- The End Result will be converted back to Linear
The result is a noticeably different behavior of blendmodes when working with non-color data, that is not only at odds with what users have come to know from other
applications but also sometimes even produces 'broken' results, for example when blending together two Normal Maps using a 'Blend Normal Map' Blend Mode.
Using the Set Colorspace Enabled preference Nodegraph users can change the default behavior easily to bring Mari to work with Values in a familiar way.
Layers vs Nodegraph
Changing this setting will have no effect for users working within the Layerstack since Mari in this context accurately manages it itself based on the type of
channel the user is working on.
However since a lot of times when working in the Nodegraph Users are working with scalar data it can be beneficial to change mari's default behavior to have the Colorspace Enabled Dropdown disabled by default and only change it to Enabled when needed instead of having to change it every time you create a Merge Node.