From 460c0b842cc32a21589b182deef2886c6e55b379 Mon Sep 17 00:00:00 2001 From: qianqian <linefateme@gmail.com> Date: Tue, 9 May 2023 15:45:52 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20GLTFLoader=E5=8A=A0=E8=BD=BD=E6=9C=89?= =?UTF-8?q?=E9=A2=9D=E5=A4=96=E7=BA=B9=E7=90=86=E9=85=8D=E7=BD=AE=E7=9A=84?= =?UTF-8?q?gltf=E6=A8=A1=E5=9E=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../packageAPI/pages/ar/loaders/gltf-loader.js | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/miniprogram/packageAPI/pages/ar/loaders/gltf-loader.js b/miniprogram/packageAPI/pages/ar/loaders/gltf-loader.js index 788b1dad..8382fc69 100644 --- a/miniprogram/packageAPI/pages/ar/loaders/gltf-loader.js +++ b/miniprogram/packageAPI/pages/ar/loaders/gltf-loader.js @@ -999,7 +999,7 @@ export function registerGLTFLoader(THREE) { var json = this.json; var options = this.options; var textureLoader = this.textureLoader; - var URL = global.URL; + // var URL = global.URL; var textureDef = json.textures[textureIndex]; var textureExtensions = textureDef.extensions || {}; var source; @@ -1013,11 +1013,14 @@ export function registerGLTFLoader(THREE) { if (source.bufferView !== undefined) { sourceURI = parser.getDependency('bufferView', source.bufferView).then(function(bufferView) { isObjectURL = true; - var blob = new global.Blob([bufferView], { - type: source.mimeType - }); - sourceURI = URL.createObjectURL(blob); - return sourceURI + // var blob = new global.Blob([bufferView], { + // type: source.mimeType + // }); + // sourceURI = URL.createObjectURL(blob); + // 小程序不支持 Blob 对象,使用 base64 编码的字符串来创建 data URI + const base64Str = wx.arrayBufferToBase64(bufferView); + sourceURI = `data:${source.mimeType};base64,${base64Str}`; + return sourceURI; }) } return Promise.resolve(sourceURI).then(function(sourceURI) { @@ -1030,7 +1033,7 @@ export function registerGLTFLoader(THREE) { }) }).then(function(texture) { if (isObjectURL === true) { - URL.revokeObjectURL(sourceURI) + // URL.revokeObjectURL(sourceURI) } texture.flipY = false; if (textureDef.name !== undefined) texture.name = textureDef.name;