Render_ROP license in Solaris

   7172   16   3
User Avatar
Member
14 posts
Joined: 7月 2013
Offline
hi,
USD_Render_ROP(LOP), USD_ROP(LOP), USD_Render(TOP),
These consume houdini or houdini-engine license?

how to best flow for render image sequence with USD data from Solaris?
Is there a license-free way to render?
I'm worried for a while
our Renderer is Arnold.

the three patterns.

(i)scene assemble -> USD_Render_ROP(LOP)

I assembled scene with Solaris.
next, do rendering the sequence with USD_Render_ROP(LOP) on deadline render-farm, it't best.
but it's seems like to need houdini or engine license.
I think this workflow is not comfortable for rendering long image sequence.

(ii)scene assemble -> USD_ROP(LOP) -> USD_Render_ROP(LOP)

I have tried export USD-file with USD_ROP(LOP).
it's seems like to need houdini or engine license.
load the USD-file into USD_Render_ROP(LOP) is same the case (i).
I think this workflow is not comfortable for rendering long image sequence.

(iii)scene assemble -> USD_ROP(LOP) -> USD_Render(TOP)

I exported USD-file with USD_ROP(LOP).
create top-network.
create USD_Render(TOP), load usd-file into USD_Render(TOP),
submit through deadline-scheduler.
this workflow is not work in our render-farm.(mistake in setup?)

Thank you for reading my long text.
User Avatar
Member
7741 posts
Joined: 9月 2011
Online
Yes, they all take a Houdini license. Unfortunately, there doesn't seem to be a viable way to render with LOPs/USD on the farm without making a custom solution to write a complete usd stage in a separate job from the husk render job. TOP's is also not an option as it would require a lot of dev time to write a custom plugin to use with a render farm.

I've been looking into how to write a usd stage with the usd rop in a way that parallels the usd_render rop, but so far I've been unsuccessful. Ideally, the usd_render rop would have an output usd option like the mantra rop.
User Avatar
Member
642 posts
Joined: 8月 2013
Offline
Hi.

I have almost finished making an HDA in LOPs that: does the following..

scene assemble -> USD_ROP(LOP) -> USD_Render_ROP(LOP)

The first two happen locally within the USD as it only takes a a few seconds. Then the last section can be either local of deadline. I am also using the HDA to control file names, frame ranges etc. This just makes is easier for my students.

Best Mark

Attachments:
tops1.JPG (94.5 KB)
tops2.JPG (71.0 KB)
tops3.JPG (57.3 KB)
tops4.JPG (82.4 KB)
tops5.JPG (26.2 KB)

User Avatar
Member
14 posts
Joined: 7月 2013
Offline
thanks
but I couldn't do it well.
I do not understand husk options.

I created very basic LOP-stage.
please check it up if you can.
when this scene has submitted, It have shown plugin exeption error.
Deadline:
Failed to load the plugin because: Could not initialize the plugin sandbox (Deadline.Plugins.PluginException)
Is this a mistake in setup render-farm?

Is the HDA is TOP-Network?

is the flow like below?
TOP_USD_Output(TOP) is executed on local machine short-time with Houdini License,
TOP_USD_Output(TOP) takes LOP-Stage-End.
USD_Render(TOP) is executed deadline-farm with Karma License (without Houdini-Engine)



best regards
Edited by Noboru Saka - 2021年4月20日 07:24:21

Attachments:
Solaris_Karma_Basic_v002.001.png (181.2 KB)
Solaris_Karma_Basic_v002.001.hip (1.0 MB)

User Avatar
Member
642 posts
Joined: 8月 2013
Offline
Hi.

You can have a look at my HDA if you like. It is not quite finished. but you can take mine apart to see how I got it working. But yes how you described it is pretty much how I am doing it. You will see in my HDA there is the option to render full locally, or like your description, get the usd file render locally and then just use deadline to render pdg.

Which, now I am thinking about it. You need to set paths up in deadline as well...

Here are my notes I made to myself about deadline..

