Color Management

Mari uses OpenColorIO for color management. All of the colorspaces in Mari, whether those shipped with the application or custom colorspaces loaded during project creation, are defined in OCIO config files.

Depending on the OCIO config file that you are working with, there are a number of colorspace options and roles (aliases to colorspaces) that you can set in Mari. There are also Automatic options, which change depending on what file type you are working with. When you've selected the Automatic option the colorspace that Mari has set for it is listed in brackets.

Changes to a project's colorspace cannot be undone in Mari. You can change the colorspace back to its previous setting manually or use the reset button to restore it to the default, but you cannot undo any colorspace changes in the History View palette.

Note:  Refer to the OpenColorIO website at http://opencolorio.org/ for additional information on OCIO colorspaces and roles.

Article:  Read Q100362: Optimising your OCIO config for GPU Accelerated Color Management if you have your own custom OCIO configurations.

Colorspaces

The colorspaces are set in the OCIO config file. Mari looks to this file for the colorspaces that are listed and provides these options in all the Colorspace dropdowns available. Depending on which of the default config files that you select for your project, Mari offers a number of default colorspaces.

Mari ships with four config files: aces, nuke-default, spi-anim, and spi-vfx. There is also a Custom option that allows you to choose your own config file, from a designated place on your machine or network. If you set up a Custom config, Mari references this for colorspaces and roles, just as it would a shipped config file. However, these must be set up properly, with colorspaces and roles defined according to the OCIO standard, in order to work correctly.

Though there are four config files that are shipped with Mari, this section only covers the nuke-default colorspaces. However, brief descriptions of the other config files are listed below:

The aces config file is a color profile with a color image encoding system proposed by the Academy of Motion Picture Arts and Sciences that allows for a fully encompassing color accurate workflow, with "seamless interchange of high quality motion picture images regardless of source".

The spi-anim OCIO config file is a color profile that is in use at Sony Pictures Imageworks, and is suitable for use on animated features.

The spi-vfx OCIO config file is a color profile that is in use at Sony Pictures Imageworks, and is suitable for use on visual effects work.

The nuke-default OCIO config file corresponds to the default Nuke color configuration. In this way, if you are using both Mari and Nuke in your pipeline, you can ensure that the color profiles match across applications. The default colorspaces that are defined in the config file are:

linear

sRGB

sRGBf

rec709

Cineon

Gamma1.8

Gamma2.2

Panalog

REDLog

ViperLog

AlexaV3LogC

PLogLin

SLog

raw

 

Roles

The roles are also set in the OCIO config file. Mari looks to this file for the roles that are listed and provides these options in all the Colorspace dropdowns available. Roles are used by Mari to perform a task-specific color transform without requiring you to select a colorspace by name, and they appear in all of the colorspace-related dropdowns. Depending on which of the default config files that you select for your project, Mari offers a number of default roles.

Though there are four config files with defined roles that are shipped with Mari, including the nuke-default roles.

Mapping Roles in the OCIO Config File

The OCIO config file is used to assign colorspaces to the roles that are listed in the Project Settings Dialog. . To do this, each setting has a unique role name for use in the OCIO config file.

For example, to set the Color Monitor colorspace, you would set the OCIO role name to mari_monitor and specify the preferred colorspace. For example, to set Color Monitor to sRGB, add the following entry in the roles section of the OCIO config:

mari_monitor: sRGB

This can also be done using a Python script, where a target enumerator is used to refer to the role. However, the addition of OCIO role names make the process much easier.

If no colorspace is given for a role in the OCIO config, then Mari will use a fallback role. For example, the fallback role for the Color Monitor (mari_monitor) setting is to use the color_picking role setting. If the fallback role is also unset, then Mari will handle the assignment automatically.

The table below lists the project settings, their matching OCIO role name, the fallback role, and the Python target enumerator.

Label in Project Settings OCIO Role Name OCIO Role Fallback
Color Monitor mari_monitor color_picking
Scalar Monitor mari_scalar_monitor data
Color Picking mari_color_picker  
Working mari_working scene_linear
Blending mari_blending  
8-bit Color mari_int8 texture_paint
16-bit Integer Data mari_int16 texture_paint
8-bit Scalar mari_scalar8 data
16/32-bit Float Data mari_float scene_linear

Article:  Take a look at the Understanding the benefits of using Mari specific OCIO roles in Color Management article.

Nuke Default Roles

Note:  These are not the default roles applied in the project settings - Mari uses its own roles as listed above.

The nuke-default OCIO config file provides the following default roles:

color_picking (sRGB)

color_timing (Cineon)

compositing_log (Cineon)

data (raw)

default (raw)

matte_paint (sRGB)

reference (linear)

scene_linear (linear)

texture_paint (sRGB)

If you've set a role in a colorspace field during project creation or in the Project Settings dialog, it also affects anywhere in your project where the colorspace has been set to Automatic. For instance, if the 8 bit Data colorspace field has been set to the data role, which by default uses the raw colorspace, then any 8-bit channel with a colorspace set to Automatic, uses a raw colorspace and appears in the dropdown field as Automatic (raw).