Thanks for your patience with me as I fumble through this Thomas.
Let me offer this quote from the Maya docs:
"Output-referred images, such as video and sRGB, should have the gamma removed and an inverse tone map applied. These two operations are often combined in one transform. Ideally, you should use the inverse of the tone map that will be used for output and display. For example, if you will be using the ACES tone map, then you can use sRGB_to_ACES from the RRT+ODT/ directory as an inverse tone map. Alternatively, inversePhotoMap_gamma_2.4 from the primaries/ directory is a generic transform that works well in many cases.
Note: Although it is common to simply remove the gamma from output-referred images, this is not enough to convert images to scene-linear — an inverse tone map is always required."
I’d like to inverse the tone map as stated above, but not lock this to a particular display as you mentioned earlier. This can be done in spi-anim, I believe because of the way the vd16 and p3dci8 color spaces are written.
- !<ColorSpace>
name: vd16
family: vd
equalitygroup:
bitdepth: 16ui
description: |
vd16 : The simple video conversion from a gamma 2.2 srgb space
isdata: false
allocation: uniform
to_reference: !<GroupTransform>
children:
- !<FileTransform> {src: vd16.spi1d, interpolation: nearest}
So vd16 (the output transform for an sRGB monitor) is just using the vd16.spi1d LUT which does both the tone mapping and going from linear to sRGB. The p3dci8 is used for P3-DCI and begins with the vd16.spi1d LUT and going from there to P3.
- !<ColorSpace>
name: p3dci8
family: p3dci
equalitygroup:
bitdepth: 8ui
description: |
p3dci8 : 8 Bit int rgb display space for gamma 2.6 P3 projection.
isdata: false
allocation: uniform
from_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: lnf, dst: vd16}
- !<ExponentTransform> {value: [2.2, 2.2, 2.2, 1]}
- !<FileTransform> {src: srgb_to_p3d65.spimtx, interpolation: linear}
- !<FileTransform> {src: p3d65_to_pdci.spimtx, interpolation: linear}
- !<FileTransform> {src: htr_dlp_tweak.spimtx, interpolation: linear}
- !<ExponentTransform> {value: [2.6, 2.6, 2.6, 1], direction: inverse}
- !<FileTransform> {src: correction.spi1d, cccid: forward, interpolation: linear}
Because of this one can invert the tone map on a texture map with vd16 (FWIW actually with dt16 which keeps the inverse vd16 in a 0-1 range), and still be able to view that render on a sRGB or P3 display.
So my question is: is the same possible with ACES?
Your statement
gives me hope that it is.
Or to state it differently:
If I do an inverse of the sRGB Output Transform, this would (1) decode with the sRGB EOTF, thus making my sRGB encoded texture map now linear, and (2) inverse the tone map. It’s the same as utility-sRGB-texture plus the inverse tone map. I can then view that with whatever Output Transform is appropriate. To make it a quasi-math equation
INPUT: (sRGB encoded texture) - (sRGB) - (tone map) = (linear untoned)
OUTPUT A: (linear untoned) + (tone map) + (P3) = (projector)
OUTPUT B: (linear untoned) + (tone map) + (sRGB) = (monitor)