Render multiple takes in LOPS at once H19.5

   3257   11   2
User Avatar
Member
8 posts
Joined: March 2020
Offline
Hello everyone.

So, I have a scene that I moved to Solaris to practice with it and I am trying to render it with Karma, inside the Solaris environment. So not in ROPs.

I have created multiple takes since I am planning to comp them afterwards, and everything outputs to a Karma Render Properties LOP and finally a USD Render ROP. I suppose this is the right way to do it?

Now, I just can't figure out how to render all the takes at once.

In ROPs you would just connect multiple Mantra nodes together, each of them set to render a different Take and you could have all your Takes rendered in one go.

In LOPs, I have to choose which Take to render in the USD Render ROP, but I can't connect more of them to run them subsequently and render multiple Takes procedurally. I would like to do that and not wait for one to finish so I can start the next one manually.

Anyone know how I can go about this? Is it even possible in LOPs?
I have read the documentation as much as I could and searched everywhere online but I haven't found anything close to an answer.

Thank you very much in advance for any help provided.
Edited by MrTeeKay - Aug. 3, 2022 14:52:29

Attachments:
Capture.PNG (183.9 KB)

User Avatar
Member
8597 posts
Joined: July 2007
Offline
MrTeeKay
I would like to do that and not wait for one to finish so I can start the next one manually.
- you don't have to wait for one to finish before executing next one, select all your usdrender nodes and click on render to disk, it should execute one after another

- you can also use TOPs to manage how you render all your usdrender rops either locally or on the farm
Tomas Slancik
FX Supervisor
Method Studios, NY
User Avatar
Member
8 posts
Joined: March 2020
Offline
Thank you for your answer Tomas.

It seems like by selecting all the nodes and clicking on render to disk they are all being executed at the same time instead of one after another. Which can be very time consuming most of the time I believe.

TOPs is actually a nice idea but I would have expected from Solaris to have this functionality.

If I remember correctly, in previous versions you could actually connect multiple Karma nodes together and it would execute them subsequently.
User Avatar
Staff
4445 posts
Joined: July 2005
Offline
If you need to do anything more complicated than executing a single USD/USD Render ROP at a time, you still need to use another network context (ROPs or TOPs) to manage dependencies between passes, render out multiple passes with a single click, etc. This is not new, it has always been a limitation of having individual ROPs appear in non-ROP contexts (the same is true of Geometry ROPs in SOP networks). We'd love to have a better solution to this that doesn't require jumping between contexts, but for now your best bet is probably to bite the bullet and put a ROP Network inside your LOP Network, and create all your per-pass ROPs inside that ROP network.
User Avatar
Member
7809 posts
Joined: Sept. 2011
Offline
mtucker
If you need to do anything more complicated than executing a single USD/USD Render ROP at a time, you still need to use another network context (ROPs or TOPs) to manage dependencies between passes, render out multiple passes with a single click, etc. This is not new, it has always been a limitation of having individual ROPs appear in non-ROP contexts (the same is true of Geometry ROPs in SOP networks). We'd love to have a better solution to this that doesn't require jumping between contexts, but for now your best bet is probably to bite the bullet and put a ROP Network inside your LOP Network, and create all your per-pass ROPs inside that ROP network.

How do you get rops to wait for Husk? is there an option on the usdrender rop to block? I think that's the problem MrTK was referring to, with all the renders happening at once.
Edited by jsmack - Aug. 3, 2022 13:12:30
User Avatar
Member
8 posts
Joined: March 2020
Offline
mtucker
If you need to do anything more complicated than executing a single USD/USD Render ROP at a time, you still need to use another network context (ROPs or TOPs) to manage dependencies between passes, render out multiple passes with a single click, etc. This is not new, it has always been a limitation of having individual ROPs appear in non-ROP contexts (the same is true of Geometry ROPs in SOP networks). We'd love to have a better solution to this that doesn't require jumping between contexts, but for now your best bet is probably to bite the bullet and put a ROP Network inside your LOP Network, and create all your per-pass ROPs inside that ROP network.


It's pretty much what jsmack said.
I actually want to execute a single USD Render ROP at a time. Not all of them at the same time.

