NatronGitHub / Natron

Open-source video compositing software. Node-graph based. Similar in functionalities to Adobe After Effects and Nuke by The Foundry.
http://NatronGitHub.github.io
GNU General Public License v2.0
4.68k stars 342 forks source link

(Feature): Correct OCIO and ACES setup #868

Open mruegenberg opened 1 year ago

mruegenberg commented 1 year ago

Make sure to follow our issue report guidelines

Provide a description of your feature request

Hello, at the moment it's not possible to use Natron easily with an ACES workflow.

One issue is the ability to use a custom ACES configuration, which is blocked by #841 .

Another issue is getting the correct display in the viewer. At the moment, it only has a hardcoded dropdown for linear/sRGB/Rec.709 display where the choice also does not persist after a Natron restart. Ideally you would get the option to choose from the values in View Transform of a hidden OCIODisplay node, similar to what Nuke does. This is also described here: https://discuss.pixls.us/t/using-aces-in-natron/16625

It appears previously there was the approach of just wrapping a viewer along with the OCIODisplay node into a Group/PyPlug: https://github.com/MrKepzie/Natron/issues/982 but my understanding is that branch of Natron was abandoned? The only obvious issue with that is that pressing number keys while a node is selected would connect to a new viewer rather than this wrapped one? Also, you would not have the view transform selection next to the actual viewer and potentially have problems selecting different channels to display.

Is this a realistically implementable feature?

Can you contribute in creating this feature?

Additional details

No response

devernay commented 1 year ago

Yes, this was done this way in Natron 3 (which was bloated by bugs and never released). The current viewer doesn't use OCIODialpay (it was done before OCIODisplay). Here's what I recommend:

mruegenberg commented 1 year ago

Hi Frederic, thank you for your detailed response.

How would one go about implementing this in a more integrated way? Would it be basically a replacement for the current viewer to always use OCIODisplay, or would it be necessary to keep the current one around (or sometimes not use the OCIODisplay node)? Would it make most sense to work on the Natron 2.5 branch or 2.6? (The master branch seems to not be used anymore?)

devernay commented 1 year ago

The master branch may still build, I'm not sure of it. You may give it a try.

For Natron 2, I think it may actually be easier to integrate the functionality of OCIODisplay, rather than using the OpenFX plugin. So:

RB-2.5 should contain stuff that would work both with Qt4 and Qt5 RB-2.6 if for stuff that is not supported in Qt4 anymore. It supports Qt5, and in the future Qt6. For now, RB-2.6 is identical to RB-2.5

Since I don't think these changes are tied to the Qt version, you should PR on RB-2.5

mruegenberg commented 1 year ago

Just a note for anyone who wants to tackle this: you'd probably want to add an API similar to the one for Nuke mentioned here: https://learn.foundry.com/nuke/content/comp_environment/configuring_nuke/creating_viewer_processes.html and then change the code that does the dropdown with rec709, linear etc for the viewer to recognize and use that.

Then the whole OCIO part would be relatively easy to do on top of that