Browse Source

Raycaster/Projector: Skip morphtarget if influence === 0.

Mr.doob 11 năm trước cách đây
mục cha
commit
29ab8246b6
2 tập tin đã thay đổi với 8 bổ sung2 xóa
  1. 4 1
      src/core/Projector.js
  2. 4 1
      src/core/Raycaster.js

+ 4 - 1
src/core/Projector.js

@@ -259,9 +259,12 @@ THREE.Projector = function () {
 
 						for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) {
 
-							var targets = morphTargets[ t ].vertices;
 							var influence = morphInfluences[ t ];
 
+							if ( influence === 0 ) continue;
+
+							var targets = morphTargets[ t ].vertices;
+
 							_vA.x += ( targets[ face.a ].x - v1p.x ) * influence;
 							_vA.y += ( targets[ face.a ].y - v1p.y ) * influence;
 							_vA.z += ( targets[ face.a ].z - v1p.z ) * influence;

+ 4 - 1
src/core/Raycaster.js

@@ -271,9 +271,12 @@
 
 						for ( var t = 0, tl = morphTargets.length; t < tl; t ++ ) {
 
-							var targets = morphTargets[ t ].vertices;
 							var influence = morphInfluences[ t ];
 
+							if ( influence === 0 ) continue;
+
+							var targets = morphTargets[ t ].vertices;
+
 							vA.x += ( targets[ face.a ].x - a.x ) * influence;
 							vA.y += ( targets[ face.a ].y - a.y ) * influence;
 							vA.z += ( targets[ face.a ].z - a.z ) * influence;