Chaos Contact Modification problem with CCD enabled

Hello,

Within our current project in development, we are using an ISimCallbackObject that implements OnContactModification_Internal to modify the data of some FContactPairModifier instances. Specifically, for certain object pairs we modify the InvMassScale of one of the two in order to reduce (but not eliminate) the influence of the collision on the other, using FContactPairModifier::ModifyInvMassScale.

This has always worked very well until we tried enabling CCD. With CCD enabled, that callback no longer seems sufficient, and it appears that on the first contact the InvMassScale modifiers are not applied. I noticed that it is also possible to register OnCCDModification_Internal, but in that case the constraints do not allow access to data such as InvMassScale.

Are there any alternative solutions?

Thanks!

Devis

Hi Devis,

Thank you for raising this. You are correct that as it stands there is no mechanism I can see for altering the biasing in CCD, which creates an edge case and adds indeterminism to the simulation.

I’ll have a chat with the dev side to see if it makes sense to fix this up. I know that we don’t do a ‘full’ solver pass on this - so the biasing could theoretically create tunnelling as a side effect for example.

All the best

Geoff Stacey

Developer Relations

EPIC Games