Taylor Petrick

tpetrick

About Me

Expertise
Not Specified
Location
Canada
Website

Connect

Recent Forum Posts

few more questions [updated] July 17, 2019, 11:26 a.m.

I've attached an example of the invoke node. The example fetches a box from SOPs using the geometry import and feeds it into an invoke which subdivides the geometry and applies some noise in a compiled block.

The invoke is currently the only way to do in-process geometry processing in TOPs, however unfortunately I don't think the HF file node can be used in a compiled block at the moment.

In general TOP nodes can't access SOPs when cooking because TOPs cooks in parallel/off the main thread. The Geometry Import is able to load geometry from SOPs during its static work item generation step, but it currently can't do that dynamically or at work item cook time for the aforementioned reasons. We're working on improving our geometry handling and one of the top priorities is to remove that restriction. As you mentioned, for small tasks the HDA Processor and ROP Geometry nodes are often too heavy.

You could try using a Python Script TOP node and the HOM API to achieve what you want, e.g by getting a reference to a HF file node, accessing it's geometry as a hou.Geometry and saving it out with hou.Geometry.saveToFile(file_name). Note that there may be issues with that approach if you make changes to your SOP network while the TOP network is evaluating those work items, for example.

Tagging Work Items Results July 2, 2019, 2:05 p.m.

Sorry, just noticed I made an error in my previous post! Hopefully you haven't tried it yet. The HScript expression function takes an index, a tag, and a localize flag, so it should actually have been pdginput(0, “file/geo/sphere”, 0).

Tagging Work Items Results July 2, 2019, 10:39 a.m.

That's definitely a bug on our end. I'll look into it today, but in the mean time you should be able to use HScript instead of Python for your expression. For example, pdginput(“file/geo/sphere”, “”, 0).