cesium加载Draco几何压缩数据

1.1 处理流程

  • 利用3d-tiles-tools 或gltf-pipeline 压缩glb 或b3dm。
  • cesium 直接加载Draco压缩后的数据。

1.2 遇见的问题

报错找不到draco_decoder.wasm,无法解压数据。

cesium包里有这个文件,但是vue项目中找不到。那大概率是webpack的问题。

接下来看我的 vue.config.js文件。

复制代码
plugins: [
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' }] })
]

可以看到只处理了ThirdParty/Workers 文件的引用,但是ThirdParty里其他文件没有处理,而draco_decoder.wasm 恰好在这次选项中。那就更改配置。

复制代码
        plugins: [
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, cesiumWorkers), to: 'Workers' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'Assets'), to: 'Assets' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'Widgets'), to: 'Widgets' }] }),
            new CopyWebpackPlugin({ patterns: [{ from: path.join(cesiumSource, 'ThirdParty/Workers'), to: 'ThirdParty/Workers' }] }),
            new CopyWebpackPlugin({
                patterns: [{
                        from: path.join(cesiumSource, 'ThirdParty'),
                        to: 'ThirdParty',
                        // 只复制 ThirdParty 下的 Workers 目录之外的文件
                        filter: (file) => {
                            return !file.includes('Workers');
                        }
                    },

                ]
            }),]

此时可以加载Draco压缩数据

相关推荐
Lhuu(重开版12 小时前
JS:正则表达式和作用域
开发语言·javascript·正则表达式
荔枝一杯酸牛奶13 小时前
HTML 表单与表格布局实战:两个经典作业案例详解
前端·html
Charlie_lll13 小时前
学习Three.js–纹理贴图(Texture)
前端·three.js
yuguo.im13 小时前
我开源了一个 GrapesJS 插件
前端·javascript·开源·grapesjs
安且惜13 小时前
带弹窗的页面--以表格形式展示
前端·javascript·vue.js
摘星编程14 小时前
用React Native开发OpenHarmony应用:NFC读取标签数据
javascript·react native·react.js
GISer_Jing14 小时前
AI驱动营销:业务技术栈实战(From AIGC,待总结)
前端·人工智能·aigc·reactjs
GIS之路16 小时前
GDAL 实现影像裁剪
前端·python·arcgis·信息可视化
AGMTI16 小时前
webSock动态注册消息回调函数功能实现
开发语言·前端·javascript
码界奇点16 小时前
基于SpringBoot+Vue的前后端分离外卖点单系统设计与实现
vue.js·spring boot·后端·spring·毕业设计·源代码管理