Entangled PhysX Hulls - Solution or Request
#1
G'Day Tyson

I have made a couple PhysX animations, big number pieces as in 2800 components (lego style) -  Arched Bridge

I have been struggling for days with penetrating hulls, originally they start properly aligned, not intersecting.

To destroy the bridge I use a heavier PhysX Shape to kind of drop on the bridge,  I get the overlapping PhysX hulls that become hyper active, keep moving.

Now I have tried everything over 5 days, because of the quantity of PhysX hulls, it takes a while to calc.

I know why its happening, two penetrating PhysX hulls, but They don't separate by themselves.

From what I can see, once binds are enabled, hulls are allowed to penetrate, then they stay penetrated because of the binds.

Q1: Is there a way, I cant think of to test for penetrating hulls, then either delete problem child or force separation ?

Q2: Would it be feasible to add some sort of option (new feature to make this easier)

I have tried enabling collisions physx binds, process all penetrations etc.  If you don't have binds, the two particles always separate after penetration.

Its a real pain, you take care of one rogue hyperactive particle, then next time after re-calc you have a new problem.  If only there was some easy way to take care of the hyper active PhysX shapes.

Rob


Attached Files Thumbnail(s)
   
  Reply
#2
Hard to guess from a screenshot but perhaps they're still bound to each other and forced into an unstable state due to pressure from other penetrations or whatever. You could try to use a PhysX Break operator and apply velocity magnitude filters, so that particles that are moving fast enough lose their bindings? A variety of solutions could be proposed, I suppose....
  Reply
#3
(09-05-2025, 03:46 AM)tyFlow Wrote: Hard to guess from a screenshot but perhaps they're still bound to each other and forced into an unstable state due to pressure from other penetrations or whatever. You could try to use a PhysX Break operator and apply velocity magnitude filters, so that particles that are moving fast enough lose their bindings? A variety of solutions could be proposed, I suppose....

They are still bound to each other, but when you have 2800 particles. How could you locate the ones that have a penetrated hull and somehow easily de-bind only those that are intersecting and not the rest.

eg: my problem is trying to find the rogue pairs in amongst all the other bricks (particles)- is there an easier way to detect and debind auto (script or whatever) than painfully finding one at a time (lol - usually after 5 hours of render)

Rob
  Reply
#4
(09-05-2025, 03:46 AM)tyFlow Wrote: Hard to guess from a screenshot but perhaps they're still bound to each other and forced into an unstable state due to pressure from other penetrations or whatever. You could try to use a PhysX Break operator and apply velocity magnitude filters, so that particles that are moving fast enough lose their bindings? A variety of solutions could be proposed, I suppose...

I think I can work with that, maybe - I will try

In searching for solution, I saw somewhere in forum about script test for overlap hulls and you said you also had it in your todo list to make overlapping hull test available outside of scripting - something to that effect approx couple years ago.

Is there a way to select or detect overlapping hulls outside of scripting?

like what you said approx 2021
Yea this is a tricky problem to solve with existing operators. I think the Property Test probably needs a PhysX overlap test, with an added simulation group option so you can choose which sim groups to include in the test...

Thanks Tyson - sorry to bother you
  Reply
#5
The simple overlap test wouldn't really help in this case because many of the hulls may be overlapping to some small degree - you'd need a test to check actual penetration depth mid-sim, and I'm not sure PhysX really exposes that info.

Another thing you can try is tuning your bind breaking settings, so that binds just auto-break if they undergo too much stress.
  Reply
#6
(09-05-2025, 12:57 PM)tyFlow Wrote: The simple overlap test wouldn't really help in this case because many of the hulls may be overlapping to some small degree - you'd need a test to check actual penetration depth mid-sim, and I'm not sure PhysX really exposes that info.

Another thing you can try is tuning your bind breaking settings, so that binds just auto-break if they undergo too much stress.

Thanks Tyson - I was able to re-create the problem on a smaller scale eg 20 particles

I actually think there is a possible bug- there are no binds on the hyper active particles - they stay locked, I even bound two hyper active particles to a box I set mass to 100 and they (active particles) just pull it around. The only two ways I have found to handle it - delete one, but on larger objects you might see this deletion . re-apply a physx shape to the particle at the troublesome frame range and they break apart.

I took a look at your two overlapping hulls script - I can't figure out their usage with all the required parameters sInx Tm1 etc

Any chance of some sample code on how to use those two script functions

PS - I added two screen captures showing problem particles - re-applying a physx shape to fix it,  LoL - is there a way for me to identify particles by severe overlap, eg change their colors or smtg, so I could easily fix these types of movement issues on a larger scale where seeing them is not always easy.


If you want I can share the smaller test project.  with what I think is a bug.  Hopefully the problem transfers with the file

Rob


Attached Files Thumbnail(s)
       
  Reply
#7
(09-05-2025, 02:04 PM)rjanders0003 Wrote:
(09-05-2025, 12:57 PM)tyFlow Wrote: The simple overlap test wouldn't really help in this case because many of the hulls may be overlapping to some small degree - you'd need a test to check actual penetration depth mid-sim, and I'm not sure PhysX really exposes that info.

Another thing you can try is tuning your bind breaking settings, so that binds just auto-break if they undergo too much stress.

Thanks Tyson - I was able to re-create the problem on a smaller scale eg 20 particles

I actually think there is a possible bug- there are no binds on the hyper active particles - they stay locked, I even bound two hyper active particles to a box I set mass to 100 and they (active particles) just pull it around. The only two ways I have found to handle it - delete one, but on larger objects you might see this deletion . re-apply a physx shape to the particle at the troublesome frame range and they break apart.

I took a look at your two overlapping hulls script - I can't figure out their usage with all the required parameters sInx Tm1 etc

Any chance of some sample code on how to use those two script functions

PS - I added two screen captures showing problem particles - re-applying a physx shape to fix it,  LoL - is there a way for me to identify particles by severe overlap, eg change their colors or smtg, so I could easily fix these types of movement issues on a larger scale where seeing them is not always easy.


If you want I can share the smaller test project.  with what I think is a bug.  Hopefully the problem transfers with the file

Rob

G'Day Tyson

I have figured out most of the stuff - in part - to your hints.

Could you please give me an example of the script usage of those hull penetration functions - please

Rob - Thanks
  Reply


Forum Jump: