Closed GGBond-GIS closed 1 year ago
这个的作用是? 有没有 babylon 相关doc介绍?
你的意思是想直接加载基于 二进制 arraybuffer 或者 base64 编码的模型文件吗?
这种可以直接利用原生 web api 转 blob/file 再转 url 进行加载,比如
let file = new File([arraybuffer], 'name.glb')
// or
let file = new Blob([arraybuffer], {type: 'application/octet-stream'})
let url = URL.createObjectURL(file) // 生成一个临时的url
let model = await Engine3D.res.loadGltf(url)
对于 base64 ,也是可以先把 base64 转成 blob 再转 临时url,base64 转 blob 的方法很多,最简单的是利用 web 原生 fetch 直接加载 base64 即可,e.g:
let res = await fetch(`data:application/octet-stream;base64,${base64}`);
let blob = await res.blob();
let url = URL.createObjectURL(blob) // 生成一个临时的url
let model = await Engine3D.res.loadGltf(url)
以上两种方式都是通用的,对于图片或其他类型文件也是一样的,都可以统一转 Blob 再转 url 进行加载
目前来说,我们觉得没有必要过度包装 web 自带的 api,这个 issue 可以保持 open 一段时间,如果大家觉得有必要把这两种转换默认加入到 loadGltf
中,我们后面再把它加进去