Igor Churakov

maxpayne

About Me

EXPERTISE
VFX Artist
INDUSTRY
Film/TV

Connect

LOCATION
Canada
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

HDK : Multi output Oct. 23, 2026, 8:11 a.m.

Hi everyone. I'm trying to export something from the second output but with no luck.

I found a sample file "SOP_dualStar" that seems to be having what I need but I can't figure out the logic completely.

In a header file we should have
GU_DetailHandle cookMySopOutput(
OP_Context &context,
int outputidx,
SOP_Node *interest
) override;

It also has void buildStar(GU_Detail *dst,
OP_Context &context);

As far as I understand the logic happens inside the

cookMySop that runs "buildStar" logic

But then what is happening in cookMySopOutput ?

GU_DetailHandle result;
GU_Detail *dst = new GU_Detail();

result.allocateAndSet(dst);

buildStar(dst, context);

Is there any chance someone could explain to me how that works ?

I need to do some logic on input geo, create an attribute and write it for the first output, for the second output I want to create some points based on array that has been created when doing logic for the first output.

I kind of made it working at some point but looks like array was empty.

HDK Multithreading over point groups(one thread - one group) July 14, 2026, 1:21 p.m.

It loos like I've got something working.

class moveUp
{
...

Getting current range from the array of UT_Array<GA_Range>
looping over that range of points and doing something
...
};

groupRangesArray has several UT_Array<GA_Range> made of point groups.

UT_BlockedRange<exint> groupsRange(0, groupRangesArray.entries());

moveUp MoveUpWorker(&groupRangesArray, gdp);

UTparallelForLightItems(groupsRange, MoveUpWorker, true);

UTparallelForHeavyItems is deprecated but UTparallelForEachNumber gives me weird behavior but I didn't look into it yet.

It would be great if someone could confirm that this is the right way of doing it or it doesn't make sense.

HDK Multithreading over point groups(one thread - one group) July 10, 2026, 1:05 p.m.

Hi Umang_Raj. Thank you for the explanation. That is more clear now. I guess that won't work in my case then. I'm now thinking that my initial question was a bit misleading.
I have point groups. pt_group_0 pt_group_1 etc. Each group has mutually exclusive points. I want to run some logic on each group of points but in parallel and so they don't overlap each other. So one thread takes care of one group(as an example).
Creating GA_Range using those groups works but it contains only one range at a time. How to run over all those ranges?