1 particle per point

   14943   13   4
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
hi .. i have a grid and am grouping points on it by a bounding box (group sop) and the bounding box is animated … how to emit only one particle for each point that the animated-bounding box is going to encapsulate

am attaching the hip file … with 2 options in it .. need a way for the first popnet1 .. i have a way of doing it … which is creating particles all across the grid and emitting jus from where the bounding object moves .. but that creating more particles than required..so not a good solution i guess .

Attachments:
parti_test.hip (56.8 KB)

User Avatar
Member
1631 posts
Joined: July 2005
Offline
You can use a Delete SOP to keep only the grouped points before your particle network. Next, in your Source POP, you set the Impulse Rate to $NPT which means number of points.

Cheers!
steven
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
yes .. but $NPT or $NGRP ( used if i don't want to del geo) still dosent work … cause each point is going to generate those many particles per frame. What i am looking for is … each point birth only one particle and thats it … so even if the point is still in the group it should not generate a particle cause it already has birthed one particle.
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hi interesting problem. I have so far only managed to get N particles birthed per frame randomly in the area defined by your group.

rob
Gone fishing
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
Hi ,
Ive solved it for you. Instead of waiting for the group to be created per frame I just dialled in the amount of the predicted points. Should get you well on your way.

Rob

Attachments:
birthpops_.hip (62.0 KB)

Gone fishing
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
hey rob thanks for having a look at my file and really appreciate working out a file for me. however i was wondering if this is procedural? My final goal was to have a sphere which is animated (animation which i can change anytime) on top of the grid to birth the particle from grid.

-alok
User Avatar
Member
2624 posts
Joined: Aug. 2006
Offline
My final goal was to have a sphere which is animated (animation which i can change anytime) on top of the grid to birth the particle from grid.

Well as far as I can see that will not work emitting 1 particle per point. I have another example where I can emit x amount of particles based on a primitive attribute.

rob
Gone fishing
User Avatar
Member
1907 posts
Joined: Nov. 2006
Offline
If you set the Source Group parameter on the Source POP to be the name of your group you can use argc(pointlist(opinputpath(“..”, 0), “group2”))
Graham Thompson, Technical Artist @ Rockstar Games
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
ohh well thanks graham … am not sure what i am doing wrong .. but its erroring out on me .
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
hi graham.. i if understand the expression correctly .. i could also do $NGRP in the impulse birth rate and giving the group name in the pop source. which means that get the total number of points in that group…. ok but the problem will still be …that if i have 10 points in the group .. that each point will emit 10 particles … where as what i want is 1 particle only per point in the group … rob's solution works but its not as procedural .. say if i have to keyframe my bounding box( which is defining the group)
User Avatar
Member
1631 posts
Joined: July 2005
Offline
The particle network is doing what you want it to do: birth the number of particles you have in a group. The problem is your group is always there so the source POP will continue to birth every frame.

In your attached file, popnet2 does what you want but you feel you've created unnecessary particles. Is your sim going to be really heavy? If not, this is the way to go.

If you want, you can procedurally trim your source geometry to be tight to the animated sphere so you won't be creating much more particles.

Lastly, all you need after the popnet is a Delete SOP with the following and you're done.
Entity: Points
Operation: Delete by Expression
Filter Expression: length($VX,$VY,$VZ) == 0

Cheers!
steven
User Avatar
Member
42 posts
Joined: Jan. 2010
Offline
hey steven… thanks .. yes that helps!!

thanks guys for the great support!


cheers .. have a great weekend!!
User Avatar
Member
27 posts
Joined: Nov. 2009
Offline
Maybe It is what you want.

Attachments:
parti_test_512.hip (60.7 KB)

Houdini is a big thing!
User Avatar
Member
61 posts
Joined: Dec. 2005
Offline
Just found this thread. I have a similar issue.

I have a point group that grows in total points.
I want to birth one particle only once for each point inside of this group.
My issue:
This group of points grows. As it grows, I only want to birth particles on the new incoming points. Not the points already there with a particle.


A cheat would be for me to animate a bounding box group that goes around captures my points off the object for particle creation. This isn't the method I want to do, since I have 52 points that need a particle.

~Shawn
Touch Designer User
  • Quick Links