Selaa lähdekoodia

Merge pull request #21282 from gkjohnson/gltf-webp-bug

GLTFLoader: Fix bug when loading external WebP texture
Mr.doob 4 vuotta sitten
vanhempi
commit
a6f08e314f
2 muutettua tiedostoa jossa 24 lisäystä ja 34 poistoa
  1. 12 17
      examples/js/loaders/GLTFLoader.js
  2. 12 17
      examples/jsm/loaders/GLTFLoader.js

+ 12 - 17
examples/js/loaders/GLTFLoader.js

@@ -742,7 +742,14 @@ THREE.GLTFLoader = ( function () {
 
 		var extension = textureDef.extensions[ name ];
 		var source = json.images[ extension.source ];
-		var loader = source.uri ? parser.options.manager.getHandler( source.uri ) : parser.textureLoader;
+
+		var loader = parser.textureLoader;
+		if ( source.uri ) {
+
+			var handler = parser.options.manager.getHandler( source.uri );
+			if ( handler !== null ) loader = handler;
+
+		}
 
 		return this.detectSupport().then( function ( isSupported ) {
 
@@ -2357,29 +2364,17 @@ THREE.GLTFLoader = ( function () {
 	 */
 	GLTFParser.prototype.loadTexture = function ( textureIndex ) {
 
-		var parser = this;
 		var json = this.json;
 		var options = this.options;
-
 		var textureDef = json.textures[ textureIndex ];
+		var source = json.images[ textureDef.source ];
 
-		var textureExtensions = textureDef.extensions || {};
-
-		var source;
-
-		source = json.images[ textureDef.source ];
-
-		var loader;
+		var loader = this.textureLoader;
 
 		if ( source.uri ) {
 
-			loader = options.manager.getHandler( source.uri );
-
-		}
-
-		if ( ! loader ) {
-
-			loader = this.textureLoader;
+			var handler = options.manager.getHandler( source.uri );
+			if ( handler !== null ) loader = handler;
 
 		}
 

+ 12 - 17
examples/jsm/loaders/GLTFLoader.js

@@ -807,7 +807,14 @@ var GLTFLoader = ( function () {
 
 		var extension = textureDef.extensions[ name ];
 		var source = json.images[ extension.source ];
-		var loader = source.uri ? parser.options.manager.getHandler( source.uri ) : parser.textureLoader;
+
+		var loader = parser.textureLoader;
+		if ( source.uri ) {
+
+			var handler = parser.options.manager.getHandler( source.uri );
+			if ( handler !== null ) loader = handler;
+
+		}
 
 		return this.detectSupport().then( function ( isSupported ) {
 
@@ -2422,29 +2429,17 @@ var GLTFLoader = ( function () {
 	 */
 	GLTFParser.prototype.loadTexture = function ( textureIndex ) {
 
-		var parser = this;
 		var json = this.json;
 		var options = this.options;
-
 		var textureDef = json.textures[ textureIndex ];
+		var source = json.images[ textureDef.source ];
 
-		var textureExtensions = textureDef.extensions || {};
-
-		var source;
-
-		source = json.images[ textureDef.source ];
-
-		var loader;
+		var loader = this.textureLoader;
 
 		if ( source.uri ) {
 
-			loader = options.manager.getHandler( source.uri );
-
-		}
-
-		if ( ! loader ) {
-
-			loader = this.textureLoader;
+			var handler = options.manager.getHandler( source.uri );
+			if ( handler !== null ) loader = handler;
 
 		}