From 462d4d690660184de50d8885b2c119e026217cab Mon Sep 17 00:00:00 2001 From: Skoader Date: Sat, 1 Dec 2012 21:55:47 -0500 Subject: [PATCH] Improve simulation timing at low frame rates. Increased kDefaultMaxDelta to 0.15. Added a small bias to combat a truncation issue. --- Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp b/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp index d7d1d5d4..19a78afc 100644 --- a/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp +++ b/Sources/Plasma/PubUtilLib/plPhysX/plSimulationMgr.cpp @@ -193,7 +193,7 @@ class ErrorStream : public NxUserOutputStream // ///////////////////////////////////////////////////////////////// -#define kDefaultMaxDelta (0.1) // if the step is greater than .1 seconds, clamp to that +#define kDefaultMaxDelta (0.15) // if the step is greater than .15 seconds, clamp to that #define kDefaultStepSize (1.f / 60.f) // default simulation freqency is 60hz ///////////////////////////////////////////////////////////////// @@ -469,7 +469,7 @@ void plSimulationMgr::Advance(float delSecs) } // Perform as many whole substeps as possible saving the remainder in our accumulator. - int numSubSteps = (int)(fAccumulator / kDefaultStepSize); + int numSubSteps = (int)(fAccumulator / kDefaultStepSize + 0.000001f); float delta = numSubSteps * kDefaultStepSize; fAccumulator -= delta;