-PDG setup
-Launch Deadline monitor:
-log in as super user: tools>superUserMode
-bring up the mapped paths options: Tools>Configure Repository Options>Mapped Paths
-Under global rules add the following:

-Deadline scheduler:
Submit right from the deadline LOP with name added in
Make sure usd rop is set to single process

Path to replace Windows Path

$HFS C:\Program Files\Side Effects Software\Houdini 18.0.499
$PYTHON C:\Program Files\Side Effects Software\Houdini 18.0.499\python27\python.exe
$DEADLINE_PATH C:\Program Files\Thinkbox\Deadline10
$HFS/bin/hython C:\Program Files\Side Effects Software\Houdini 18.0.499\bin\hython.exe
__PDG_SHARED P:\classAssets_Student\shared_content\PDG_shared

Best. Mark
Edited by Mark Wallman - 2021年4月20日 09:14:49

Attachments:
uhrenders.6.11.hdanc (48.7 KB)
deadline_paths.JPG (117.8 KB)

User Avatar
Member
7741 posts
Joined: 9月 2011
Online
Mark Wallman
I have almost finished making an HDA in LOPs that: does the following..

scene assemble -> USD_ROP(LOP) -> USD_Render_ROP(LOP)

The first two happen locally within the USD as it only takes a a few seconds. Then the last section can be either local of deadline. I am also using the HDA to control file names, frame ranges etc. This just makes is easier for my students.

How did you get the usd rop to localize all of the asset output paths that might be on the stage? Are you using a custom output processor, or do you force 'flatten stage' on the usd rop?

If you don't then you'll end up with a bunch of baloney written all over potentially, instead of the neat self-contained archive that usd_render saves. Especially if any sop layers are used.

Also I see you're using tops which I think makes splitting the usd process into steps easier. This might be an option where a bog standard deadline farm might be deployed, but not an option where we have a proprietary render farm.
User Avatar
Member
642 posts
Joined: 8月 2013
Offline
Hi. The top lop (ropusd2) is set to local (see screengrab). The two usdrendernodes are either set to local or deadline. My local/distributed button is controlling the switch LOP.

In terms of keeping everything organized the HDA creates a directory called "usdRenderSubmission" and writes out the file for deadline to pick up there. All done locally on the current licence. It also names the USD and any extra things it needs to write out with the hip name followed by the scene and shot number. Then in the render directory it creates a folder with the equivalent names so you dont end up with rendered images all over the place. Only the render takes a licence on the farm.

When I first started working on it I had to have two licences on the farm, but now by doing this way I am only using the single licence for rendering. Best Mark

Attachments:
Capture.JPG (56.9 KB)

User Avatar
Member
7741 posts
Joined: 9月 2011
Online
Mark Wallman
In terms of keeping everything organized the HDA creates a directory called "usdRenderSubmission" and writes out the file for deadline to pick up there. All done locally on the current licence. It also names the USD and any extra things it needs to write out with the hip name followed by the scene and shot number. Then in the render directory it creates a folder with the equivalent names so you dont end up with rendered images all over the place. Only the render takes a licence on the farm.

The usd_render ROP does a lot more than just write out the usd file like the USD rop. It forces all the output layers to save in temp with the rendered usd file. Using a USD rop will write them in their locations specified on the stage and processed by the output processors, potentially leading to a bunch of usd being written with node paths in places they shouldn't go. Using the USD rop requires the user know what they're doing and setup the stage specifically with rendering in mind. The benefit of the USD_render node is the user doesn't have to really know anything about usd to use it since all the output is collected and directed to the same directory. It's then also cleaned up when the process is finished. The USD top seems like just a wrapper for the usd rop. I don't see anything there for overriding the output asset paths. It also has error on node paths enabled, which you probably don't want for a render network.
User Avatar
スタッフ
4435 posts
Joined: 7月 2005
Offline
There is a "hidden" output processor called "savetodirectory" which is used by the USD Render ROP to cause everything to go into a single temp directory. As you say, the USD Render ROP also effectively turns off the "error on node paths". It lets you generate some pretty atrocious USD, which is why it's hidden... But I guess there are use cases for it like this. I'll talk to people here about unhiding it.
User Avatar
Member
14 posts
Joined: 7月 2013
Offline
thanks a lot,
I'm do not it well yet.
we seems to have some mistake in PDG setup.
I'll leave that as an another one issue.(difficult to understand for me)

