Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

(Feature): Correct OCIO and ACES setup #868

Open
5 of 7 tasks
mruegenberg opened this issue Mar 30, 2023 · 4 comments
Open
5 of 7 tasks

(Feature): Correct OCIO and ACES setup #868

mruegenberg opened this issue Mar 30, 2023 · 4 comments
Labels
type:feature New feature or request

Comments

@mruegenberg
Copy link
Contributor

mruegenberg commented Mar 30, 2023

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: MrKepzie/Natron#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?

  • My feature is realistically implementable
  • My feature is NOT realistically implementable

Can you contribute in creating this feature?

  • I am unable, or not willing to contribute to creating this feature
  • I am able and willing to contribute to the creation of this feature

Additional details

No response

@mruegenberg mruegenberg added the type:feature New feature or request label Mar 30, 2023
@devernay
Copy link
Member

devernay commented Apr 5, 2023

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:

  • add a OCIODisplay node to your graph, connect your viewer to it
  • connect a Switch node between OCIODisplay and outputs you want to visualize
  • Use the switch parameter to select the input.
  • Alternatively, you could clone OCIODisplay at each output to visualize, and us the viewer commands instead of a switch.

@mruegenberg
Copy link
Contributor Author

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
Copy link
Member

devernay commented Apr 7, 2023

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:

  • add opencolorio as an actual build and run dependency of Natron (currently, Natron doesn't even link to OCIO)
  • use OCIO to get the list of display spaces for the project's OCIO config
  • use OCIO functions to do the actual transform rather than the current ones (which use 1D LUTs as far as I can remember)

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
Copy link
Contributor Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type:feature New feature or request
Projects
None yet
Development

No branches or pull requests

2 participants