Browse Source

Deterministic step correction

Raanan Weber 7 years ago
parent
commit
dd6ce82125
1 changed files with 4 additions and 4 deletions
  1. 4 4
      src/babylon.scene.ts

+ 4 - 4
src/babylon.scene.ts

@@ -3377,7 +3377,7 @@
                 let defaultFrameTime = 1000 / 60; // frame time in MS
                 let defaultFrameTime = 1000 / 60; // frame time in MS
 
 
                 if (this._physicsEngine) {
                 if (this._physicsEngine) {
-                    defaultFrameTime = this._physicsEngine.getTimeStep() / 1000;
+                    defaultFrameTime = this._physicsEngine.getTimeStep() * 1000;
                 }
                 }
                 let stepsTaken = 0;
                 let stepsTaken = 0;
 
 
@@ -3397,7 +3397,7 @@
                     // Physics
                     // Physics
                     if (this._physicsEngine) {
                     if (this._physicsEngine) {
                         this.onBeforePhysicsObservable.notifyObservers(this);
                         this.onBeforePhysicsObservable.notifyObservers(this);
-                        this._physicsEngine._step(defaultFPS);
+                        this._physicsEngine._step(defaultFrameTime / 1000);
                         this.onAfterPhysicsObservable.notifyObservers(this);
                         this.onAfterPhysicsObservable.notifyObservers(this);
                     }
                     }
 
 
@@ -3411,9 +3411,9 @@
                     stepsTaken++;
                     stepsTaken++;
                     deltaTime -= defaultFrameTime;
                     deltaTime -= defaultFrameTime;
 
 
-                } while (deltaTime > 0 && stepsTaken < maxSubSteps);
+                } while (deltaTime > 0 && stepsTaken < internalSteps);
 
 
-                this._timeAccumulator = deltaTime;
+                this._timeAccumulator = deltaTime < 0 ? 0 : deltaTime;
 
 
             }
             }
             else {
             else {