소스 검색

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 ) {
 			function getTexture( textureObject ) {
 
 
 				var sampler = effect.profile.samplers[ textureObject.id ];
 				var sampler = effect.profile.samplers[ textureObject.id ];
+				var image;
+
+				// get image
 
 
 				if ( sampler !== undefined ) {
 				if ( sampler !== undefined ) {
 
 
 					var surface = effect.profile.surfaces[ sampler.source ];
 					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;
 					var extra = textureObject.extra;
 
 
@@ -1421,11 +1436,13 @@ THREE.ColladaLoader.prototype = {
 
 
 					return texture;
 					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;
+				}
 
 
 			}
 			}