Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Particles instability at boundary of particles with inverse mass = 0
#1
Pregunta 
Hello,
one way I use to take control of particles (in this case to pull the around) is to set the inverse mass to 0. This method works very well, the "locked" particles are stable and do what I tell them to do but in the specific case of a softbody (not observable on ObiRope), the particles around those whose inverse mass I've set to 0, are very unstable: their position but mostly their orientation keeps changing wildly and make the softbody look broken at the "grabbed" boundary (meaning the boundary of the set of particles that now have inverse mass = 0).
I am calling actor.UpdateParticleProperties() whenever the inverse mass of particles is set (or set back to its original value), additionally I tried to call actor.SetConstraintsDirty(Oni.ConstraintType.ShapeMatching) but it made no difference.
Important to say that I am using the vertex method in the blueprint and I have 1 bone per particle so I think the problem might also be related to the skinner (and I've tried to bind the mesh with different parameters).
Any ideas?
Thanks all!
Reply
#2
(07-09-2022, 05:10 PM)TheRitcher Wrote: Hello,
one way I use to take control of particles (in this case to pull the around) is to set the inverse mass to 0. This method works very well, the "locked" particles are stable and do what I tell them to do but in the specific case of a softbody (not observable on ObiRope), the particles around those whose inverse mass I've set to 0, are very unstable: their position but mostly their orientation keeps changing wildly and make the softbody look broken at the "grabbed" boundary (meaning the boundary of the set of particles that now have inverse mass = 0).
I am calling actor.UpdateParticleProperties() whenever the inverse mass of particles is set (or set back to its original value), additionally I tried to call actor.SetConstraintsDirty(Oni.ConstraintType.ShapeMatching) but it made no difference.
Important to say that I am using the vertex method in the blueprint and I have 1 bone per particle so I think the problem might also be related to the skinner (and I've tried to bind the mesh with different parameters).
Any ideas?
Thanks all!

Hi there!

Sound strange! would it be possible to take a look at your blueprint, as well as the code you're using to "grab" the particles? This method you describe (setting inverse masses to zero to pull particles around) sounds very similar to what the ObiContactGrabber utility component does, but so far I've been unable to reproduce any instabilities/jittering or similar behavior with it.

kind regards,
Reply
#3
(09-09-2022, 07:59 AM)josemendez Wrote: Hi there!

Sound strange! would it be possible to take a look at your blueprint, as well as the code you're using to "grab" the particles? This method you describe (setting inverse masses to zero to pull particles around) sounds very similar to what the ObiContactGrabber utility component does, but so far I've been unable to reproduce any instabilities/jittering or similar behavior with it.

kind regards,

Thanks for your reply Jose. The fact that you can't reproduce the issue makes me think I need to investigate more on my end. I cannot share here unfortunately (apologies to all readers) as I am under NDA but I'll email you.

Meanwhile I managed to mitigate the issue by also setting the invRotationalMass to 0 for all the particles whose invMass I'm setting to 0. This stops the surrounding particles from shaking. If I now manage to take control of rotations, which shouldn't be hard, I'll be in a good place.
Reply