Skip to content

Instantly share code, notes, and snippets.

@UnaiM
Last active February 11, 2024 23:09
Show Gist options
  • Save UnaiM/606fdb2c9ae90f42264238d03fc8eff5 to your computer and use it in GitHub Desktop.
Save UnaiM/606fdb2c9ae90f42264238d03fc8eff5 to your computer and use it in GitHub Desktop.
An investigation on whether “respecting” plate colour in a VFX pipeline makes any real difference

“Just convert everything to ACEScg”

An investigation on whether “respecting” plate colour in a VFX pipeline makes any real difference

Motivation

Until 2020, I always had worked either without any real colour management, or in an environment where everything was converted to (and encoded in) ACEScg on ingest, effectively before anyone used it. But I always had a hunch that this solution wasn’t “pure”— if the Academy had devised another linear colour space (ACES2065–1) for archival, it had to have a reason.

Then I joined a production environment where ingestion of plates just meant copying files (no colour conversion), so it was left for the colour management system to determine the plate’s colour space and respond accordingly to it. To my intuition, this was more like it, but we were using the reference ACES implementation in OCIO, so under the hood, those plates were still getting converted to ACEScg on-the-fly before anyone used them.

I didn’t think much of it until I had the opportunity to have a chat with John Frith, Head of Imaging at MPC/Technicolor (thanks Steve MacPherson for organising it). He made me see that, ideally, if the client (in its broadest sense) chose to use a colour standard, VFX should accommodate to that standard as much as possible— and this is where OCIO can really shine, as it should be easy to make a configuration where colour processing happens in a space that, while still sensible (linear), honours the client’s choice.

For example, if the client is using the ARRI V3 colour system, our OCIO config could be built with Linear AWG as its reference and working (Comp) space, while still using ACEScg for CG rendering, and the ACES RRT to view work without the client grade.1

Fast-forward a few months, several Leads and Supervisors joined the company, and they started asking why nothing was converted to ACEScg on ingest; fast-forward a few more months and a move to another company, and people are adamant about encoding everything in ACEScg before people can use it— this practice seems widespread across many VFX houses. There’s even an ACESCentral forum thread that kinda agrees with it.

From a technical standpoint (my side of things), converting everything to ACEScg on ingest simplifies things a lot across the pipeline, but it seems too good to be true. Is there really no noticeable diference, no practical risk when doing this? I need to get my hands dirty, investigate, and provide clear examples.

Experiment

(To do.)

Footnotes

  1. John, I hope I got it right; more than happy to have a chat otherwise— this whole article is basically me being lost in terms of colour anyway.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment