收藏
回答

小程序使用threejs,模拟器能加载出线上oss的模型,真机加载不出模型。路径为wxfile?

大致是client.signatureUrl获取oss文件路径,直接gltfLoader.load这个链接会403 ,就使用downloadFile这个api.本地gltfLoader.load这个临时路径是可以加载的。但是真机gltfLoader.load加载路径为为wxfile://,会加载不成功.

回答关注问题邀请回答
收藏

2 个回答

  • 聂龙
    聂龙
    08-05

    已解决,我也遇到这个问题,我是用的是 “threejs-miniprogram” ,真机加载wxfile://路径失败,我看了一下源码

    这个地方改成

    function _isRelativePath(url) {
        return (/^(ftp|wxfile):\/\/.*/i.test(url));
    }
    
    

    重新生成的打包文件 https://gitee.com/maxmowang/tool/blob/master/threejs-miniprogram.js

    08-05
    有用
    回复 1
    • 聂龙
      聂龙
      08-05
      然后重新打包
      08-05
      回复
  • hgxfhbvgdcv
    hgxfhbvgdcv
    2023-12-05

    已解决,

    我使用的'three-platformize',gltfLoader.load()方法不支持加载wxfile://路径,模拟器能加载是因为http路径,gltfLoader.parse加载wx.getFileSystemManager().readFile返回的buffer就行。注意gltfLoader.parse要多传一个参数,就是因为这个我错过正确答案,卡了好久。

    还有小程序真机好像不支持outlinePass后处理,坑

    2023-12-05
    有用
    回复 1
    • 尧&木&*
      尧&木&*
      03-15
      请教一下,three的加载模型方法是不支持临时文件吗?问题2你转成二进制数据后是怎么加载模型的呢?(需要传到服务器后再读取的吗)
      03-15
      回复
登录 后发表内容