瀏覽代碼

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;
-			let sourceURI = source.uri;
+			let sourceURI = source.uri || '';
 			let isObjectURL = false;
 			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 ) {
 

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

@@ -2548,11 +2548,13 @@ class GLTFParser {
 
 		const URL = self.URL || self.webkitURL;
 
-		let sourceURI = source.uri;
+		let sourceURI = source.uri || '';
 		let isObjectURL = false;
 		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 ) {