Kaynağa Gözat

Merge pull request #12004 from takahirox/UpdateFBXLoader

Update FBXLoader
Mr.doob 8 yıl önce
ebeveyn
işleme
65dde6213e
1 değiştirilmiş dosya ile 8 ekleme ve 4 silme
  1. 8 4
      examples/js/loaders/FBXLoader.js

+ 8 - 4
examples/js/loaders/FBXLoader.js

@@ -401,7 +401,7 @@
 			for ( var nodeID in materialNodes ) {
 			for ( var nodeID in materialNodes ) {
 
 
 				var material = parseMaterial( materialNodes[ nodeID ], textureMap, connections );
 				var material = parseMaterial( materialNodes[ nodeID ], textureMap, connections );
-				materialMap.set( parseInt( nodeID ), material );
+				if ( material !== null ) materialMap.set( parseInt( nodeID ), material );
 
 
 			}
 			}
 
 
@@ -431,6 +431,10 @@
 
 
 		}
 		}
 
 
+		// Seems like FBX can include unused materials which don't have any connections.
+		// Ignores them so far.
+		if ( ! connections.has( FBX_ID ) ) return null;
+
 		var children = connections.get( FBX_ID ).children;
 		var children = connections.get( FBX_ID ).children;
 
 
 		var parameters = parseParameters( materialNode.properties, textureMap, children );
 		var parameters = parseParameters( materialNode.properties, textureMap, children );
@@ -446,8 +450,8 @@
 				material = new THREE.MeshLambertMaterial();
 				material = new THREE.MeshLambertMaterial();
 				break;
 				break;
 			default:
 			default:
-				console.warn( 'THREE.FBXLoader: No implementation given for material type %s in FBXLoader.js. Defaulting to basic material.', type );
-				material = new THREE.MeshBasicMaterial( { color: 0x3300ff } );
+				console.warn( 'THREE.FBXLoader: No implementation given for material type %s in FBXLoader.js. Defaulting to standard material.', type );
+				material = new THREE.MeshStandardMaterial( { color: 0x3300ff } );
 				break;
 				break;
 
 
 		}
 		}
@@ -1416,7 +1420,7 @@
 
 
 						} else {
 						} else {
 
 
-							material = new THREE.MeshBasicMaterial( { color: 0x3300ff } );
+							material = new THREE.MeshStandardMaterial( { color: 0x3300ff } );
 							materials.push( material );
 							materials.push( material );
 
 
 						}
 						}