DaVinci Resolve DCTL and OFX Plugins

Tags: #<Tag:0x00007f3c6807ddb0> #<Tag:0x00007f3c6807dc70> #<Tag:0x00007f3c6807db30> #<Tag:0x00007f3c6807d950> #<Tag:0x00007f3c6807d810> #<Tag:0x00007f3c6807d6d0> #<Tag:0x00007f3c6807d590>

(Paul Dore) #1

DaVinci Resolve 15 compatible DCTL scripts.


Place the ACES_DCTL folder in Resolve’s LUT folder (as is the case with other LUTs and DCTLs).

Porting CTLs that contain a 3D array (3D LUT) is proving tricky, but there is a workaround. You can also now link a LUT (1D or 3D) inside a DCTL (provided it is of the .cube variety). For example, the header


would be placed at the top of the script, and the LUT can then be applied as follows

const float3 res = APPLY_LUT(r, g, b, LMT_ACESv011);

This actually makes it easier to work with, as navigating a script with an embedded 3D LUT can be inconvenient at best. For existing examples of CTL scripts that contain a 3D LUT (LMT.Academy.ACES_0_2_2.ctl, LMT.Academy.ACES_0_7_1.ctl, etc), it would just be a matter of rearranging the arrays to conform to .cube specifications, adding the appropriate header and extension, and they’re good to go.

Edit: I compiled a simple OFX plugin using the new files.

ACES OFX Plugin macOS

ACES OFX Plugin Win10

ACES OFX Plugin Linux

ACES OFX Source Files

(Alex Forsythe) #2

@Paul_Dore This is awesome! Community development at its best!
Thanks so much!

(Peter Chamberlain) #3

Great job Paul. Glad we now have LUT support in DCTLs.

(Paul Dore) #4

I added some more features to the OFX Plugin.

Conversion from and to different varieties of ACES is included, as well as inverse options. There is now also a custom option in the LMT section, with parameters based on Scott Dyer’s work in the LMT threads.

The links from the first post still apply.

(Scott Dyer) #5

You’re on fire @Paul_Dore! Fantastic work.

I had heard that Resolve 15 supported include statements but had no references yet on proper syntax and how to use. But it looks like you’ve already converted basically all the CTL to DCTL - can’t wait to test it out. Thanks!

(Rohit Gupta) #6

Documentation and examples are available in the Help… Developer Documentation folder from Resolve 15 interface. Let us know if you need any specific help. We are working on adding more features to DCTL.

(Nick Shaw) #7

I was wondering how complicated it would be to convert all the ACES CTL library functions to DCTL, but shied away from doing it because it seemed like a mammoth task!

Great work @Paul_Dore!

(Paul Dore) #8

I added links to a windows and linux version of the plugin (both CUDA only) in the first post. To the actual plugin itself, I added an ACEScc and ACESct option to both the IDT and ODT choices, as this will allow for easier integration within Resolve’s ACES pipeline. It’s fully modular now.

(Scott Dyer) #9

Wow, can’t believe I missed that :man_facepalming:

I will definitely be tinkering around with @Paul_Dore’s fantastic work and seeing what else we can do with the DCTL. Thanks for the exciting updates!

(Nick Shaw) #10

Just did a quick test, and @Paul_Dore’s awesome work means it is now possible to build your own ACES pipeline in Resolve when it isn’t in ACES mode. Naturally, with great power comes great responsibility!

In my testing, my ageing 2010 Mac Pro, with K5000 GPU, was able to sustain real time playback (1080p25) applying an Alexa IDT, the RRT and Rec.709 ODT all in DCTL.

(Alex Forsythe) #11


Not sure if you’re up for a little more work but some of us would love to see the ACES 1.1 Beta SSTS/Parametric ODTs in here. Exposing the parameters via an “advanced” menu in the OFX plugin would be helpful to power users.

Awesome work!

(Paul Dore) #12

Post a link to a specific ODT and list the parameters you want to have access to, and I’ll have a go (at some stage).

(Alex Forsythe) #13

Thanks Paul … they can be found here

(Paul Dore) #14

The ACES DCTL collection has been updated to include ACES 1.1 ODTs. The sample DCTL lists the new options (which are all executable).

(Tobias Schaarschmidt) #15

That is by far the most useful collection of OFX plug ins i have ever come across!

(Paul Dore) #16

More options added to the OFX Plugin.

More IDT and ODT options, and a custom ODT option that (when selected) reveals an additional 10 parameters. Available with both standard and inverse options.

(Paul Dore) #17

The Win10 and Linux Plugins have now been updated with the new features. If anyone encounters errors (or suspects something is not right) with either the DCTLs or the Plugins, then please report your findings here. It’s likely there are bugs and flaws in the attempted translation (especially given the relatively fast turnover) and I haven’t exactly been diligent when it comes to proofreading, so any assistance with regards to that would be greatly appreciated. Suggestions as to what to include (or exclude) and UI presentation are also welcome. Cheers.

(Paul Dore) #18

The ‘rotate hue in hue’ process is working now. The translation from CTL to DCTL (CUDA) was slightly off (and the image was being returned unchanged) but that’s been fixed. The custom LMT option now presents the same number of parameters as @sdyer’s LMT Academy Analytic_3

In compliance with DaVinci Resolve’s vectorscope, hue degrees run clockwise, with blue at 120, green at 240 and red at 360 (it’s actually rotated a few degrees anti-clockwise on the vectorscope, but you get the idea). Two of the hue rotation options cover the skintone line by default (as well as both scale color at hue options), but all parameters are modifiable. Watch the vectorscope while running tests on a colour chart to observe the behaviour.

Some more IDTs and RRTODTs have also been added. The DCTL collection has been updated, as well as the OFX Source Files and Plugins.

(Paul Dore) #19

Export DCTL option now available in the OFX Plugin.

The DCTL replicates the active processes of the plugin at the time of its generation. By default it is saved into the ACES_DCTL folder (where it needs to be in order to link to ACES_LIB files), otherwise Resolve will display a warning message (either the folder is missing or there’s a permissions issue). To access and enable the new DCTL, press the ‘Update Lists’ button in ‘Project Settings/Color Management/Lookup Tables’ followed by ‘Save’, just like you do when you add a new LUT while Resolve is still running. If you export a DCTL and there is already one with the same name at the target destination, then it will automatically overwrite the older one (once you click ok to confirm the export), but every export can have its own specific name.

The only difference between the OFX Plugin and DCTL (in terms of performance) is speed. DCTLs run faster as it’s all done on the device (GPU), whereas with OFX data is passed between the host (CPU) and device (which makes it a little slower). If speed is of particular interest, then the RRTODT (1.1) option runs faster than its equivalent RRT + ODT combination (1.0.3).

As is still the case, the DCTLs will only work in Resolve 15 Studio, but the OFX Plugins (should) work in both free and paid versions of both Resolve 14 and 15.

(Charles Boileau) #20

Hi to all!

@Paul_Dore thanks for this great plugin. Opens a bunch of possibilities for Resolve.

A few newbie questions:

  • Can we add more IDTs and ODTs? For example: I use the P3-DCI and REC709 (d60sim) ODTs allot. But I don’t see them in the list. Am I missing something?
  • I tried building a custom ODT but the Results are “not the same”. For example tried to do a 709 D60sim ODT but the result was not the same as the one within Resolve.
  • Can we use parts of this plugin while ACES is activated in Resolve?