Houdini particle question

   9840   3   1
User Avatar
Member
26 posts
Joined: 4月 2012
Offline
Basically I would like to know if there exists a way in Houdini to apply attribute changes to each particle as they are created.

For example, if you are familiar with Maya particles then you know Maya lets the user do this by writing a creation expression. Using this I can isolate each point on a geometry emitter (for example a simple grid) by testing for $ID % pCount == pNumber. Where pCount is the number of points on the emitter, and pNumber is the point on the emitter I want to isolate, from 0 to pCount-1. If true then I set the velocity for that particle to (0, 1, 0) and if false I set its life to 0.

Thus I can achieve this sort of effect:




and by using a for loop I can randomize emitters for the whole grid.

I tried to do this in Houdini, and so far have only been able to get it going for one point, by using a group node to group particles in this way.

Any help would be cool, and if what I wrote doesn't make sense, let me know.

Thanks!
User Avatar
Member
7734 posts
Joined: 7月 2005
Online
I think you need to familiarize yourself with the basics.

If you're just talking about emitters, then you can just tell the Source POP to generate a birth group for you to use without expressions. You can also control the velocity they get birthed with using that node (Attributes tab) and their variance.
- http://www.sidefx.com/docs/houdini12.0/nodes/pop/source [sidefx.com]

If you want to randomize particle attributes, then this page can help:
- http://www.sidefx.com/docs/houdini12.0/particles/tips [sidefx.com]
You can use the expressions on the Rule parameter of the Group SOP for example.

For some more general particle tutorials, try here:
- http://sites.google.com/site/pqhoudinitutorial/home/videos-on-particles [sites.google.com]
(Note that I've never watched them personally but people on the forum rave about the tutorials on that site)
User Avatar
スタッフ
2540 posts
Joined: 7月 2005
Offline
Most of Maya's creation expressions and techniques can be replicated in Houdini by pre-processing the geometry that gets fed in to the Particle system with SOPs, not “in” the particle system itself (Source POP).

For most particle systems where you just want a continuous random stream of particles with no pre-conditions, the Source POP is adequate. If your source geometry requires a great deal of finesse, I personally don't rely on the Source POP at all and prefer to use the Instantaneous particle birthing mode and force feed the points “I” want to birth at each time step using SOPs to create the initial points.

Many times in Houdini you will pre-process the geometry with expressions and modify any and all point attributes. All point attributes by default will be inherited by the Particle system and you can do with them what you will.

The way to cull source particles feeding the Source POP is to use a Delete or Blast SOP on the points feeding the particle system.

In the Source POP, if you want the exact points at the current frame to be birthed, you would set Constant Activation (particle rate per second) to 0 and set Impulse Activation to 1 (particles per timestep).

For Impulse Rate, use the Source POP local variable $NPT to return the number of points present on the SOP supplying the points. See the help for the Source POP for all supported local variables.

You can use the Birth Probability min and max parameters to do additional random culling but it is quite limited. Currently it only uses the colour attribute reliably which is $CR, $CG or $CB.

See the attached example file and read the sticky notes.

—-

This technique of pre-filtering and pre-culling the geometry prior to birthing particles is used in many cases. Spray on water where you use various SOPs to create the logic to isolate areas for spray by scattering points directly and then using the Source POP's impulse birthing with birth rate set to $NPT is the way to go.

—-

The only feature I can think of that isn't supported is the ability to birth scattered points weighted by a supplied texture map in the Source POP then use either red, green, blue or luminance to birth points from.
In Houdini right now you have to pre-scatter points on the geometry surfaces, colour them, cull them and then birth from that. When dealing with millions of points, you have to create tens of millions and then cull down. Not the most efficient method to birth by texture map.
It's an existing RFE but you can always lend a voice and submit it to Support as well if you deem this a necessary feature.

Attachments:
prequalify_geometry_for_source_pop.hip (110.8 KB)

There's at least one school like the old school!
User Avatar
Member
26 posts
Joined: 4月 2012
Offline
Thanks a lot for the replies

jeff, that's very helpful. If I got what you're saying, I should focus on manipulating my emitter geometry's points. I'm going to open that file tonight and experiment with modifying my geometry. Also edward, thanks for the links.
  • Quick Links