Available transforms

AllocationTransform

Transforms from reference space to the range specified by the vars:

Keys:

  • allocation

  • vars

  • direction

BuiltInTransform

Builds one of a known set of transforms, on demand

Keys:

  • style

  • direction

CDLTransform

Applies an ASC CDL compliant grade

Keys:

  • slope

  • offset

  • power

  • sat

  • style

  • name

  • direction

ColorSpaceTransform

Transforms from src colorspace to dst colorspace.

Keys:

  • src

  • dst

  • data_bypass

  • direction

DisplayViewTransform

Applies a View from one of the displays.

Keys:

  • src

  • display

  • view

  • looks_bypass

  • data_bypass

  • direction

ExponentTransform

Raises pixel values to a given power (often referred to as “gamma”)

!<ExponentTransform> {value: [1.8, 1.8, 1.8, 1]}

Keys:

  • value

  • style

  • name

  • direction

ExponentWithLinearTransform

Applies a power but with a linear section near black. May be used to implement sRGB, CIE L*, and the Rec.709 camera OETF (not the display!).

Keys:

  • gamma

  • offset

  • style

  • name

  • direction

ExposureContrastTransform

Applies an exposure, contrast, or gamma adjustment. Uses dynamic properties for optimal live adjustments (e.g., in viewports).

!<ExposureContrastTransform> {style: linear, exposure: -1.5,
  contrast: 0.5, gamma: 1.1, pivot: 0.18}

Keys:

  • exposure

  • contrast

  • pivot

  • gamma

  • style

  • log_exposure_step

  • log_midway_gray

  • name

  • direction

FileTransform

Applies a lookup table (LUT)

Keys:

  • src

  • cccid

  • cdl_style

  • interpolation

  • direction

FixedFunctionTransform

Applies one of a set of fixed, special purpose, mathematical operators.

Keys:

  • style

  • params

  • name

  • direction

GradingPrimaryTransform

Applies primary color correction.

Keys:

  • style

  • brightness

  • contrast

  • pivot

  • offset

  • exposure

  • lift

  • gamma

  • gain

  • saturation

  • clamp

  • name

  • direction

GradingRGBCurveTransform

Applies a spline-based curve.

Keys:

  • style

  • red

  • green

  • blue

  • master

  • lintolog_bypass

  • name

  • direction

GradingToneTransform

Applies an adjustment to various tonal ranges.

Keys:

  • style

  • blacks

  • shadows

  • midtones

  • highlights

  • whites

  • s_contrast

  • name

  • direction

GroupTransform

Combines multiple transforms into one.

colorspaces:

  - !<ColorSpace>
    name: adx10

    [...]

    to_reference: !<GroupTransform>
      children:
        - !<FileTransform> {src: adx_adx10_to_cdd.spimtx}
        - !<FileTransform> {src: adx_cdd_to_cid.spimtx}

A group transform is accepted anywhere a “regular” transform is.

Keys:

  • children

  • name

  • direction

LogAffineTransform

Applies a logarithm as well as a scale and offset on both the linear and log sides. May be used to implement Cineon or Pivoted (Josh Pines) style lin-to-log transforms.

Keys:

  • base

  • lin_side_offset

  • lin_side_slope

  • log_side_offset

  • log_side_slope

  • name

  • direction

LogCameraTransform

Similar to LogAffineTransform but also allows a linear section near black. May be used to implement the ACEScct non-linearity as well as many camera vendor lin-to-log transforms.

Keys:

  • base

  • lin_side_offset

  • lin_side_slope

  • log_side_offset

  • log_side_slope

  • lin_side_break

  • linear_slope

  • name

  • direction

LogTransform

Applies a mathematical logarithm with a given base to the pixel values.

Keys:

  • base

  • name

  • direction

LookTransform

Applies a named look

Keys:

  • src

  • dst

  • looks

  • direction

MatrixTransform

Applies a matrix transform to the pixel values

Keys:

  • matrix

  • offset

  • name

  • direction

RangeTransform

Applies an affine transform (scale & offset) and clamps values to min/max bounds.

Keys:

  • min_in_value

  • max_in_value

  • min_out_value

  • max_out_value

  • style

  • name

  • direction

Note

If a min_in_value is present, then min_out_value must also be present and the result is clamped at the low end. Similarly, if max_in_value is present, then max_out_value must also be present and the result is clamped at the high end.

Named Transforms

Sometimes it is helpful to include one or more transforms in a config that are essentially stand-alone transforms that do not have a fixed relationship to a reference space or a process space. An example would be a “utility curve” transform where the intent is to simply apply a LUT1D without any conversion to a reference space. In these cases, a named_transforms section may be added to the config with one or more named transforms.

Note that named transforms do not show up in color space menus by default, so the application developer must implement support to make them available to users.

This feature may be used to emulate older methods of color management that ignored the RGB primaries and simply applied one-dimensional transformations. However, config authors are encouraged to implement transforms as normal OCIO color spaces wherever possible.

Named transforms support the keys:

  • name

  • aliases

  • description

  • family

  • categories

  • encoding

  • transform

  • inverse_transform

named_transforms:
  - !<NamedTransform>
    name: Utility Curve -- Cineon Log to Lin
    transform: !<FileTransform> {src: logtolin_curve.spi1d}