Abstracting LOP graph cooking from farm submission

   2394   6   1
User Avatar
Member
209 posts
Joined: 11月 2013
オフライン
Just wanted to get people's thoughts on the best way to submit multiple passes to Husk/Render farm without unnecessary cooking of the scene. An example:

I have 3 passes. I switch between them via a Context Option called 'pass'. In order to submit each pass to the farm, the Context Option needs to be re-evaluated before each submission can happen. This means waiting for the lop graph to cook for each and every render pass. Pretty slow in heavy scenes.

I would assume the simple answer is:
-Cache the hip file to disk
-Open hip file in background process
-Change Context Option and submit per-render pass

Whilst this would mean the user's current session is not held up while submission happens, the amount of time to send to the farm is still kind of long due to cooking the lop graph for each pass.

Is there a way to defer or abstract the lop graph cooking to ensure the Husk job does all the cooking once submitted and not before submission?
Edited by Hamilton Meathouse - 2021年10月19日 18:51:44
User Avatar
スタッフ
4559 posts
Joined: 7月 2005
オフライン
Eventually some process is going to have to do that LOP cooking... It can't be husk, because husk doesn't know anything about nodes. Your suggested simple answer is the right one I think.
User Avatar
Member
9281 posts
Joined: 7月 2007
オフライン
should be pretty straightforward using TOPs
(haven't tried, just assuming should be something like this)

- Wedge TOP - create attribute (whatever name, let's say "pass_wedge" as your context option) holding your context option values (to essentially get workitem per your context option value)

- USD TOP - set up your filename based on @pass_wedge attruibute as well as use Context Options section to create te actual "pass" context option with the value from workitem attribute @pass_wedge
(as long as you don't have Edit Context Options LOP in your LOPs that would override it, if you do, then use @pass_wedge directly in your Edit Context Option LOP or bypass it to allow global context option to be used )

- USD Render TOP - to pick up the upstream USD file and render
Edited by tamte - 2021年10月19日 23:36:39
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
9281 posts
Joined: 7月 2007
オフライン
alternatively if the difference among those 3 (or N) usd files is minor, you may also want to consider having pre-render script during Husk execution that would apply the modification to usd in memory and bypass all the need for context options and multiple usd generation beforehand
essentially having only a single USD file and render N-times with the applied modification, but obviously useful only for suitable cases
Edited by tamte - 2021年10月19日 23:31:10
Tomas Slancik
CG Supervisor
Framestore, NY
User Avatar
Member
209 posts
Joined: 11月 2013
オフライン
Thanks Tomas - I've literally never used TOPs, but I will have a look into your solution.
User Avatar
Member
209 posts
Joined: 11月 2013
オフライン
Tomas would you happen to have time to rough out an example hip file? Or know of any TOP tutorials for LOP graphs? I found this one as a start: https://vimeo.com/420540314 [vimeo.com]

I didn't find a USD Top as you wrote above - I assume you meant USD Import Top?
User Avatar
Member
9281 posts
Joined: 7月 2007
オフライン
Hamilton Meathouse
I didn't find a USD Top as you wrote above - I assume you meant USD Import Top?
Sorry, I meant ROP USD Output TOP
Tomas Slancik
CG Supervisor
Framestore, NY
  • Quick Links