Jump to content
Eckxter

Collision causing issues in pyro cluster

Recommended Posts

I'm having some trouble making my clustered pyro sim have collisions.
It's a custom setup where I make a couple of containers with instancing at start frame and I've made a small change in the Gas Resize Fluid Dynamic DOP to resize each container separately based on $OBJID.
The problem is that when I add collision objects, my density just doesn't show up or source anymore.
When I use the shelf tool to make a static or deforming collision object, I don't get any smoke. Or I get it in weird places where the containers overlap.
And when I use a Source Volume node set to Collision, all I get is what appears to be the Source field, but there is no density coming from it.
When I disable the Source Volume node, density is sourcing and moving normally again.

I've tested it in small scenes with basic geometry where I use shelf tools to setup the clustering and collision and then it seems to work.
With the Source Volume node gives me the same issue, except when there's just 1 container (so no clusters). Then it works just fine.
Since the shelf tool works, my guess is that I have to set some setting somewhere so that it works with instancing.
I've been comparing the working test scene with my scene, but I haven't found anything yet.
I'm afraid I won't see what I need to change even if it's under my nose.

I've added the .hip file, but beware as it makes quite a bit of geo. So expect some loading time when you go in the SURFACE node.

Thanks for any help!

Eckhart

TerrainDemat.v013.hip

Share this post


Link to post
Share on other sites

After some more troubleshooting I think I found what is messing with the sourcing/collision.
Since I changed the Gas Resize Fluid Dynamic node to resize each container based on OBJID, the number of objects changes the moment I add a collision object.
So I guess because of that, the order gets messed up and it's doing its job one too many times or on the wrong ID number.
I'm going to try and exclude the collision geometry from it.

If anybody can come up with some advice, it would be much appreciated!

Eckhart

Share this post


Link to post
Share on other sites

Try turning off Track Object on the resize node then, under Max Bounds enable Initialize Static.

Share this post


Link to post
Share on other sites

I actually think I need Track Object on, because that's the whole point of my setup.
The source grows per cluster, as the geo from which gets sourced changes in size and position or even just isn't there yet/anymore.
And since the smoke will rise beyond the bounds of the source geo, it needs to be able to expand.
For that reason, I don't think I can have max bounds on, since I need it to be able to grow beyond them.

That being said, yesterday I was able to get it to work, although not as procedural as I'd like it.
I just had to correct the expression that took care of the cluster groups by the amount of collision objects I added. (currently just 1)
So the expression became: cluster_`stamp("../..", "OBJID", 0)-1`

That only gave me a warning that it couldn't find 'cluster_-1', which it got when looking at the collision object which has an OBJID of 0.
So for that I'd have to learn how I can add an id value that doesn't change regardless of the OBJID.
Basically what the @id value is for particles.

But for now I guess I'm good to go.

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

×