This is perhaps more of an OCIO question than RV, but given the heads here I thought I might post this here too (already posted on the Aces forums).
I thought I was getting on top of working with Aces, but I’ve hit a bit of a brick wall in terms of understanding. I’ve got a profile which works in RV but not in Nuke.
The source image is aces2065-1, so my readnode is set to aces2065-1 to convert it to acesCG on reading in.
ocio roles are :
roles:
color_picking: Output - sRGB
color_timing: ACES - ACEScc
compositing_linear: ACES - ACEScg
compositing_log: Input - Sony - Curve - S-Log3
data: Utility - Raw
default: ACES - ACEScg
matte_paint: Utility - sRGB - Texture
reference: Utility - Raw
rendering: ACES - ACEScg
scene_linear: ACES - ACEScg
texture_paint: ACES - ACEScc
So I’m assuming, that nuke is working ACEScg. This is confirmed by checking the ocio confi8g in nuke and under “working space” it’s set to ACES - ACEScg
.
In Nuke, I have a shot profile that I’m using to apply a working space -> log, and then a cdl, and then a lut. This seems to be a fairly common setup these days.
This looks like this :
- !<ColorSpace>
name: Shot
family: Blah
equalitygroup: ""
bitdepth: 32f
description: |
Blah Default Shot Display LUT for sRGB
isdata: false
allocation: uniform
allocationvars: [0, 1]
from_reference: !<GroupTransform>
children:
- !<ColorSpaceTransform> {src: ACES - ACEScg, dst: Input - Sony - Curve - S-Log3}
- !<FileTransform> {src: "${CDL}", interpolation: linear, cccid: 0}
- !<FileTransform> {src: "${LUT}", interpolation: linear}
Note that this is “from_reference”.
In RV, the only way I could get this to work is apply the profile as a OCIOFile node and in this case its much the same, except it’s “to_reference” :
- !
name: Shot (RV)
family: Blah
equalitygroup: “”
bitdepth: 32f
description: |
Blah
isdata: false
allocation: uniform
allocationvars: [0, 1]
to_reference: !
children:
- ! {src: ACES - ACEScg, dst: Input - Sony - Curve - S-Log3}
- ! {src: “{CDL}", interpolation: linear, cccid: 0} - !<FileTransform> {src: "{LUT}”, interpolation: linear}
To view/compare the results of these, I’m setting the viewerprocess in nuke to Raw and the display in RV to raw. In Nuke I’m adding a OCIODisplay node after the readnode and setting the input colorspace to ACEScg (as that’s the working space we are in in nuke), and the view transform to “Shot”. This should replicate how our viewerprocess would display when set to the “shot” profile.
What’s odd is that in Nuke, I’m not getting what I expected, the image looks like it’s not being processed in AcesCG space. I CAN get the correct result if I set the input colorspace to aces2065-1… but as we’re already processing the input image into acesCG this doesn’t make any sense to me, and although it works, I’m not happy that it seems like something is going wrong.
RV on the otherhand appears to be displaying the ocio profile correctly.
So what am I doing wrong?
One other question, why do I need to use “to_reference” for the RV profile and not “from_reference” as I’m using in Nuke ? Is there any way for me to use the same profile in both nuke and rv ?
Thanks in advance for your help!
p.