Here’s how I’m making the DRT. If I’m doing anything wrong here please do let me know!
To make the ARRI Reveal
- Convert the gamut from ACES to ARRI’s AWG4 using a matrix transform. In Nuke that would be AP1 to AWG4, in OCIO it would be AP0 to AWG4. I’m using this cool webpage from @Thomas_Mansencal to get the matrix. You can set it to give you a matrix for Nuke or for OCIO.
One thing I’m not so clear on is which CAT to use? Bradford? CAT02? Assuming it’s CAT02 the matrix from AP0 to AWG4 would be:
<MatrixTransform> {matrix: [1.3317489220, -0.1910418312, -0.1407070910, 0.0000000000, -0.0010810260, 0.9928187215, 0.0082623045, 0.0000000000, 0.0006639882, 0.0007515137, 0.9985844981, 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 1.0000000000]}
- Next you need to convert from the working color space into the color space of your LUT, so in Nuke from AP1 into LogC4 and in OCIO from AP0 to LogC4. The conversion for LogC4 is defined in the ACES Reference OCIO config as:
<LogCameraTransform> {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse}
- You get the LUT from the ARRI LUT Generator Webpage. Note that it says:
" Please note LUT Generator does NOT support ALEXA 35/LogC4!
You can download our current 3D LUT Package for LogC4 here"
You would then add that LUT into your OCIO. For example:
<FileTransform> {src: "ARRI_LogC4-to-Gamma24_Rec709-D65_v1-33.cube", interpolation: linear}
So all together it would be:
- !<ColorSpace>
name: ARRI Reveal DRT
family: Baked View Output
isdata: false
encoding: sdr-video
from_reference: !<GroupTransform>
children:
- !<MatrixTransform> {matrix: [1.3317489220, -0.1910418312, -0.1407070910, 0.0000000000, -0.0010810260, 0.9928187215, 0.0082623045, 0.0000000000, 0.0006639882, 0.0007515137, 0.9985844981, 0.0000000000, 0.0000000000, 0.0000000000, 0.0000000000, 1.0000000000]}
- !<LogCameraTransform> {log_side_slope: 0.0647954196341293, log_side_offset: -0.295908392682586, lin_side_slope: 2231.82630906769, lin_side_offset: 64, lin_side_break: -0.0180569961199113, direction: inverse}
- !<FileTransform> {src: "ARRI_LogC4-to-Gamma24_Rec709-D65_v1-33.cube", interpolation: linear}
- !<RangeTransform> {min_in_value: 0., min_out_value: 0., max_in_value: 1., max_out_value: 1.}
The last line with the range transform is to clamp the output display values into a 0 to 1 range. Here’s the same in Nuke:
set cut_paste_input [stack 0]
version 14.0 v2
push $cut_paste_input
ColorMatrix {
matrix {
{0.9190871302 0.0251220731 0.0557907967}
{0.0426505871 0.8542433209 0.1031060921}
{-0.0054781525 0.00473652 1.000741632}
}
name ACEScg__to__ARRI_Wide_Gamut_4
selected true
xpos -291
ypos 34
}
OCIOColorSpace {
in_colorspace ACEScg
out_colorspace "ARRI LogC4"
name OCIOColorSpace3
label "\[value in_colorspace]\n\[value out_colorspace]"
selected true
xpos -195
ypos 61
}
OCIOFileTransform {
file "/Users/Derek/ARRI_LogC4_v1_LUT_Package/LUTs/ARRI_LogC4-to-Gamma24_Rec709-D65_v1-33.cube"
working_space ACEScg
name OCIOFileTransform2
selected true
xpos -195
ypos 131
}