Jump to content

Detach points from mesh and feed them to particles

Recommended Posts

Hello there!

I have been wondering what could be the cleanest way to have only some specific points on a mesh (say, grouped by attr or something else) to be fed into a particle system, removing the points the particles generated from (basically switching from a point to a moving particle).

Of course I know all the standard sourcing pops practices, but my problem lies in the fact that I want to do this in a gradual way over time. For example, frame 1 = all my mesh points are still points, frame 10 = a group is created of 10 points, those 10 pts get deleted and fed into a popsystem, frame 20 = my mesh still is going forward with all its points except the 10 I used to spawn particles, and another group gets created, those points need to be deleted and fed into the same particle system and so on and so forth.

In the past I approached this in different ways (manually creating hdd saved geometry for the spawn frames and use those as source, get all my mesh to be a particle system and only affect some based on pop grouping etc) but I haven't still found a more elegant and streamlined way to do it.

I have thought about doing a growing group in sopsolver, but the particles that are there would stay in that group, meaning that if that group is my spawner, it will always emit all the points in that group at every frame. Also thought about stepping forward in time by 1 frame, regroup and subtract from the previous group (so I would get only the "newest" particles each frame), but this would mean cache my points to disk before doign this operation which might be too convoluted.

Any thoughts/best practices/ suggestions about this?


Edited by Akabane

Share this post

Link to post
Share on other sites

Hello Emanuele,

I got this form the top of my head but it might work.

What about using pointclouds to decide the points you want to delete and emitt from. Then you only need to create a growing group to delete the particles and source from the particles in your pointcloud. If you create a shrinking group of points on the mesh (the ones remaining) you could create a point cloud out of those depending on for example Cd attr. So the point cloud will only be created in the remaining points. I hven't tried it myself but I think it should work. Correct me if I am wrong :)


Edited by Hudson

Share this post

Link to post
Share on other sites

Cool. :D

I have been looking for a way to do this very thing as well. I figured it would have to be done through a solver as bloomendale's example so elegantly shows, However bloomendales's method kills the deformation animations once it hits the solver. Is it easy to fix that?

Share this post

Link to post
Share on other sites

You need to pull the position from outside the solver, I used the Point sop to do so. Since the point count changes an id attribute is needed (done in the first vopsop, ptnum->id).


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