Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Why does setting InverseMass to zero on a single particle freeze all particles?
#2
(07-04-2021, 12:58 AM)pushmatrix Wrote: Hi there,

I'm trying to completely freeze some particles while making others still simulate. I adapted the script from (http://obi.virtualmethodstudio.com/tutor...icles.html) to target certain particles and stop them completely by setting their inverse mass to zero.

But what I'm finding is that any particles that come into contact with ones with inverse mass to zero come to a complete stop as well.

This even happens if I only set the invMass to zero on a single particle:

Code:
actor.solver.invMasses[0] = 0;

I'm guessing if a particle touches a particle with infinite mass, something bugs out and causes everything to stop?

Here's a gif of one emitter shooting a stream onto currently frozen particles. As soon as the stream touches those frozen ones, they all freeze. Hmm. I would have expected the red stream to just collide ontop.
https://gfycat.com/tarttartcockatoo

Thanks for any insight!

This is the expected result for a fluid particle: density constraints try to keep constant mass per volume unit. Once a particle with infinite mass gets in the neighborhood of another particle, the only way to ensure no changes in density is to either set infinite velocity (due to the infinite pressure) or stop all relative movement (which is more reasonable behavior imho)
Reply


Messages In This Thread
RE: Why does setting InverseMass to zero on a single particle freeze all particles? - by josemendez - 07-04-2021, 04:11 AM