Преглед на файлове

GLTFLoader: Set RGBFormat for jpg with no mimeType. (#21892)

* GLTFLoader: Set RGBFormat for jpg with no mimeType.

* GLTFLoader: Handle data:image/jpeg uris.
Mr.doob преди 4 години
родител
ревизия
370504b43d
променени са 2 файла, в които са добавени 7 реда и са изтрити 4 реда
  1. 3 2
      examples/js/loaders/GLTFLoader.js
  2. 4 2
      examples/jsm/loaders/GLTFLoader.js

+ 3 - 2
examples/js/loaders/GLTFLoader.js

@@ -2291,10 +2291,11 @@
 			}
 			}
 
 
 			const URL = self.URL || self.webkitURL;
 			const URL = self.URL || self.webkitURL;
-			let sourceURI = source.uri;
+			let sourceURI = source.uri || '';
 			let isObjectURL = false;
 			let isObjectURL = false;
 			let hasAlpha = true;
 			let hasAlpha = true;
-			if ( source.mimeType === 'image/jpeg' ) hasAlpha = false;
+			const isJPEG = sourceURI.search( /\.jpe?g($|\?)/i ) > 0 || sourceURI.search( /^data\:image\/jpeg/ ) === 0;
+			if ( source.mimeType === 'image/jpeg' || isJPEG ) hasAlpha = false;
 
 
 			if ( source.bufferView !== undefined ) {
 			if ( source.bufferView !== undefined ) {
 
 

+ 4 - 2
examples/jsm/loaders/GLTFLoader.js

@@ -2548,11 +2548,13 @@ class GLTFParser {
 
 
 		const URL = self.URL || self.webkitURL;
 		const URL = self.URL || self.webkitURL;
 
 
-		let sourceURI = source.uri;
+		let sourceURI = source.uri || '';
 		let isObjectURL = false;
 		let isObjectURL = false;
 		let hasAlpha = true;
 		let hasAlpha = true;
 
 
-		if ( source.mimeType === 'image/jpeg' ) hasAlpha = false;
+		const isJPEG = sourceURI.search( /\.jpe?g($|\?)/i ) > 0 || sourceURI.search( /^data\:image\/jpeg/ ) === 0;
+
+		if ( source.mimeType === 'image/jpeg' || isJPEG ) hasAlpha = false;
 
 
 		if ( source.bufferView !== undefined ) {
 		if ( source.bufferView !== undefined ) {