Jump to content
BenWall

POP - Several questions about Impulse Activation

Recommended Posts

Posted (edited)

Hi,

I'm a beginner in Houdini learning alone with tutorials, I need some insights about POP.

What I'm trying to achieve:

I want to reproduce this effect, but slower: Basicaly, I have a polyline forming a shape, I scale each primitive in a foreach loop with x iterations. Each iteration go through a DOP Network with a different seed based on the index of the polyline in the for loop. 

JZEnISN.jpg

The DOP Network move points with a curlNoise, I then create a trail. The screenshot shows the effect on a single instance.

3Td6SHZ.jpg

 

Questions:

1/ I can't access the Birth Parameters on the POP Source node. From the help, it seems "Impulse Activation" at anything but 0 to be able to access those settings, but it's greyed out. Am I missing something? (It's greyed out even if I input "1" and not an expression.)

RnOHUHU.jpg

 

2/ To get  a lower number of points, I used an Impute Activation of (($F%20)-1)*-1 == 1 point every 20 frames.

The problem is that now, the DOP network does not begin before $F=20. Is there any other way to tell POP not to birth points every frames while being able to choose the first birth frame?

 

3/ I want each point created in DOP to keep as an attribute his original position (when his age was 0), and I want each new point to keep @ptnum of the source point as an attribute. How can I do that in DOP?

 

Thanks!

Edited by BenWall

Share this post


Link to post
Share on other sites

1. You need to change the Source type to be Points or All Geometry I think, it's greyed out due to the settings you're using.

2. You'll get that option if you change the source type I believe, I'm not sure what you're trying to achieve with "not every frame while being able to choose the first birth frame", maybe explain a bit more and I'll try and help!

3. You can get the birth frame position by using POP / Geometry Wrangle inside your POP net and just isolate the particle by checking if it was alive on the previous frame and then store that position onto an attribute by choice only for that frame.

Share this post


Link to post
Share on other sites

Thanks for your answer!

1. Yep! I changed it from "All points" to "Points", now it works. Thanks!

 

2. 

2 hours ago, char said:

2. You'll get that option if you change the source type I believe, I'm not sure what you're trying to achieve with "not every frame while being able to choose the first birth frame", maybe explain a bit more and I'll try and help!

I had this problem because I used a modulo 20 on the impulse activation (meaning particles would only birth once every 20f begining on F20). It looks like a pretty sloppy technique to me.

What I'm trying to achieve is to birth 1 particule from each point every nth frame.

 

3. I figured it out earlier with a pointVop inside a solver (if age == 1 on previous frame, I bind export the attributes from the previous frame).

Share this post


Link to post
Share on other sites

Great, glad it worked.

What I'm thinking now if you have Impulse emission, it will spawn a number of points each time it cooks, so essentially every frame. Somehow if you could add an attribute which would be the point number from where the particle spawned. Check if that point number exists on more than one particle spawned meaning there is more than 1 point spawning and delete the excessive points you won't want to use?

https://www.sidefx.com/forum/topic/18697/?page=1#post-87850

have a bit of a read in this topic, maybe you can find anything, I'm at work at the moment so I'm a bit constrained to what I can do for you unfortunately!

Share this post


Link to post
Share on other sites

Great idea there, but to get the source @ptnum I would need to connect a Wrangle or VOP with Pop Source as input 0 and Pop Object as Input 1, and Houdini does not seems to let me do that (Connection to input 0 is the wrong type).

The Impulse Activation and globally the Birth pannel is completly incomprehensible to me, even after seeing a few tutorials. I think I'm going to do a lot more tutorials before trying to achieve something by myself with POP Solver.

Share this post


Link to post
Share on other sites

Not really, I think you can add a SOP solver in your simulation, combine the two with a Multi solver, then use object merge to bring the source geometry into the sop solver and do your further calculations there, just an idea. The Source is pretty intuitive if you dive into the documentations a bit :

quote:

  • Impulse creates a certain number of particles each time the node cooks.

  • Constant creates a certain number of particles per second.

Share this post


Link to post
Share on other sites
Posted (edited)
22 hours ago, char said:

quote:

  • Impulse creates a certain number of particles each time the node cooks.

  • Constant creates a certain number of particles per second.

I understood how to control POP with "All Points" source (Impulse Activation = (($FF+ ch("../frequency") + ch("../frame_start"))%  ch("../frequency") -1) *-1 ), but "Points" seems totaly ranom to me

Setup with an animated source containing 10 points, I want to create 10 points per frame (10*25 per second at 25fps):

PZfb2Ly.jpg

New particles don't create over the array of my original points, they seem to chose completly randomly where they will be placed. It seems some particles are created on top of each other.

 

I will use "All points" for this project, but if you have any idea how to make the "Points" setup less random, I'd love to hear it!

Edited by BenWall

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×