HDR10 support in addition to 10 bit workflow

Hi

Is it possible to implement DirectX HDR support?

Here is the MS doc: Using DirectX with high dynamic range displays and advanced color - Win32 apps | Microsoft Docs

Search for “Option 2”, since TouchDesigner already does 10 bit, looks like it just needs to set the colorspace. Maybe as another system variable?

Many thanks

To set TouchDesigner for 10 bit color you need to do a few things. There’s an overview here:

https://derivative.ca/UserGuide/10-Bit_Color_Displays

To set a system var for touch check out this page:
https://www.architectryan.com/2018/08/31/how-to-change-environment-variables-on-windows-10/

This is interesting. I think if you enable 10-bit output like Matthew suggests, then all you need to do is apply the correct gamma curve to your content before sending out. Possibly something with OpenColorIO has the option to convert to Rec.2100 gamma curve. You may need to find the correct OpenColorIO file that does that.

We are already running at 10 bit and we have implemented OCIO.

HDR10 consists of 10bit, rec2020, PQ transform and static scene metadata. It’s possible to apply everything as SDR content to send out however that defeats the purpose to have HDR and is very destructive when the source is HDR content.

Another approach is to set Windows outputting HDR also the display, but currently TouchDesigner doesn’t set its content to be HDR so DirectX will interpret the data as SDR, applying certain compensation to be outputted as HDR data. There is a slider on Windows to control the brightness of the SDR content in HDR.

Here is a tool I built from DX12 sample codes, it’s also available on MS’s GitHub repo:

If you have an HDR display, set Windows to display HDR, then on the utility page down to 16bit float, or 10bit and H to switch to 2084, you will get Windows-aware HDR content from this utility.

We are still investigating the metadata. It seems HDR10 (not HDR10+ or Dolby Vision) can only accept static metadata, which could possibly mean it only happens when the link is negotiated. Although the above utility offers some metadata presets, we haven’t observed any difference on any of our displays.

I mean, if it’s really as easy as setting a tag to make TouchDesigner as Windows-aware HDR content, it would save quite some process and GPU power and preserve certain image quality in our case, and it would bring some potentials for others too.

Many thanks

1 Like

Interesting. I was going to point to the ACES system which provides LUTs for Linear to rec2020 and several other color spaces, but it makes sense that this would need to be tagged at the OS level as HDR content as well.

For reference, here’s the site:

Well the thing is though, TouchDesigner uses OpenGL. So it may be more involved than that. I found an article that talks about it so I’ll look into that more.

This has a tonne of information too. But ya it’s a bit more involved that just setting a tag

Thank you.

Our particular case is actually very straight forward. We will be using the video file our clients give us, then represent it on our LED screen as background for film shooting. And the clients have asked for HDR content support. Thus we want to preserve all the details as much as possible, the big brothers care about details very much. Our LED drivers are 14bit PWM and the controllers are 10 bit HDR capable. But sink gamma curve and HDR toning are also happening here.

OCIO is very handy but has its limitations. It’s an excellent way to preview the video you are processing while preserving all its original data. It’s basically the standard for film houses to work with log file. What we are supposed to have is the committed files. We have very little control over the content. By applying OCIO we are introducing another generation of destructive process.

BT2020 colorspace in Windows is another tricky part. It would be difficult to make Windows outputting BT2020 without turning on HDR. Our EDID injector reads BT709 most of the time. We did see BT2020 occasionally but couldn’t really reproduce it.

1 Like

Yeah, it seems like there are a lot of layers here. The Nvidia articles mentions using their API to control the metadata in the devices, but then they say the OS may have a way in the future. The articles are from 2016, so the question is: are the HDR controls available in the latest Windows the proper workflow now.
This is something we can dive more into with Pro Support hours if you want. Feel free to reach out to support@derivative.ca to chat about it more.