VUE整合ThreeJS加载压缩模型遇到的坑

本文记录了使用ThreeJs结合Vue开发时,如何解决大型gltf模型加载慢的问题。通过压缩模型将250M减少到25M,采用DRACOLoader加载,但初始配置中模型无法正常显示。问题在于解码JS的加载路径错误。解决方法是将draco文件夹放置在static目录下,并正确设置解码路径为'static/draco/gltf/',从而成功加载模型。
摘要由CSDN通过智能技术生成

 

项目场景:

刚开始接触ThreeJs,使用VUE结合的方式去开发,此次由于模型比较大要200多M直接加载速度特别慢,于是在网上找到相关压缩gftl模型的方法,具体参考:https://blog.csdn.net/weixin_43081805/article/details/88723626针对此次压缩和展现遇到的问题做一次记录。


问题描述:

1,模型压缩后从250M缩小到25M,还是很不错的。

2,压缩后的模型需要用DRACOLoader去加载,根据网上的说法会用到drac算法,因此在three/examples/js/libs/下找到了draco文件夹,将此文件夹直接拷贝出去,放入了assets文件夹下,然后去引用:

import { GLTFLoader } from 'three/examples/jsm/loaders/GLTFLoader.js'
import { DRACOLoader } from 'three/examples/jsm/loaders/DRACOLoader'
const loader = new GLTFLoader()
      // Draco 解码库
      const dracoLoader = new DRACOLoader()
      dracoLoader.setDecoderPath('assets/draco/gltf/')
      dracoLoader.setDecoderConfig({ type: 'js' })
      loader.setDRACOLoader(dracoLoader)
      loader.load(
        'static/models/test.gltf',
        (gltf) => {
          const root = gltf.scene
          this.scene.add(root)
        }
      )

最终的结果就是模型死活加载不出来。


原因分析:

尝试不用VUE的方式直接用原生JS的方式去写没问题,所以考虑到是不是解码JS加载出问题了,考虑到assets和static文件夹的特殊性,因此将文件放入static下试试。


解决方案:

直接将文件夹拷贝到static下,替换引用路径,加载成功。

dracoLoader.setDecoderPath('static/draco/gltf/')
  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值