Maniphest T95368

Color Management: Linear ACES uses wrong white point adaptation
Closed, Resolved

Assigned To
Brecht Van Lommel (brecht)
Authored By
David (Accelero)
Jan 31 2022, 6:44 PM
Tags
  • BF Blender
  • Render & Cycles
Subscribers
Brecht Van Lommel (brecht)
David (Accelero)
Jason Clarke (jtheninja)
Philipp Oeser (lichtwerk)
Tokens
"Yellow Medal" token, awarded by Blackx.

Description

Blender Version
Broken: 3.0 and older
Worked: none

  1. ACES 2065-1 textures/images show a color shift with the default OCIO config and colorspace set to "Linear ACES".
  2. OCIO configs that use ocio builtin transforms and define the aces_interchange colorspace as ACES 2065-1 show opposite color shift with "sky texture".

I noticed this problem since a few versions of Blender and it also persists in 3.0. I took a look at it myself and I think I found the source of the issue.
The xyz_to_aces transform uses a matrix from xyz-d60 to ACES, but is assumed to be xyz-E to ACES.
Subsequently a E to D65 white point adaptation is applied, which causes a color shift.
Compare xyz_to_aces.spimtx from the default OCIO config to the ACES 1.2 config (line 2431) xyz-d60 to ACES transform.
This source lists methods for whitepoint adaptation and it can be seen that in fact an D65 to E transform is used by the default OCIO config.

The same error is made in Blender code when converting from the aces_interchange to xyz-d65 e.g. for the sky texture, as documented in this commit.

This double error cancels itself out with the default config (sky texture xyz is wrongly converted to aces and then the inverted error from aces to scene linear), which means the sky texture works correctly with the default config. Though it interprets ACES 2065-1 textures/images wrongly and if the colorspace is defined correctly with a different config, this results in a wrong sky texture.

This Blendfile contains color checkers for ACES 2065-1 and Linear Rec.709 (confusingly named srgb) that can illustrate the color shift. The config, I made myself, using the builtin-transforms from OCIO and therefore doesn't need external LUTs. It shows correct behavior with the color checkers, but produces a color shift of the sky texture. You can of course also use the official ACES 1.2 OCIO config, which is linked above, but this requires the download of their provided LUTs aswell.

Possible fix: Change the white point adaptation in default OCIO config and Blender code from xyz-D65-to-E to xyz-D65-to-D60. The Bradford adaptation seems to be the most commonly used nowadays.

Revisions and Commits

rB Blender

Related Objects

Mentioned In
T68926: Color Management Improvements
Mentioned Here
rCad4b6c40f1fa: Fix wrong white point of Linear ACES in config reading and the bundled config
D65: Fix T37670: Paint mode + procedural map colours error

Event Timeline

David (Accelero) created this task.Jan 31 2022, 6:44 PM
David (Accelero) renamed this task from Colormanagement: Linear ACES uses wrong white point adaptation to Color Management: Linear ACES uses wrong white point adaptation .Jan 31 2022, 6:46 PM
David (Accelero) added a project: Render & Cycles.
Vit Kovalcik (Blackx) awarded a token.Jan 31 2022, 7:06 PM
Jason Clarke (jtheninja) added a subscriber: Jason Clarke (jtheninja).Jan 31 2022, 8:00 PM
Philipp Oeser (lichtwerk) updated the task description.Feb 1 2022, 12:25 PM
Philipp Oeser (lichtwerk) changed the task status from Needs Triage to Needs Information from Developers.Feb 1 2022, 12:52 PM
Philipp Oeser (lichtwerk) added subscribers: Brecht Van Lommel (brecht), Philipp Oeser (lichtwerk).

@Brecht Van Lommel (brecht): I think it is by far the fastest if you check this (since you authored rCad4b6c40f1fa: Fix wrong white point of Linear ACES in config reading and the bundled config)?

Brecht Van Lommel (brecht) added a comment.Feb 17 2022, 7:52 PM

Thanks for the detailed explanation and tests files. With the latest changes the image texture sky texture should be the same with the default config and your config.

Brecht Van Lommel (brecht) closed this task as Resolved by committing rBda6b534274d8: Fix T95368: wrong white point adaptation for Linear ACES color space.Feb 17 2022, 7:52 PM
Brecht Van Lommel (brecht) claimed this task.
Brecht Van Lommel (brecht) added a commit: rBda6b534274d8: Fix T95368: wrong white point adaptation for Linear ACES color space.