ACES IDT DCTL Generator

@nick Great example for buildnd BMD DCTL by using 1D LUT! It might be little bit difficult to integrate it in my web page tool as I also wanna show the line chart of the reverse log curve and take some times to implement, but your DCTL example is very useful for practical usage!

The BMD RGB primaries could be found by clicking the reference option in the CIE Chromaticity chart of Resolve. It’s a little bit tricky. :grinning:


For the SONY VENICE primaries shown in the tool, it is actually a reverse engineering of the transform matrix provided by the python Dev-ACES repository.

1 Like

is there a way to get a ACEScct as Target Color Space?

An IDT should not transform to ACEScct. It transforms to ACES2065-1.

When you use a DCTL IDT in Resolve, set the IDT to “None” and apply the DCTL “at source”, either in the Media Pool or by right-clicking the timeline thumbnail on the Color page. Do not apply the DCTL in the node tree. When applied at source, Resolve does the conversion from ACES2065-1 to the working space for you.

thanks nick always for your answers, they are a great help :ok_hand:
I am using YRGB project setting with aces pipeline inside the node tree, because what Tommy said ‘The log curve data of the BMD cameras are not published, currently you may need to convert the log gamma to another common gamma (linear, arri log C, etc…) via Color Transform Ofx or 1D Lut in Resolve before using this DCTL. :grinning:
and applying the DCTL outside the Node will be then Before the gamma been changed.
do I miss something here?

Understood. It is more complex when you need to incorporate extra transforms like that. You could make a DCTL from @tommyzenth’s generator which transforms to linear AP1 (i.e. ACEScg) and then edit it in a text editor to add a linear to ACEScct transform. You can get the DCTL to do that from my gamut mapping DCTL here.

Alternatively you could edit the generated DCTL to incorporate a BMD LUT, as in my example above, and then you could use it at source in an ACES mode project.

you mean API0,?, as it is the only option in the Genrater.

thats great i ll try do that.

this didnt work for me as i work on windows and the …/ didnt work as file path.

Sorry, no. I meany AP1, but didn’t realise that wasn’t currently an option in the generator.

@tommyzenth, may I suggest you could add AP1 to the target dropdown.

that’s was my first request but I was unclear with saying to ACEScct, I meant for sure the AP1 color space. a lot of terminology here that I lose it :slight_smile:

it means thea aces transform in this case could be useded inside the nodes after the Gamma transform. other wise with Know IDT brands. just Use The DCTL from the dropdown menu, right?

I am not that familiar with Windows, but you could try using ..\ instead of ../ or just use the full absolute path of the LUT.

1 Like

Hello, I’m using VEGAS Pro software. It does support ACES workflow, but it uses SPI3D file type for IDT in the software, is there any way I can create custom IDT for that format?

OpenColorIO does not (normally) use 3D LUTs for IDTs. It uses a combination of a 1D LUT for the transfer function, and a matrix for the primaries conversion. This sequence is defined in the config file. You can add transforms based on new combinations of the existing curves and matrices by editing the config file in a text editor. To build completely new transforms you need to create new LUTs (I use Colour Science for Python to do that) and define their use in the config file.

Read more on OCIO at https://opencolorio.org/

1 Like

@tommyzenth Thank you for your awesome generator!
Is it possible to add ACEScc and ACEScct to output section? I know it’s wrong and IDT should have AP0 Linear output, but here is why it can be useful:

In Resolve, using ‘ACEScc color science’ adds artifacts (bright pixels in the shadows). But this isn’t happening with the whole DCTL pipeline. And also the only ‘color science’ in Resolve, that has a correctly working blending modes in layer nodes is DaVinci YRGB. And I always use it for adding glow in linear gamma.

So the only option to get usable ACEScc is to use dctl IDTs AND dctl transforms to ACEScc.
I could use dtcl IDTs in clips, and then, in pre-group, add AP0 Linear to AP1 ACEScc transform in a node. But the problem is then resolution scaling will be performed with the image in linear space. And this creates terrible artifacts. They can be partially fixed using different resize algorithms. But not even close to the resizing of the log image.
This is why it can be useful to have so-called ‘IDT with ACEScc or ACEScct output’.
And having ACEScct output would also let to cache to a regular formats instead of HDR compatible only.

I tried to add AP0 Linear to AP1 ACEScc conversion to the code of DCTLs from your generator by myself. But with absolutely no coding skills I spend 2 days and got nothing :slight_smile:

If it is just a couple of lines for you and if you think, this could be also useful for others, I would really appreciate if you add ACEScc and ACEScct outputs.
Thank you!

For now I use Paul Dore ACES 1.2 plugin for creating these types of DCTL. @Paul_Dore thank you for all the amazing tools you share with us!

Seems like there is no way to edit post, so I have to add some changes in a new post

Until I find a way to add gamut compress dctl into IDT_to_ACEScct dctl, node caching won’t work correctly as there still will be negative values. And for the same reason some for the artifacts from resolution resizing still will be there.

Hi Anton,
Unfortunately I don’t have an answer to your question, but if you click the triple dots (…) to left of Reply on your original points, you’ll reveal a sub menu with tools. The pencil is the edit post option! :slight_smile:

Steve

1 Like

Thank you! It’s probably available for a short period of time. It’s available for my second post, but not for the first one.

1 Like

So we’re not the only ones having this issue then. I gave instructions to our colour grading task group to use cc instead of cct for testing if they have too many fireflies but that we’re going to require LUTs in cct colour space so they might be best using DaVinci YRGB Colour Managed with custom settings. It’s more painful to setup compared to just choosing an IDT and an ODT but at least there are no fireflies.

DaVinci YRGB colour managed does not include any chromatic adaptation when it transforms to ACES, does it? IDTs do include that. So unless you add a chromatic adaptation manually, it won’t match a true ACES pipeline, and equal RGB values in the source will not map to equal RGB values in the “ACES” working space.

I think you really need to use a series of OFX ACES Transform operators if you want to roll-your-own ACES in Resolve.

Noted. I’ll add it to my to-do list. The important thing is getting two pipelines off the ground: one for generating .cube LUTs for the cinematic grading team and one for marketing in order for them to work directly with in-game footage. We’re exploring using Resolve Live for this.

Be aware that prior to Gen 4 we did not have a fixed gamut with a single set of primaries. Rather two were used and interpolated based on CCT. The Resolve team decided to pick a CCT of 6000K for their CST plugin/RCM transforms and these “primaries” listed in the chromaticity chart for Gen3 and earlier are just calculated based on that single interpolated matrix that assumes the camera or RAW decode was set to a white balance of 6000K. Gen 1 (V1) in particular was just white balanced ‘sensor space’ for “BMDFilm”. This ‘issue’ does not exist for Gen 4/5 where a single wide gamut has been defined.

Also FYI, we use CAT02 for white point adaptation in the Blackmagic RAW SDK and cameras where your tool recommends Bradford.

2 Likes