DaVinci Resolve DCTL and OFX Plugins

Tags: #<Tag:0x00007fa8fc360e28> #<Tag:0x00007fa8fc360ce8> #<Tag:0x00007fa8fc360ba8> #<Tag:0x00007fa8fc360a68> #<Tag:0x00007fa8fc360928> #<Tag:0x00007fa8fc3607e8> #<Tag:0x00007fa8fc3606a8>

This should be changed back to uppercase. I was running tests with the new Combo Box option and there was a conflict, but uppercase maintains compatibility with the ACES 1.1 plugin.

I forgot to add the 00 to the end of the function name. The function itself is a direct translation from the original CTL header, which was probably not intended for use within Resolve in its current form. It’s in the library purely for the sake of inclusion. The exp_factor is what is returning super high values (it’s 36 in the original CTL).

The ACES DCTL set should be used in Resolve YRGB, but the LMTs can be used in Resolve ACES (provided they included a conversion to and from ACEScct). In Resolve YRGB and Resolve ACES you can apply a DCTL as an input transform (pre node graph), within the node graph (clip level, and timeline), and as an output transform (post node graph). Fully modular. In Resolve ACES at the input level, the DCTL is applied before the conversion from ACES to ACEScct (or ACEScc), so an IDT DCTL can be applied here if not natively supported in Resolve.

2 Likes

I added two new DCTLS to ACES_DCTL_DR16

Both contain the full ACES library (minus ACESproxy and LMT_Analytic_2 related stuff), so no need for inclusion headers.

ACES_METAL_COMBO.dctl works in DR16 with the DCTL OFX Plugin, with drop-down menus for IDT, RRT, and ODT.

ACES_METAL.dctl works in both DR15 and DR16, and has a similar layout to ACES_Sample.dctl (plus all the precompiled stuff).

These 2 DCTLs will also work with CUDA, and there may even be a slight performance boost (compared to the un-precompiled versions).

ACES_DCTL_DR16

Thanks to Nick Eason (over at LGG) I was able to precompile the full ACES transform library into a single header file, which can be included in a DCTL in both Metal and CUDA. The ACES_Sample option than was previously only available in CUDA is now available in Metal too. I tried OpenCL, but only the IDTs and some LMTs would work.

In a separate folder called ACES_DCTL_NEW I’ve added 3 files

ACES_LIB.h
ACE.dctl
ACES_COMBO.dctl

ACES_LIB.h contains the full ACES transform library, ACES.dctl has a similar layout to ACES_Sample.dctl from the original ACES_DCTL set, and ACES_COMBO.dctl works in DR16 with the DCTL OFX Plugin.

ACES_DCTL_NEW

Yes. The ARRIRAW IDTs should not be used in Resolve, as Resolve never presents the image data in its raw form, even if the source is ARRIRAW. It is already decoded. The value 36 is the multiplier from sensor linear to relative scene exposure at EI800. When that is incorrectly applied to image data which is already had EI gain applied, it will indeed produce ridiculously high values.

1 Like

I converted the ACES transform library into a Matchbox Shader. It works in Flame, but I haven’t tested it in Baselight or Scratch (or any other app that can run these shaders).

It has a similar UI to the combo box DCTL in Resolve. There are a few options included in the drop down menus, but the entire library is included in the .glsl file so the remaining options can be added as required.

Baldavenger ACES Matchbox Shader


Update:

I tested it in Scratch, and it runs successfully (and very fast too).

1 Like

Short(ish) video demonstrating some the options available in the Shadertoy ACES shader.

https://www.shadertoy.com/view/3tlSzr

// Open Chrome with CORS disabled

open -n -a /Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --args --user-data-dir="/tmp/chrome_dev_test" --disable-web-security

// Open Console (cmd + alt + j) and paste this link (Arri LogC clip)

gShaderToy.SetTexture(0, {mSrc:‘https://dl.dropboxusercontent.com/s/faxgcvief55uljr/arri%20logc.m4v?dl=0’, mType:‘video’, mID:1, mSampler:{ filter: ‘linear’, wrap: ‘repeat’, vflip:‘true’, srgb:‘false’, internal:‘byte’ }});

// Arri LogC clip +3ev

gShaderToy.SetTexture(0, {mSrc:‘https://dl.dropboxusercontent.com/s/6th2uj79ym33y78/arri_logc_3ev.m4v?dl=0’, mType:‘video’, mID:1, mSampler:{ filter: ‘linear’, wrap: ‘repeat’, vflip:‘true’, srgb:‘false’, internal:‘byte’ }});

// Longer demo video

gShaderToy.SetTexture(0, {mSrc:‘https://dl.dropboxusercontent.com/s/y2oyr2pggimpx88/Showreel%20PD%202014.m4v?dl=0’, mType:‘video’, mID:1, mSampler:{ filter: ‘linear’, wrap: ‘repeat’, vflip:‘true’, srgb:‘false’, internal:‘byte’ }});

1 Like

Hi Paul,

for those of us still using Resolve 15 is there anything we could do to still be able to load the OFX?