Browse Source

Merge pull request #18072 from zeux/morph-fix-base

Fix rendering of objects without morph target influences with morph materials
Michael Herzog 5 years ago
parent
commit
a26eea25ee
2 changed files with 5 additions and 2 deletions
  1. 1 1
      src/renderers/WebGLRenderer.js
  2. 4 1
      src/renderers/webgl/WebGLMorphtargets.js

+ 1 - 1
src/renderers/WebGLRenderer.js

@@ -727,7 +727,7 @@ function WebGLRenderer( parameters ) {
 
 
 		}
 		}
 
 
-		if ( object.morphTargetInfluences ) {
+		if ( material.morphTargets || material.morphNormals ) {
 
 
 			morphtargets.update( object, geometry, material, program );
 			morphtargets.update( object, geometry, material, program );
 
 

+ 4 - 1
src/renderers/webgl/WebGLMorphtargets.js

@@ -17,7 +17,10 @@ function WebGLMorphtargets( gl ) {
 
 
 		var objectInfluences = object.morphTargetInfluences;
 		var objectInfluences = object.morphTargetInfluences;
 
 
-		var length = objectInfluences.length;
+		// When object doesn't have morph target influences defined, we treat it as a 0-length array
+		// This is important to make sure we set up morphTargetBaseInfluence / morphTargetInfluences
+
+		var length = objectInfluences === undefined ? 0 : objectInfluences.length;
 
 
 		var influences = influencesList[ geometry.id ];
 		var influences = influencesList[ geometry.id ];