Three.js + Vue 处理glb文件过大问题(DRACOLoader加载压缩glb)

起因,three.js editer导出的glb文件过于庞大,导致部署后文件加载过久

解决方法:

第一步(得有个blender),压缩:

导出时把压缩勾选上

这时候我们会得到一个glb文件,但与three.js editer导出不同的的是,这个文件引入代码中会报如下错误

这个警告表明在使用 THREE.GLTFLoader 时,没有提供 DRACOLoader 实例。DRACOLoader 是用于加载 Draco 压缩格式的模型数据的 loader。如果你的模型使用了 Draco 压缩,你需要为 THREE.GLTFLoader 提供一个 DRACOLoader 实例。

第二步,引入:

点击node_modules找到three,复制以下文件夹

粘贴到public目录

第三步,使用:

在three页面引入DRACOLoader

import {DRACOLoader} from 'three/examples/jsm/loaders/DRACOLoader.js'

修改原来的代码为:

const dracoLoader=new DRACOLoader();
      dracoLoader.setDecoderPath('/draco/gltf/');
      // 加载3D模型
      const loader = new GLTFLoader();
      loader.setDRACOLoader(dracoLoader);
      loader.load(this.file, (gltf) => {
//...
})

DRACOLoader能够帮我们解析压缩后的glb,这样就可以解决报错了!

同一模型优化后的结果展示:

相关推荐

  1. GDBGDB解CORE文件

    2023-12-12 14:20:01       14 阅读
  2. 【<span style='color:red;'>GDB</span>】

    GDB

    2023-12-12 14:20:01      24 阅读

最近更新

  1. TCP协议是安全的吗?

    2023-12-12 14:20:01       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2023-12-12 14:20:01       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2023-12-12 14:20:01       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2023-12-12 14:20:01       18 阅读

热门阅读

  1. python elasticsearch 日期聚合

    2023-12-12 14:20:01       26 阅读
  2. 利用flask将yolov5算法封装成在线推理服务

    2023-12-12 14:20:01       43 阅读
  3. Windows server flask

    2023-12-12 14:20:01       37 阅读
  4. 2024年软考高项还是机考吗?附常见问题答疑

    2023-12-12 14:20:01       33 阅读
  5. 816 - Abbott‘s Revenge (UVA)

    2023-12-12 14:20:01       42 阅读