OpenPype
OpenPype copied to clipboard
Houdini: Implement Arnold ROP render publishing to Deadline from Houdini
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 fullpathmap_arnold_proceduralsfunction inhrender_dl.pyin the Deadline Houdini plugin. I just added areturnat the beginning of that function. - This will also work fine without an Arnold license however render will be watermarked.
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?
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?
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.
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?
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.