OpenPype icon indicating copy to clipboard operation
OpenPype copied to clipboard

Houdini: Implement Arnold ROP render publishing to Deadline from Houdini

Open BigRoy opened this issue 3 years ago • 3 comments

Brief description

Implements Arnold rendering for Houdini in OpenPype.

Description

  • [x] ✅ Currently Tested solely with Deadline submissions
  • [x] ✅ Publish job now gets created.

Additional info

It seems the rendering logic, e.g. that was there for Redshift, never really worked in OpenPype. Likely no one actively uses it? Because some errors have been creeping into the code over time and it was unable to still function as it should.

Creating it as a Draft Pull Request to initiate discussion since there are still some TODOs plus some changes are in code also used by Redshift. Would love to know if those seem problematic to anyone.

Testing notes:

  • Tested in Houdini 19.0.455 with htoa-6.0.2.0_r0ad447a_houdini-19.0.455.py3
  • This requires some tweaks in Deadline because latest Deadline does not come with Hou 19 support out of the box + there's a bug in Houdini that will ALWAYS try path remapping on some Arnold nodes (even if path remapping is disabled on the plug-in) which actually fails to work and errors with: FailRenderException : Error: Caught exception: 'NoneType' object has no attribute 'instances' - so if you hit that you'll need to just disable the full pathmap_arnold_procedurals function in hrender_dl.py in the Deadline Houdini plugin. I just added a return at the beginning of that function.
  • This will also work fine without an Arnold license however render will be watermarked.

BigRoy avatar Jan 28 '22 17:01 BigRoy

We've started to do some test work with this feature here and are currently submitting houdini + arnold renders (houdini 19.5.303 + htoa 6.1.3.1) and have publish jobs submitted along. The commits aren't in this branch but once things are starting to appear functional on our end I'll try and move the code into this PR (or a new one)

Any tips on the best way to implement Deadline submissions? Potentially with AbstractSubmitDeadline? Should I rewrite the Houdini logic to use that instead?

BigRoy avatar Aug 19 '22 15:08 BigRoy

Any tips on the best way to implement Deadline submissions? Potentially with AbstractSubmitDeadline? Should I rewrite the Houdini logic to use that instead?

Are you the best one to ask? @antirotor any tips on this?

BigRoy avatar Aug 22 '22 13:08 BigRoy

Any tips on the best way to implement Deadline submissions? Potentially with AbstractSubmitDeadline? Should I rewrite the Houdini logic to use that instead?

Are you the best one to ask? @antirotor any tips on this?

I guess so. I think it would be th best to unify how deadline works with renders across all hosts. AbstractSubmitDeadline is attempt at that, it has dataclass wrapping Deadline job that can help and your enhanced RenderProducts concept is great. There are few hosts that are using AbstractSubmitDeadline, exception is Maya and Nuke, both would benefit from refactor to this. Maya definitely, it would for sure ease maintaining the code.

antirotor avatar Aug 22 '22 21:08 antirotor

Since new publisher for Houdini is already merged, we can move with this forward. Should we create new branch here, merge this PR there and then make the new publisher changes so the histiry will be kept?

antirotor avatar Dec 07 '22 13:12 antirotor

Since new publisher for Houdini is already merged, we can move with this forward. Should we create new branch here, merge this PR there and then make the new publisher changes so the histiry will be kept?

If that's possible I think that would be best - or merging develop into this branch and continue from there. But keeping the history instead of squashing I think would be good.

BigRoy avatar Dec 07 '22 17:12 BigRoy