I have 9 different takes that I would like to render. Right now, it seems like I either have to render each take manually, so wait for one to finish and go to the next Render ROP and execute it
or, render all the takes at the same time which would be very time consuming.

On the other hand, as I mentioned, in ROPs you can have multiple mantra nodes rendering different takes, merge them all together hit render and you can have all your takes rendering one after the other procedurally.

I can't seem to find a way to do that in LOPs though which is something that would be very helpful in general I believe.
Edited by MrTeeKay - Aug. 3, 2022 14:28:32
User Avatar
Staff
4445 posts
Joined: July 2005
Offline
I'm not sure exactly how this all worked with mantra ROPs, but the same capabilities exist in the USD Render ROP I believe. The Batch ROP is used to force one sequence to complete before starting the next sequence (rather than interleaving frames, which I believe is the default behavior for the Merge ROP without any Batch ROPs. See the attached file.

Attachments:
usdrender_dependencies.hip (195.8 KB)

User Avatar
Member
7809 posts
Joined: Sept. 2011
Offline
With mantra rops, the mantra process would block until complete. husk does not.
User Avatar
Member
8 posts
Joined: March 2020
Offline
mtucker
I'm not sure exactly how this all worked with mantra ROPs, but the same capabilities exist in the USD Render ROP I believe. The Batch ROP is used to force one sequence to complete before starting the next sequence (rather than interleaving frames, which I believe is the default behavior for the Merge ROP without any Batch ROPs. See the attached file.

Hey, thank you for that file! Nice trick.

Both your file and tamte's suggestion
tamte
- select all your usdrender nodes and click on render to disk, it should execute one after another
work perfectly when it comes to rendering different sequences.

I suppose rendering singe frames is another story but not a big deal.

Thank you very much for all your answers.
User Avatar
Member
7809 posts
Joined: Sept. 2011
Offline
MrTeeKay
mtucker
I'm not sure exactly how this all worked with mantra ROPs, but the same capabilities exist in the USD Render ROP I believe. The Batch ROP is used to force one sequence to complete before starting the next sequence (rather than interleaving frames, which I believe is the default behavior for the Merge ROP without any Batch ROPs. See the attached file.

Hey, thank you for that file! Nice trick.

Both your file and tamte's suggestion
tamte
- select all your usdrender nodes and click on render to disk, it should execute one after another
work perfectly when it comes to rendering different sequences.

I suppose rendering singe frames is another story but not a big deal.

Thank you very much for all your answers.

I noticed a checkbox on usdrender called "block render" have you tried this one?
User Avatar
Member
8 posts
Joined: March 2020
Offline
jsmack
I noticed a checkbox on usdrender called "block render" have you tried this one?

I was pretty sure I saw that too somewhere so I just checked a bit more and noticed the "wait for render to complete" checkbox.
Maybe it's the same one you are talking about.

So, I checked it and sure enough, it renders the nodes in order and not at the same time even with single frames!

From what I understood from the documentation, it basically freezes Houdini until the renderer exits.
Same way it freezes it when it is rendering a sequence and you get the progress bar on top.

But now it does it for single frames too instead of just rendering them all at the same time in the background.

So, yeah that works! Good call.

Edit: I am attaching a screenshot in case anyone struggles to find the checkbox.
Edited by MrTeeKay - Aug. 3, 2022 19:23:27

Attachments:
Capture.PNG (128.0 KB)

User Avatar
Member
1 posts
Joined: Feb. 2022
Offline
I have found a quick and easy way to render several LOPS nodes as it was done in Mantra. I imagine there will be more ways, but I don't like to complicate myself and I don't know how TOPS works.

Once ready to render (I put 3 render nodes), I created a ROPNET. Inside the ROPNET, with the USD Render node it allows me to link the Karma Render Settings node from LOP Path, and underneath I select the render settings by simply pulling down the right arrow.

I tell it the range of frames I want to render and hit Render to Disk.

I have done some test and it works.

Attachments:
ropnet Solaris.PNG (44.1 KB)
usd render OUTPUTS.PNG (256.5 KB)

  • Quick Links