PhysX - PxRigidDynamic actors clip through other actors (CCD enabled)

450 views Asked by At

I realize this may not be the perfect place to be asking a question about PhysX, but I've already tried on the official PhysX forums, as well as on gamedev.net and I haven't gotten any responses in several weeks, so I'm unsure where I can go for help. Maybe someone here has an idea.

My problem is as follows:

My PxRigidDynamic actors intersect with other actors and I can't figure out why. There are still collisions between them, but the rigid dynamic slightly clips through them and is 'pushed' back. Here's a video of it ingame/in the PVD:

http://youtu.be/X0oyDtCTsuQ

The box is a PxRigidDynamic actor. The player is a PxCapsuleController. All other actors are PxRigidStatic.

Having CCD disabled or enabled seems to make no difference. (CCD should only affect high-velocity objects anyway, so I doubt that's the cause here)

The collisions between the controller and the static actors are fine, so I don't see why the rigid dynamic would behave any differently.

I'm using PhysX-3.3.0_Beta-2 (16402319)

1

There are 1 answers

0
BaldusCattus On

While you can never prevent interpenetration, PhysX should normally apply sufficient opposing forces to separate penetrating objects quickly.

Is there any chance that your rigid body shapes are significantly smaller than the visible geometry? If not, is it possible that changes have been made to the actor's contactOffset and restOffset attributes? This could allow interpenetration to occur before resistance to the contact is applied.

You're right that CCD isn't relevant here - CCD prevents cases where fast-moving objects pass from one side of an obstruction to the other in a single update without registering a normal contact.