Sop Simple Baker -

   254   5   1
User Avatar
Member
16 posts
Joined: July 2005
Offline
How do you bake through the sop simple baker HDA in Tops.

Using the Rop Fetch tops it will execute the bake but the results come back black.

Cheers,
Ali
User Avatar
Member
16 posts
Joined: July 2005
Offline
here is a file Bonsak and I made from our discussion over discord which shows the problem.

if your wedge goes over two then the render fails.

Attachments:
bake_withWedge.hiplc (865.0 KB)

User Avatar
Member
16 posts
Joined: July 2005
Offline
ok I got this working, but I had to make a new hda with modified python code
basically I added a parameter to the rop baker which is called index
then shove @wedgeindex in it and reference it via channel params in the file (although this may be unnecessary based on the next step)
then in the PythonModule script I added

index = str (node.parm(“index”).eval())
host_name = socket.gethostname() + index
User Avatar
Staff
141 posts
Joined: May 2014
Offline
I think the problem with the simple baker is that it has a node that writes a temporary file to disk, e.g. to /tmp on Linux. If you're running multiple PDG jobs at the same time that temporary file gets overwritten by different copies of the baker, causing most of the jobs to fail or produce incorrect results.

The work around on the PDG side is to mark the jobs in that node as “single”, which means that only one job for the node will run at the same time. This can be done by going to the “Schedulers” tab, enabling the “Local Scheduler” overrides, and toggling on the “Single” parameter.

The real fix is for the SOP Simple Baker tool to make the temp file path configurable on the asset, so that it can be changed on a per job basis.
Edited by tpetrick - March 20, 2019 12:02:37
User Avatar
Member
16 posts
Joined: July 2005
Offline
Yes That is exactly the issue.

and to fix it on the PythonModule of the simpleBaker rop in ropnet1 I had to adjust it to read the index attrib into the pre and post bake functions with the code above :

index = str (node.parm(“index”).eval())
host_name = socket.gethostname() + index

then I plumbed through the @wedgeindex into the parm which gave each job its own temp file.

I just baked 60 asset variations in one go. works well when its working.
troubleshooting it was a MindBonker ! it was really difficult knowing where the problem originated from as the feedback was minimal (or atleast I didn't know where to look at first )
User Avatar
Staff
64 posts
Joined: July 2015
Offline
Hi,

I have changed the unique name generation to use uuid instead of hostname alone. This should assure every bake will be unique.
This will be part of build 1.136 in 17.5

Paul
Paul Ambrosiussen
Technical Artist - Game Tools
SideFX
  • Quick Links