09-04-2025, 10:00 PM (This post was last modified: 09-04-2025, 10:33 PM by rjanders0003.)
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.
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....
09-05-2025, 04:04 AM (This post was last modified: 09-05-2025, 04:08 AM by rjanders0003.)
(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)
09-05-2025, 05:34 AM (This post was last modified: 09-05-2025, 05:39 AM by rjanders0003.)
(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...
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.
09-05-2025, 02:04 PM (This post was last modified: 09-05-2025, 02:51 PM by rjanders0003.)
(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
(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
Oh, you just call PhysXOverlapTest and pass the simulation indices and transforms of the particles to test. It just returns a true/false value if they're overlapping.