by the way,
USD_Render_ROP(LOP), USD_ROP(LOP), USD_Render(TOP),
I heard these operators consume license in this thread at first.
I think so too.
Or , is there way rendering images from USD-file and Arnold without Houdini and HoudiniEngine license?(Not karma)
USD_Render(TOP) within deadline_scheduler?
Oh well,USD_ROP(LOP) consume license.

best.
User Avatar
Member
44 posts
Joined: 5月 2017
Offline
you can render usd files with arnold directly from the command line over deadline. The usd generation needs a batch license, but the rendering itself does not.
User Avatar
Member
1 posts
Joined: 10月 2016
Offline
As frostfx said, you can either render with arnold command, or bring the usd in a arnold procedural and render it in the standard old way.
User Avatar
Member
14 posts
Joined: 7月 2013
Offline
very thanks,
I have been executed bat file successfully on my local machine!
the bat file
set myKick=C:\Users\%USERNAME%\htoa\htoa-5.6.0.2_rbd4662c_houdini-18.5.499\htoa-5.6.0.2_rbd4662c_houdini-18.5.499\scripts\bin\kick.exe
set myLib=C:\Users\%USERNAME%\htoa\htoa-5.6.0.2_rbd4662c_houdini-18.5.499\htoa-5.6.0.2_rbd4662c_houdini-18.5.499\arnold\plugins
set startf=3
set endf=5
set icnf=1
set scenefile=Z:\BS\Temporary\TmpUsers\Saka\Arnold\usd\Solaris_Arnold_Basic_v003.001\Solaris_Arnold_Basic_v003.001.USD_ROP_LOP.usd
set output=Z:\BS\Temporary\TmpUsers\Saka\Arnold\usd\Solaris_Arnold_Basic_v003.001\pic_
set ext=.exr
set pad=4

setlocal enabledelayedexpansion

set sum=-1
set /a sum+=startf

for /L %%i in (%startf%, %icnf%, %endf%) do (
set /a sum+=1
set sum=000000%%i
set sum=!sum:~-4,4!
%myKick% ^
-i %scenefile% ^
-o %output%!sum!%ext% ^
-l %myLib% ^
-frame !sum! ^
-r 640 480 ^
-dw ^
-dp ^
-v 4
)

pause

i'm going to execute the same on Deadline-commandline.

occured additional a problem.

deadline cannot find kick program.
the machines has each machine-name.
thus, the kick path is each unique.
how to specific the kick path?
adding system path?


Attachments:
deadline_cmd.png (29.0 KB)
deadline_error.png (20.0 KB)

User Avatar
Member
14 posts
Joined: 7月 2013
Offline
hi,
i have made crrectly the "username" on commandline program path,
it work well.
thanks alot
User Avatar
Member
41 posts
Joined: 12月 2017
Offline
Hey guys,

Just adding to this, we wrote a deadline plugin for karma that purely takes the usd (output locally) and send its to deadline via husk. All working well.

We are testing out Arnold and it seems very similar as you've mentioned above. One question though. Where are you specifying the image output path for arnold?

In Karma it was in the karma render settings node, that was then passed into the USD_ROP for output.

I cant seem to find how this would be achieved when outputting a USD for arnold.

Any tips?

Cheers!
User Avatar
Member
642 posts
Joined: 8月 2013
Offline
Hi. Here is my Karma render submitter PDG that you could take apart and reform for Arnold. This way you can bypass adding any lines in deadline. Best

Attachments:
uhrenders.13.5.hdanc (44.2 KB)

User Avatar
Member
41 posts
Joined: 12月 2017
Offline
I actually build something similar with PDG that worked for Karma but we wanted to avoid using PDG completely in our pipeline to simplify things with our existing tools. Thanks for the link though, I'll investigate more on the Arnold side and post here if I find anything
  • Quick Links