Hello,
I have a problem with the car suspension , on the ground I placed some rocks and they are triangle meshes, I have set the normal threshold at Pi / 2 and point threshold at Pi / 2 , when my wheels try to drive on them very often the suspension snaps to max compression , I made some debug on it and I found that the problem is somewhere in
bool intersectCylinderPlane
(const PxTransform& wheelPoseAtZeroJounce, const PxVec3 suspDir,
const PxF32 width, const PxF32 radius, const PxF32 maxCompression,
const PxVec4& hitPlane,
const bool rejectFromThresholds,
PxF32& jounce, PxVec3& wheelBottomPos, void* myData)
this function when it tries to compute the depth of the intersection
PxF32 depth;
{
const PxVec3 latDir = wheelPoseAtZeroJounce.rotate(gRight);
const PxF32 signDot = computeSign(hitPlane.x*latDir.x + hitPlane.y*latDir.y + hitPlane.z*latDir.z);
const PxVec3 deepestPos = pos - latDir*(signDot*0.5f*width);
depth = hitPlane.x*deepestPos.x + hitPlane.y*deepestPos.y + hitPlane.z*deepestPos.z + hitPlane.w;
}
when it does this calculus on normals close to Pi /2 within a range like 80 or 75 degrees the depth intersection it’s an big value like 2.8 or something like that and when it happens the wheel snaps to max compression . Can you help me solve this problem ? (do we have to make the geometry of the rocks in a certain way this to work ? now is triangle mesh on the rock mesh ) here is an video http://sendvid.com/shli5km3