Forum breadcrumbs - You are here:ForumPrism: GeneralPDG and Prism
Please or Register to create posts and topics.

PDG and Prism

I remember that he mentioned in the masterclass that the hou module should be used with caution. But environment variables like $HIP or $PDG_DIR are used in many default values of TOP nodes. So I can't imagine why it should be a problem to use $PRISMJOB as long as the value doesn't change during the execution of the graph.

Most of the time Prism TOPs would be used to create or manipulate scenes from multiple shots or sequences at once. The context of the current scenefile is not relevant for these cases. At the moment I don't see why a init_Prism hda is necessary, but maybe I have to play around a bit more with some Prism TOPs setups.

You can get the Prism projectname like this:

from PrismInit import pcore
print pcore.projectName

 

Yeah I guess it's mostly useful if you want to make your custom set ups integrated with Prism. For example I would like to have some of the cache's (the intermediate one's) stored on a spesific location outside prism (because our local project path is on the server at the office, and I don't want to read and write more than necessary to it.)

As I've been working a bit more on my setup, I realized that there is one quite big blocker, and that's dealing with knowing when a state execution is complete. I could get around it by using the built in deadline submitter and recreate the folder structure, until there is an official prism/pandora submitter. And speaking of creating folder structure, is there some prism code to version folders I could use?

I get your point regarding the cache folder in a temp location, but that folder would be used only when you define some outputpaths manually in your TOPs setup, since Prism follows it's usual folder structure, right?

I'm not sure if I understood the problem correctly. You have a workitem, which publishes a Maya scene and the workitem finishes before the publish is actually completed?

 

Quote from Magnus on 5. August 2019, 18:51

...until there is an official prism/pandora submitter.

I guess you mean scheduler. A scheduler always works with a specific renderfarm manager. So there won't be a general Prism scheduler. A Pandora scheduler would be possible, but I haven't looked into that yet.

 

Quote from Magnus on 5. August 2019, 18:51

And speaking of creating folder structure, is there some prism code to version folders I could use?

Every state has a function, which returns the outputpath of the next version (which would be used, when the state gets executed). If you are looking for that I can give you an example.

  1. Prism init / getting prism variables
    I don't want to force this into the official build in any way. All I can say that I already have found it quite useful on multiple occations, it's just makes it really easy to customize your pipeline. Yesterday I was doing some animation caches with the 'ROP geometry output' that I wanted to go on my cache drive, and I could very quickly build a procedural path for it:`@customCacheFolder`/`@projectName`/`@seqName`/`@shotName`/$OS/v01/`@projectName`_`@seqName`-`@shotName`_$OS.$F.bgeo.sc

    Btw, does anyone know how to access the output string of the rop node? (I want to open a window with the path)

  2. Submitter
    Yes you are absolutely right, I got it mixed up. I guess this is quite a big undertaking, right? I was thinking, that as the most common task to distibute is rendering, and Gpu rendering is quite common, there really isn't any advantage to use a scheduler as gpu renderers cannot be multithreaded. So maybe a simpler solution could be to have a node that publishes a prism state, and somehow get a message when the task is complete (I know dealine have this functionality) and then tell the node that the workitem is complete.
  3. Versioning
    Thanks. I'm looking for a way to do this with python so it can be added to any operation. Let's say there is a folder named 01, do you know how to automatically version the next as 02 etc. I'm very beginner level with Python, and didn't find much on google (I'm sure I searched with the wrong keywords...). I was thinking maybe prism have a general function to check what version to add next?

 

  1. It could be useful to have this context variables as global variables in Houdini and not just in TOPs. Maybe in a future version 🙂

 

Quote from Magnus on 6. August 2019, 9:32

Btw, does anyone know how to access the output string of the rop node? (I want to open a window with the path)

You mean something like this?

hou.node('/obj/topnet1/ropgeometry1').parm("sopoutput").eval()

2. Writing a Pandora scheduler could be a big task. I think it makes sense to make sure that Prism works fine with the local and Deadline schedulers first, as they are the most used ones.

3. Not a general function. It always depends if Prism is looking for a scenefile version or a task folder version. You can have a look at this function, which finds the next version for a scenefile: https://github.com/RichardFrangenberg/Prism/blob/25fa6db5bda47e5add3d320b2db1ef890902cc35/Prism/Scripts/PrismCore.py#L1975

The idea is to convert the highest existing version number to an integer, add 1 and convert it back to a string like this:

highestVersion = "01"
nextVersion = int(highestVersion) + 1
nextVersionString = "%02d" % nextVersion

 

  1. Oh right. Didn't think about that the sopoutput would work, thanks!
    Yeah, it's super handy. I'll keep it as a custom HDA for now, and share it here later when it is a bit more polished if anyone wants it.
  2. sounds good
  3. Thank you I'll take a look.

Did you guys see this video sideFX uploaded last night? Pretty good timing 🙂

PDG as a Pipeline Tool for Small Teams | Pavel Smirnov | SIGGRAPH 2019
https://www.youtube.com/watch?v=t0bhiCoDR8M

Awesome timing indeed!

I found it quite hard to follow at times, but it shows the exact workflows that we could make use of for prism.

Nice example, but I hope that the Prism PDG integration will be a lot more powerful and provides more flexibility than this. I know it not an easy goal, but I think we already have enough ideas 🙂

PrismPDG will be the king of all pipelines for sure! 😀

From the 'Hodini Artists' facebook group:

PDG/TOPS Flipbook: here is the setup to create a sim preview flipbook with OpenGL instead of Mantra--renders viewport MPlay-style images with MPlay speed.

I saw the 17.5 Scott Keating presentation and wanted to set up something that does the same, but with flipbook.

Here is the link to the hip in case anyone wants to use it:

https://www.dropbox.com/s/2f1w8h4kb9gypic/WedgesFlipBook_working.hiplc?dl=0&fbclid=IwAR0CnlBfNohZgcLw0yeKhEIu6V_1Wc412ibAE98cmBqNYixFaoPDErhctDI

Would probably save an hour or two when making the prism pdg playblast node.