Jedidiah Mitchell

jedmitchell

About Me

Expertise
Freelancer
Location
United States

Connect

Recent Forum Posts

Component Material in For-Each Loop? Aug. 4, 2022, 11:46 a.m.

Is it possible to use a For-Each loop to add a dynamic number of component material variants to a Component Builder setup? The workflow for adding geometry variants with a loop, as documented in the Chris Rydalch video (https://youtu.be/EgTqz6y_oAs [youtu.be]), doesn't seem to have an analog for the materials that I can figure out.

This setup, using regular LOP nodes, will create 5 variations of the inputs:diffuseColorattribute:


Trying to replicate it with Component Builder nodes doesn't work out of the box, and in fact the Component Output node doesn't even register a valid input in this arrangement (I suspect because of the For-Each node interrupting the upstream connection to the Component Material):


Seems like there must be some metadata moving through the Component Material node that isn't making it through the loop. Is there another way to set this up, or is it impossible to use the Component nodes to achieve this kind of dynamic variation?

I've attached my demo scene file to play with. Thanks!

Batching Non-Frame Work Items? July 28, 2022, 10:28 a.m.

After some more (better) searching I found this post, which makes me think this workflow just isn't really supported:
https://www.sidefx.com/forum/topic/81893/ [www.sidefx.com]

I built a workaround by switching to a generic generator that would create the total number of work items, then used SOP for-loops driven by expressions with $F in them to assign attributes to specific frames instead of with the wedges. With my work items spread out across the timeline I can use the regular ROP Fetch batch options and it works as expected. Total processing time for my test asset went from 30 minutes to about 1 minute.

It sounds like there is already a RFE for codifying this sort of non-frame batching, which I strongly support as this isn't the first time I've had to do a hack like this for generic workflows.

Batching Non-Frame Work Items? July 27, 2022, 4:24 p.m.

I have a customized attribute baking setup that needs to do some work in SOPs, pass a few UV sampled attributes to COPs and then write out that data as a UV tile image. Cooking this setup is very quick but I'm working with assets that have hundreds of UDIMs which I need to traverse tile-by-tile and I'd like to leverage PDG to automate things.

I have a network with two wedge nodes that accomplishes this:

wedge1 generates work items for each UDIM on the input asset


wedge2 generates work items for each attribute that needs to be parsed per UDIM


On the ropcomposite1 TOP node which saves the resulting image to disk, I have it set to cook all frames in a single batch, but as expected this doesn't work since my work items aren't actually "frames"


The result is that a new instance of hython is spun up for each work item, which is wildly inefficient compared to the actual cooking of the work items (60s to start hython, .5s to cook...).

I've tried partitioning by attribute but then I only get the first work item of each partition outputting to disk, though I may be missing something there.

What is the best way to structure this kind of setup to get the desired batching behavior?

Thanks for any ideas!