diff options
Diffstat (limited to 'PhysX_3.4')
| -rw-r--r-- | PhysX_3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp | 10 | ||||
| -rw-r--r-- | PhysX_3.4/release_notes.html | 2 |
2 files changed, 8 insertions, 4 deletions
diff --git a/PhysX_3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp b/PhysX_3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp index 3ed6884d..3923edb9 100644 --- a/PhysX_3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp +++ b/PhysX_3.4/Source/PhysXVehicle/src/PxVehicleUpdate.cpp @@ -2320,10 +2320,12 @@ bool intersectRayPlane //We'll use this later to compute a position at the bottom of the wheel. const PxVec3 pos = v; + //Remove this code because we handle tire width with sweeps now. //Work out if the inner or outer disc is deeper in the plane. - const PxVec3 latDir = carChassisTrnsfm.rotate(gRight); - const PxF32 signDot = computeSign(hitNorm.dot(latDir)); - v -= latDir*(signDot*0.5f*width); + //const PxVec3 latDir = carChassisTrnsfm.rotate(gRight); + //const PxF32 signDot = computeSign(hitNorm.dot(latDir)); + //v -= latDir*(signDot*0.5f*width); + PX_UNUSED(width); //Work out the point on the susp line that touches the intersection plane. //n.(v+wt)+d=0 where n,d describe the plane; v,w describe the susp ray; t is the point on the susp line. @@ -3269,7 +3271,7 @@ void processSuspTireWheels suspLimitErrors[i] = (w.dot(hitNorm))*(-dx + susp.mMaxCompression); suspLimitActiveFlags[i] = (dx > susp.mMaxCompression); suspLimitCMOffsets[i] = bodySpaceWheelCentreOffset; - suspLimitDirs[i] = carChassisTrnsfm.q.rotateInv(-hitNorm); + suspLimitDirs[i] = bodySpaceSuspTravelDir; jounce=PxMin(dx,susp.mMaxCompression); //Store the jounce (having a local copy avoids lhs). diff --git a/PhysX_3.4/release_notes.html b/PhysX_3.4/release_notes.html index 5e36f598..c23404fe 100644 --- a/PhysX_3.4/release_notes.html +++ b/PhysX_3.4/release_notes.html @@ -291,11 +291,13 @@ <ul> <li>In checked build the functions PxVehicleDrive4W::allocate, PxVehicleDriveNW::allocate, PxVehicleDriveTank::allocate, PxVehicleNoDrive::allocate all return NULL and issue a warning if called before PxInitVehicleSDK.</li> + <li>Tire width is no longer accounted for when computing the suspension compression from raycasts (PxVehicleSuspensionRaycasts). Instead, tire width is incorporated into the suspension compression arising from swept wheels (PxVehicleSuspensionSweeps). It is recommended to use PxVehicleSuspensionSweeps if there is a strict requirement that the inside and outside of the wheel don't visibly penetrate geometry.</li> </ul> <li>Fixed:</li> <ul> <li>Suspension force calculation now applies an extra force perpendicular to the spring travel direction. This force is calculated to satisfy the constraint that the sprung mass only has motion along the spring travel direction. This change mostly affects vehicles with suspension travel directions that are not vertical.</li> <li>PxVehicleWheelsSimData::mThresholdLongitudinalSpeed and PxVehicleWheelsSimData::mMinLongSlipDenominator are now given default values that reflect the length scale set in PxTolerancesScale.</li> + <li>Unphysically large constraint forces were generated to resolve the suspension compression beyond its limit when the suspension direction and the hit normal under the wheel approach perpendicularity. This has been fixed so that the constraint force approaches zero as the angle between the hit normal and suspension direction approaches a right angle.</li> </ul> </ul> |