I didn’t know much about Blender’s color management so I decided to do some poking around. Using the OCIO config you posted above ( cg-config-v3.0.0_aces-v2.0_ocio-v2.4.ocio
), it appears that “View As Render” in the Image Editor window does nothing. I’ve confirmed this in both Blender 4.5.0 beta and Blender 4.4.3 on Linux. If View as Render is enabled, changing the various options in the Render Properties → Color Management has no effect. If using the standard blender ocio config, it does have an effect. Assuming I’m not missing something obvious, if this is a bug it should probably be reported to the blender devs. (Assuming it’s a blender issue not an OCIO issue, which seems likely).
So if there is no OCIO view transform being applied, we can only assume that the image data in the texture is being dumped directly to the display without any “Picture Formation” or OCIO View Transform. The end result is that the image data in the texture is converted to the “working colorspace” of blender, which I believe is determined implicitly by the scene_linear
role of the OCIO config. Other more sophisticated software like Nuke or Gaffer allows the user to set the working colorspace seperately from the scene_linear role, which is often desireable. And if it’s not clear, the working colorspace defines what colorspace images are converted into when loaded, and what colorspace images are converted from when exported.
In the default blender OCIO config, the scene_linear role is set to rec.709 gamut linear. In the ACES 2.0 OCIO config, it is set to ACEScg. It seems that your confusion stems from this difference. Here are two screenshots elaborating on this theory:
Above is a blender with the
cg-config-v3.0.0_aces-v2.0_ocio-v2.4.ocio
OCIO config loaded. The colorspace of the texture has been set to ACEScg. Since the colorspace of the texture has been set to same thing as the working colorspace, no change is made to the pixel data, and it is dumped directly to the display.
Above is a blender with the
cg-config-v3.0.0_aces-v2.0_ocio-v2.4.ocio
OCIO config loaded, however in this screenshot I’ve modified the scene_linear role to be “Linear Rec.709 (sRGB)”. The colorspace of the texture has also been set to “Linear Rec.709 (sRGB)”. Since the colorspace of the texture has been set to same thing as the working colorspace, no change is made to the pixel data, and it is dumped directly to the display.
The images appear to match.
If the view transform were active in the color management pipeline, then this behavior would not be the same. Instead of Image Data -> Working Space -> END
, it would be Image Data -> Working Space -> View Transform
. In the latter case, when a view transform is present, the end result would be the same (assuming the view transform processes were identical between the different OCIO configs), even though the working colorspaces were different. This is because the “View Transform” step converts from the working colorspace, does some Picture Formation Process, and ends up in your display colorspace. If the working colorspaces change, the end result is still the same because we have color management from start to finish.
After cursory inspection, honestly I’m pretty shocked at how insanely poor the color management system in Blender is… But like I said I am no expert so maybe I’m missing many things.
Hope it helps.