Jump to content
foxtrotzulu

Procedurally delete geometry created by particle fluid surface

Recommended Posts

Hi all, after running a guided ocean sim, I have meshed the particles using particle fluid surface, and the resulting surfaces have a “bottom” layer which I would like to delete. 

BottomLayer.jpg.41f45db97b3c8b1427b27d56b0e48f50.jpg

Using connectivity SOP and setting the type to Primitive exposes attribute called class, which gives me integer class.

connectivity.thumb.jpg.9b0f150fdd2651fb7f19116bb0f7c7fd.jpg

 

Then I used group expression and gave the group name called “kill”.

in the Vexpression, I used @class == 10

10 being the class of primitives that comprise the bottom layer that I am trying to delete.

group_expression.jpg.010fad8808130014f0a358cdce6fd1e9.jpg

Then I put down a blast, and by putting in the group “kill” that I made in the group expression, I am able to delete the bottom layer.

so far so good.

Only problem is, the class numbers change depending on the frame. So, while class 10 might be the bottom layer that I am trying to delete on frame 1, at frame 2, the class name has changed to something like 12, and my group expression and blast no longer work.

How can I use this method when the class changes every frame?

If there is a better method to procedurally delete the bottom layer of mesh throughout the frame range (say, 1 to 168), I would love to learn about it.

Thank you

Share this post


Link to post
Share on other sites
7 hours ago, foxtrotzulu said:

Hi all, after running a guided ocean sim, I have meshed the particles using particle fluid surface, and the resulting surfaces have a “bottom” layer which I would like to delete. 

BottomLayer.jpg.41f45db97b3c8b1427b27d56b0e48f50.jpg

Using connectivity SOP and setting the type to Primitive exposes attribute called class, which gives me integer class.

connectivity.thumb.jpg.9b0f150fdd2651fb7f19116bb0f7c7fd.jpg

 

Then I used group expression and gave the group name called “kill”.

in the Vexpression, I used @class == 10

10 being the class of primitives that comprise the bottom layer that I am trying to delete.

group_expression.jpg.010fad8808130014f0a358cdce6fd1e9.jpg

Then I put down a blast, and by putting in the group “kill” that I made in the group expression, I am able to delete the bottom layer.

so far so good.

Only problem is, the class numbers change depending on the frame. So, while class 10 might be the bottom layer that I am trying to delete on frame 1, at frame 2, the class name has changed to something like 12, and my group expression and blast no longer work.

How can I use this method when the class changes every frame?

If there is a better method to procedurally delete the bottom layer of mesh throughout the frame range (say, 1 to 168), I would love to learn about it.

Thank you

Can Share HIP File ? 

Share this post


Link to post
Share on other sites

Compare the bounds of the top and bottom layer and blast whichever is lower. If you haven't isolated the two surface layers, judging by the image you can do so by measuring their areas compared to splashes and the like.

  • Like 1

Share this post


Link to post
Share on other sites

Solved the issue by trying different Layer Size and Guiding Surface Thickness values in the wavetank to avoid getting the bottom layer.

Some bits still exist, but I can delete them using delete node with bounding box. Thanks for your great suggestions!

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

×