浏览代码

ColladaLoader: Fixes #12530

Mugen87 7 年之前
父节点
当前提交
00b4d7a992
共有 1 个文件被更改,包括 21 次插入4 次删除
  1. 21 4
      examples/js/loaders/ColladaLoader.js

+ 21 - 4
examples/js/loaders/ColladaLoader.js

@@ -1393,12 +1393,27 @@ THREE.ColladaLoader.prototype = {
 			function getTexture( textureObject ) {
 
 				var sampler = effect.profile.samplers[ textureObject.id ];
+				var image;
+
+				// get image
 
 				if ( sampler !== undefined ) {
 
 					var surface = effect.profile.surfaces[ sampler.source ];
+					image = getImage( surface.init_from );
+
+				} else {
+
+					console.warn( 'THREE.ColladaLoader: Undefined sampler. Access image directly (see #12530).' );
+					image = getImage( textureObject.id );
+
+				}
 
-					var texture = textureLoader.load( getImage( surface.init_from ) );
+				// create texture if image is avaiable
+
+				if ( image !== undefined ) {
+
+					var texture = textureLoader.load( image );
 
 					var extra = textureObject.extra;
 
@@ -1421,11 +1436,13 @@ THREE.ColladaLoader.prototype = {
 
 					return texture;
 
-				}
+				} else {
+
+					console.error( 'THREE.ColladaLoader: Unable to load texture with ID:', textureObject.id );
 
-				console.error( 'THREE.ColladaLoader: Undefined sampler', textureObject.id );
+					return null;
 
-				return null;
+				}
 
 			}