1) The physx::PxSceneFlag::eENABLE_CCD is set in the PxSceneDesc and physx::PxPairFlag::eCCD_LINEAR inside the CCD Filter Shader.
The actor's also have the 'physx::PxRigidBodyFlag::Enum::eENABLE_CCD' and the 'physx::PxRigidBodyFlag::Enum::eENABLE_CCD_FRICTION' flags set.
2) How do I change the contact offset for dynamic actors? 'setContactReportThreshold'?
3) Yes, as I've said, I'm applying my own gravity. I disabled it and tried it with physx' inbuilt gravity as you've suggested, but the result was the same. (Without the below changes)
4) I've changed the values to the following:
From the documentation: "For simulating roughly human-sized in metric units, 1 is a good choice. If simulation is done in centimetres, use 100 instead. This is used to estimate certain length-related tolerances."
Since in my case 1 unit = 19.05mm, I chose 190.5 as an appropriate value.
"The approximate mass of a length * length * length block. If using metric scale for character sized objects and measuring mass in kilogrammes, 1000 is a good choice."
My measurement is in kilogrammes, so I've set it to 1000.
"For normal physical environments, a good choice is the approximate speed of an object falling under gravity for one second."
This one's a bit difficult to determine in my case. The gravity can change entirely and there is no 'typical' velocity. I've set it to 180 for now.
That seemed to do the trick, although I can't push the box anymore, even with a low mass:
How can I change the push force of a controller?
Also, if you check the capture, you'll notice there's a rather large offset around the controller to anything it touches:
I've set the contact offset in the PxCapsuleControllerDesc to 0.01.
Why is the offset still that large?
Thanks to both of you, I'm already a large step further!