Split Pop Downstream Behavior

   6092   7   2
User Avatar
Member
26 posts
Joined: Nov. 2008
Offline
I'm trying to grasp the behavior of the split POP node, especially how downstream nodes effect particles. I have found a solution to an odd behavior, and I wanted to see if I'm doing this the best way.

I want to use split to make one particle emit a trail of other particles. I'd like to put a force downstream from the split that effects both the split particles and parent particles.

The default behavior of downstream nodes appears to only effect particles emitted by split. I created an “All” group below the split node that combined both split and birth particles. To create this group, I entered “Birth Split” in the Source Group attribute, and set the Rule to ‘1’. In the force node, I set the Source Group to “All”.

I made a hip file to show my solution, and I want to know if there is a better way.

Thanks for any tips.

Attachments:
split_downstream_force.hip (78.9 KB)

Scott Peterson, Machine Learning Graphics Engineer, Unity
User Avatar
Member
4344 posts
Joined: July 2005
Offline
I admit to not looking at your hip file but this might provide some insights.

http://www.sidefx.com/index.php?option=com_forum&Itemid=172&page=viewtopic&t=6162 [sidefx.com]
if(coffees<2,round(float),float)
User Avatar
Member
4344 posts
Joined: July 2005
Offline
Ha, now that I look at the hip file I see that you were aware of that thread.

Another approach without Group abuse.

Attachments:
out.jpg (8.8 KB)

if(coffees<2,round(float),float)
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Not nearly as complicated as Jim makes it out although that is an excellent thread.

It is just the lack of a Collect POP that is collecting the original source POP with the Split POP and then applying the forces to all the particles after the collect. POPs only knows to build the rules top down to the final display POP. It doesn't know how to resolve two separate forked leaves in the network.
The solution is to use a Collect POP to merge in all the various leaves back to a single chain at the end.

See the attached file for the proper way to build this up.

Attachments:
split_downstream_force_132_v02.hip (84.7 KB)

There's at least one school like the old school!
User Avatar
Member
4344 posts
Joined: July 2005
Offline
WINNER!

:wink:

Yea that iterative pop splitting isn't needed at all if you just want to apply gravity to everything. The Split POP is basically a new particle system so you just have to collect it back into the original one.
if(coffees<2,round(float),float)
User Avatar
Member
26 posts
Joined: Nov. 2008
Offline
Very nice simple solution!

I ran into a snag when I tried something more complex, though.

This is simpler than it sounds, so refer to my picture. I want to split a parent into two trails, apply something to the parent and 1 trail, and collect the other “split” downstream. The graph complains when I try to use two different collect nodes, so I assume the answer is that I need to use groups.

Here's a broken setup that I'm having trouble making work.

Attachments:
split_grouping.zip (20.8 KB)

Scott Peterson, Machine Learning Graphics Engineer, Unity
User Avatar
Staff
2540 posts
Joined: July 2005
Offline
Yes groups is the way to go for this.
I believe you can only use a single collect POP to bring in all the leaves.

The Group POP has a Generator option where you can easily collect all the Generator POPs (location, source, split, etc) in to a group anywhere in the POP network.

See the attached hip file.

Attachments:
split_grouping_v02.hip (92.5 KB)

There's at least one school like the old school!
User Avatar
Member
26 posts
Joined: Nov. 2008
Offline
Fantastic, thank you!
Scott Peterson, Machine Learning Graphics Engineer, Unity
  • Quick Links