ynput / OpenPype

Main OpenPype repository (to be deprecated)
https://openpype.io
MIT License
283 stars 128 forks source link

Houdini: OCIO support #4836

Closed antirotor closed 3 weeks ago

antirotor commented 1 year ago

Is there an existing issue for this?

Please describe the feature you have in mind and explain what the current shortcomings are?

We need to enhance OCIO support of AYON inside Houdini. With #4700 OCIO is correctly passed to Houdini, but setting OCIO profiles (and other options) on relevant nodes needs to be done manually. Like these options in OpenGL ROP (introduced by #3839):

image

This is somehow similar to #4833.

There might be other places to set.

How would you imagine the implementation of the feature?

It should be done as it is already done in Nuke, where you can set color spaces like this:

image

Are there any labels you wish to add?

Describe alternatives you've considered:

No response

Additional context:

No response

[cuID:OP-5602]

BigRoy commented 1 year ago

What would be a decent default colorspace to set for the review output files. What setting should we obey to? Would it the preferred rendering space? or the display space? (Houdini doesn't have any settings for that however). In the case of Nuke. I'm still not sure what the color space should be set to for this case.

MustafaJafar commented 1 year ago

I was reviewing this issue #4833 and I believe it depends on this issue.

As far as I know, Houdini requires setting OCIO profiles (and other options) manually as Houdini nodes don't inherit color management settings like in Maya.

I can think of two solutions

  1. Set color space dynamically so that a plugin will deduce what color space to use from default display and default view
  2. Expose Parameters to Ayon/OpenPype Settings UI so that a plugin will use these exposed parameters

For the mentioned example OpenGL, This solution worked for me. I used the same OCIO Color correction as hou.Color.ocio_defaultView() which is almost the same that happens with Maya playblast (to use view transform)

image

There's also another problem in houdini that not all nodes have explicit colorspace parameters, and they will use scene_linear implicitly (e.g. mantra, texture read). so, I think there will be some tweaking in all ROPs.

what do you think ? @BigRoy @antirotor @moonyuet

antirotor commented 1 year ago

I am not sure if we should touch explicit set colorspaces. My guess is that productions usually assume that colorspaces that are explicitly set remains so, but I don't know. Maybe we should implement is when requested and it could be done as in Nuke perhaps? Otherwise the way with ocio_defaultView() seems reasonable for me.

BigRoy commented 3 weeks ago

This overlaps a lot with https://github.com/ynput/OpenPype/issues/67

@MustafaJafar still relevant?

MustafaJafar commented 3 weeks ago

This overlaps a lot with https://github.com/ynput/OpenPype/issues/67 yes, they are, as far as I know.

The associated internal ticket was closed by ondrej so it's fair to close this one.

For reference, it's related to https://github.com/ynput/OpenPype/pull/5322 https://github.com/ynput/ayon-core/pull/36