Browse Source

GLTFLoader: Revert merging primitives.

Don McCurdy 7 years ago
parent
commit
788c7ee236
1 changed files with 7 additions and 52 deletions
  1. 7 52
      examples/js/loaders/GLTFLoader.js

+ 7 - 52
examples/js/loaders/GLTFLoader.js

@@ -2150,9 +2150,6 @@ THREE.GLTFLoader = ( function () {
 
 
 			var primitives = meshDef.primitives;
 			var primitives = meshDef.primitives;
 
 
-			var typesUsed = new Set();
-			var drawModesUsed = new Set();
-
 			return scope.loadGeometries( primitives ).then( function ( geometries ) {
 			return scope.loadGeometries( primitives ).then( function ( geometries ) {
 
 
 				for ( var i = 0, il = primitives.length; i < il; i ++ ) {
 				for ( var i = 0, il = primitives.length; i < il; i ++ ) {
@@ -2316,63 +2313,21 @@ THREE.GLTFLoader = ( function () {
 
 
 					}
 					}
 
 
-					if ( primitives.length === 1 ) return mesh;
-
-					mesh.name += '_' + i;
-
-					group.add( mesh );
-
-					typesUsed.add( mesh.constructor );
-					drawModesUsed.add( mesh.drawMode );
-
-				}
-
-				// Merge primitives into a single mesh with multiple buffer geometry
-				// groups. Merging requires BufferGeometryUtils, and that all primitives
-				// use the constructor, draw mode, and set of attributes. If any
-				// requirements are not met, a THREE.Group is returned instead.
-
-				if ( THREE.BufferGeometryUtils === undefined ) return group;
-
-				if ( typesUsed.size > 1 || drawModesUsed.size > 1 ) return group;
-
-				var TypedMesh = Array.from( typesUsed )[ 0 ];
-				var drawMode = Array.from( drawModesUsed )[ 0 ];
+					if ( primitives.length > 1 ) {
 
 
-				if ( TypedMesh !== THREE.Mesh && TypedMesh !== THREE.SkinnedMesh ) {
+						mesh.name += '_' + i;
 
 
-					return group;
+						group.add( mesh );
 
 
-				}
-
-				var groupGeometries = [];
-				var groupMaterials = [];
-
-				for ( var i = 0; i < group.children.length; ++i ) {
-
-					var geometry = group.children[ i ].geometry;
-					var material = group.children[ i ].material;
+					} else {
 
 
-					// Can't update spec/gloss uniforms on a multi-material mesh,
-					// so skip this case for now.
-					if ( material.isGLTFSpecularGlossinessMaterial ) return group;
+						return mesh;
 
 
-					groupGeometries.push( geometry );
-					groupMaterials.push( material );
+					}
 
 
 				}
 				}
 
 
-				var mergedGeometry = THREE.BufferGeometryUtils.mergeBufferGeometries( groupGeometries );
-
-				if ( !mergedGeometry ) return group;
-
-				var mergedMesh = new TypedMesh( mergedGeometry, groupMaterials );
-				mergedMesh.drawMode = drawMode;
-
-				if ( meshDef.name !== undefined ) mergedMesh.name = meshDef.name;
-				if ( meshDef.extras !== undefined ) mergedMesh.userData = meshDef.extras;
-
-				return mergedMesh;
+				return group;
 
 
 			} );
 			} );