Browse Source

Merge pull request #13172 from cnspaha/patch-6

ColladaLoader: Fallback if material doesn't match
Mr.doob 7 years ago
parent
commit
20bb0a5f62
1 changed files with 13 additions and 1 deletions
  1. 13 1
      examples/js/loaders/ColladaLoader.js

+ 13 - 1
examples/js/loaders/ColladaLoader.js

@@ -3519,6 +3519,8 @@ THREE.ColladaLoader.prototype = {
 
 
 		}
 		}
 
 
+		var fallbackMaterial = new THREE.MeshBasicMaterial( { color: 0xff00ff ) };
+
 		function resolveMaterialBinding( keys, instanceMaterials ) {
 		function resolveMaterialBinding( keys, instanceMaterials ) {
 
 
 			var materials = [];
 			var materials = [];
@@ -3526,7 +3528,17 @@ THREE.ColladaLoader.prototype = {
 			for ( var i = 0, l = keys.length; i < l; i ++ ) {
 			for ( var i = 0, l = keys.length; i < l; i ++ ) {
 
 
 				var id = instanceMaterials[ keys[ i ] ];
 				var id = instanceMaterials[ keys[ i ] ];
-				materials.push( getMaterial( id ) );
+
+				if ( id === undefined ) {
+
+					console.warn( 'THREE.ColladaLoader: Material with key %s not found. Apply fallback material.', keys[ i ] );
+					materials.push( fallbackMaterial );
+
+				} else {
+
+					materials.push( getMaterial( id ) );
+
+				}
 
 
 			}
 			}