Bulk processing fbx models and PDG FBX Export

   213   3   1
User Avatar
Member
3 posts
Joined: Feb. 2022
Offline
Hey all,
First post, new into Houdini but not pipelines(python and c# etc).
I seem to be joining the ranks of baffled people on FBX Export and PDG. I have spent a fair amount of time looking over all the existing assistance but I'm still missing something here that is probably painfully obvious.

Here's my situation.
I have lots of fbx models that I need to strip vert colors from (and do other things too)and then re-export the data back to fbx after processing.

I have the pdg pipe that handles source control, does some python things, pulls models into workItems and an hda that takes each workItem in, does the intended work and then writes out the processed workItem. I can check the bgeo.sc that's produced and the work is done as expected, great!

The next step falls down for me and this is where I'm fundamentally missing something that appears to be Houdini centric that others also struggle with as they set out.

My steps are too, add "ROP FBX Output TOP" and give it the Output File with Export set too /obj/*(in the belief this would export everything from the workItem under obj, basically my model and its hierarchy that I see when I import the temp bgeo. This results in empty fbx's the issue clearly being the what to Export.



Some assistance and knowledge on how to get the data in the processed workItems exported out again would be greatly appreciated and maybe fill in the gap in understanding I have here.

Attachments:
Batch_FBX_Export.jpg (73.3 KB)

User Avatar
Staff
513 posts
Joined: May 2014
Offline
The ROP FBX Output TOP creates work items that cook an FBX ROP -- the docs for that node apply to the ROP FBX Output as well, can can be found here: https://www.sidefx.com/docs/houdini/nodes/out/filmboxfbx.html [www.sidefx.com]

The Export parameter is used to specify which Object nodes in your Houdini scene should be exported as FBX files. If you want to re-export the .bgeo.sc files produced by the HDA Processor, you'll probably need to create a File node in /obj that loads in the correpsonding .bgeo.sc file.

It's a bit hard to tell what your network is doing though without actually seeing the .hip file. Note that you can also Ctrl+MMB on the failed work items that are visible in your screenshot, to see a more detailed log about what the work item was doing/why it failed.
User Avatar
Member
3 posts
Joined: Feb. 2022
Offline
Hey thanks for the reply,

"failed work items" - complains about not finding anything to export, as in it has no idea what to look for under /obj. Makes sense as there's nothing in the scene I would want it to export. My need is to export the contents of a workItem being passed from the previous pdg node, which has nothing to do with the scene the PDG is running within.

Thanks for this specific plain language explanation:
The ROP FBX Output TOP creates work items that cook an FBX ROP


If you want to re-export the .bgeo.sc files produced by the HDA Processor, you'll probably need to create a File node in /obj that loads in the corresponding .bgeo.sc file.

Okay, makes sense but should I need to load a bgeo.sc via a file node to then export it, is this the right approach? (Its an approach, of which there are many in Houdini I guess) This makes little sense to me as a pattern in my case here however I can see uses for it elsewhere.

lol, I guess I don't know what I don't know, yet!
User Avatar
Member
3 posts
Joined: Feb. 2022
Offline
I am able to generate an fbx for each now by:

  • creating a file node "ExportThis" in the scene
    that points to `@pdg_input`
  • Having 'export' on ROP FBX Output set to /obj/ExportThis


Although it works I'm not feeling too satisfied, it feels disjointed as a pipeline to approach it in this manner.

I really feel the ROP Fbx Output should take a workItem cleanly and handle the export of the data within the workItem itself without the need for a file reference within the scene that PDG is operating.(is it a "scene" or is it a "workspace" PDG operates within?)

Doing it in this manner seems like fileIO overhead going on, akin to say a Maya pipeline doing work then file operations to save a file off to then open that file again just to export it. You wouldn't you'd open a file do work, save, export, repeat.
Edited by rhexter - May 14, 2022 10:25:18
  • Quick Links