Переглянути джерело

remove the cache Matrices allocated for each AbstractMesh whereas we can use the one in Tmp

Julien Barrois 7 роки тому
батько
коміт
e63ec52ff5
1 змінених файлів з 5 додано та 6 видалено
  1. 5 6
      src/Mesh/babylon.abstractMesh.ts

+ 5 - 6
src/Mesh/babylon.abstractMesh.ts

@@ -474,9 +474,6 @@
         /** @hidden */
         /** @hidden */
         public _edgesRenderer: Nullable<IEdgesRenderer>;
         public _edgesRenderer: Nullable<IEdgesRenderer>;
 
 
-        // Cache
-        private _collisionsTransformMatrix = Matrix.Zero();
-        private _collisionsScalingMatrix = Matrix.Zero();
         /** @hidden */
         /** @hidden */
         public _masterMesh: Nullable<AbstractMesh>;
         public _masterMesh: Nullable<AbstractMesh>;
         /** @hidden */
         /** @hidden */
@@ -1261,9 +1258,11 @@
                 return this;
                 return this;
 
 
             // Transformation matrix
             // Transformation matrix
-            Matrix.ScalingToRef(1.0 / collider._radius.x, 1.0 / collider._radius.y, 1.0 / collider._radius.z, this._collisionsScalingMatrix);
-            this.worldMatrixFromCache.multiplyToRef(this._collisionsScalingMatrix, this._collisionsTransformMatrix);
-            this._processCollisionsForSubMeshes(collider, this._collisionsTransformMatrix);
+            const collisionsScalingMatrix = Tmp.Matrix[0];
+            const collisionsTransformMatrix = Tmp.Matrix[1];
+            Matrix.ScalingToRef(1.0 / collider._radius.x, 1.0 / collider._radius.y, 1.0 / collider._radius.z, collisionsScalingMatrix);
+            this.worldMatrixFromCache.multiplyToRef(collisionsScalingMatrix, collisionsTransformMatrix);
+            this._processCollisionsForSubMeshes(collider, collisionsTransformMatrix);
             return this;
             return this;
         }
         }