ACES & Color

The spaces

  • ACES2065-1 (AP0)interchange & archive

    Linear, covers every visible color. What you hand between facilities and store as the master. Not meant for rendering or grading directly.

  • ACEScg (AP1)rendering & comp

    Linear working space for CG and compositing. Set your renderer's working space to this; the color-converter tool outputs ACEScg triplets.

  • ACEScctgrading

    Log-like encoding of AP1 for colorists — grading operators behave like they do on film log. Never render into it.

  • Output transformsviewing & delivery

    The view transform (RRT+ODT in ACES 1.x, Output Transform in ACES 2) maps scene-linear to your display: Rec.709, sRGB, P3, PQ. You always view through one.

Texture & render setup

  • Working space: render and comp in ACEScg (or the show's chosen linear space) — one space everywhere, set by the OCIO config.
  • Color maps (albedo, painted textures): input transform sRGB - Texture (or Utility sRGB), so they land in the working space correctly.
  • Data maps (normal, roughness, metalness, displacement, masks): tag as raw / non-color — never color-convert them.
  • HDRIs: usually already scene-linear — bring them in as linear Rec.709 or the space they were published in, not as sRGB texture.
  • Delivery: render to EXR scene-linear; bake the output transform only into review media, never the master.

When it looks wrong

  • Render looks washed out / flat gray

    Viewing scene-linear data without an output transform. Set the view transform (e.g. "ACES 1.0 SDR Video" / Rec.709) in your viewer — don't grade it away.

  • Textures look too dark or too saturated

    Double or missing input transform. Color textures (albedo) need the sRGB-texture IDT; data maps (normals, roughness, masks) must be tagged raw / non-color.

  • Bright saturated lights skew hue (blue → purple)

    Known behavior of ACES 1.x output transforms with intense saturated values; ACES 2.0's transforms and per-show LMTs address it. Don't fight it per-shot with hue rotates.

  • CG element doesn't match the plate

    Plate and CG in different working spaces. Confirm the show's OCIO config (OCIO env var) is loaded by every DCC, and that the plate's IDT matches how it was encoded.

Transform names cheat table

Working / rendering spaceACEScg
Color texture inputUtility - sRGB - Texture (a.k.a. sRGB - Texture)
Data map inputUtility - Raw (non-color)
Linear Rec.709 input (HDRIs, CG renders)Utility - Linear - sRGB / lin_rec709
Camera log inputthe camera IDT (e.g. ARRI LogC4, Sony S-Log3)
SDR monitor viewACES 1.0 - SDR Video (Rec.709 / sRGB ODT)
Grading spaceACEScct
Interchange / archive masterACES2065-1 (AP0) EXR

Official OCIO configs to reach for: cg-config-…_aces-v1.3_ocio-v2.1 (lean, for CG work) and studio-config-…_aces-v1.3_ocio-v2.1 (adds camera IDTs) — both from the ASWF OpenColorIO-Config-ACES releases.

Per-DCC setup

  • Blender

    Ships its own config (AgX default view). For ACES: point the OCIO environment variable at an ACES config before launch; textures then get Utility roles.

  • Maya

    Windows → Settings → Color Management. Recent versions ship an OCIO v2 ACES config by default; set rendering space ACEScg, view ACES 1.0 SDR-video.

  • Houdini

    Set $OCIO to the config path; Houdini picks it up everywhere (viewport, MPlay, Karma). Without $OCIO it uses its built-in config.

  • Nuke

    Project Settings → Color → color management: OCIO, pick the bundled aces_1.2/1.3 config or your show's. Reads/Writes then choose per-file input transforms.

  • Resolve

    Project Settings → Color Management → color science: DaVinci YRGB Color Managed or ACEScct; set the ACES version + output transform there.

  • After Effects

    Project Settings → Color: OCIO color management (native since 2023) — choose the ACES config; per-footage interpret rules set the IDT.

  • Unreal

    Enable the OpenColorIO plugin, create an OCIO Configuration asset, assign it per viewport/Composure; UE's own tonemapper is otherwise its filmic default.

  • Substance Painter

    Edit → Project Configuration → select an OCIO config (ACES supported natively); export targets then tag maps correctly.

The one rule across all of them: every app in the pipeline loads the same config — set $OCIO once at the environment level and most DCCs follow it.

Current sources

This page is a quick orientation — specifics move with ACES and OCIO releases, so treat the linked documentation as the source of truth.

reviewed 2026-08 · the linked docs are always current