news 2026/8/24 2:08:59

Draco 压缩一篇讲透:从参数到验证

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Draco 压缩一篇讲透:从参数到验证

Draco 压缩一篇讲透:从参数到验证

【免费下载链接】dracoDraco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.项目地址: https://gitcode.com/gh_mirrors/draco1/draco

Draco 压缩 3D 网格与点云,testdata 里一个 11 KB 的网格编码后仅 1.1 KB,约为原来十分之一。下文讲各场景该改哪些参数、最容易踩的坑在哪、以及如何验证改动生效。

⚙️ 不同场景下 Draco 压缩该改什么

文件大小与外观的取舍在量化位

最容易忽略的是:-cl(压缩级别)默认 7,范围 0–10,10 压缩最狠但解码最慢,0 反过来;真正决定文件大小和视觉偏差的往往是位置量化位,默认 11,多数项目照默认走"肉眼看不出差别"。设 0 则完全不做量化,文件会明显变大。

默认值集中定义在src/draco/compression/draco_compression_options.h,命令行入口在src/draco/tools/draco_encoder)。

验证标准:对同一输入分别用cl10cl3编码,如果 cl10 产物明显更小且解码耗时明显变长,说明参数链路生效了。仓库里现成的对照:testdata/test_nm.obj约 11 KB,test_nm.obj.edgebreaker.cl10.2.2.drc约 1.1 KB,sequential/cl3 版本约 1.6 KB。

编码测试用的示例模型

移动端和 Web 解码:两个开关决定速度

最容易忽略的不是算法,是内存分配方式。JavaScript 解码器默认按动态内存构建,兼容所有文件但不是最快的;如果峰值内存可预估,改成静态预分配,README 给出的数据是解码速度约提升 2 倍。npm 包(javascript/npm/draco3d/)自 1.4.0 起已改用 WASM,官方记录的性能提升约 200%,直接用包比自搓 JS 版本更划算。

解码端文件在javascript/draco_decoder.jsdraco_decoder_gltf.wasm按资产类型选),静态内存开关在CMakeLists.txt;Unity 项目不需要从源码编,unity/Plugin/里有 Windows/macOS/iOS/Android 四份预编译归档。

边界要说清楚:静态内存构建受预分配上限约束,超过预设大小的大文件会处理不了,资产大小分布跨度大时别贸然开。

Unity 插件解码后的渲染效果

glTF 转码器默认不构建,最容易漏

draco_transcoder目标只有在 CMake 配置时带上-DDRACO_TRANSCODER_SUPPORTED=ON才会生成,不开就以为没有转码工具,是最常见的误判。BUILDING.md也明说:开启后可能增大二进制体积,只编解码库时别顺手开。

转码器实现在src/draco/tools/draco_transcoder.cc,glTF 编解码在src/draco/io/gltf_encoder.ccsrc/draco/io/gltf_decoder.cc

已知限制要坦白:Draco 对小资产可能不赚反亏。仓库 testdata 里的对照:Box/glTF_Binary/Box.glb1.6 KB,转码后的Box_Draco.glb2.4 KB,反而大了。KB 级资产过一遍转码再比大小,不划算就别压。

转码前后对比用的测试资产

🧪 三个动作确认改动生效

  • 同一模型分别用 cl10 与 cl3 编码,对比 .drc 大小
  • 解码产物过一遍,核对顶点数与三角面数等于原网格
  • 转码一个小 glb,实测体积是变小还是变大

下一步读src/draco/compression/encode.h里的SetSpeedOptionsSetAttributeQuantization,按自己的资产类型封装一层参数预设。 让项目里每类资产锁定一组固定的压缩级别与量化位组合,避免每次编码临时拍参数。

【免费下载链接】dracoDraco is a library for compressing and decompressing 3D geometric meshes and point clouds. It is intended to improve the storage and transmission of 3D graphics.项目地址: https://gitcode.com/gh_mirrors/draco1/draco

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/24 2:08:13

Pi Agent 接入 DeepSeek API 实战:打造低成本、高效率的 AI 编程助手

最近在折腾AI编程助手的朋友,可能都注意到了两个现象:一是DeepSeek的API调用成本虽然相对友好,但积少成多也是一笔开销;二是市面上的AI助手工具越来越多,但真正能无缝融入开发流、不打断思路的却很少。如果你也遇到了类…

作者头像 李华
网站建设 2026/8/24 2:05:30

Toolformer:大模型如何自监督学习工具调用以突破自身局限

这次我们来看一篇重量级论文:《Toolformer: Language Models Can Teach Themselves to Use Tools》。这篇由 Meta AI 在 2023 年初发布的论文,可以说是大模型“学会使用工具”这一方向的奠基性工作。它不依赖复杂的提示工程或人工标注,而是让…

作者头像 李华
网站建设 2026/8/24 2:03:35

电商开发者项目验证:从精准定位到高效反馈的完整实操指南

你好,我是CSDN的一名技术博主。在开发者的日常工作中,无论是构建一个全新的工具、库,还是启动一个开源项目,我们常常会面临一个核心挑战:如何精准地找到目标用户群体,并高效地验证我们的想法是否真正解决了…

作者头像 李华
网站建设 2026/8/24 2:02:52

2026楚雄工程建筑材料检测排名 TOP5 CMA 资质提供钢材检测、水泥检测、砂石检测 全覆盖联系方式推荐.txt

楚雄建材检测市场近年可谓机构林立、良莠不齐。建筑总包单位、建材生产厂家、市政工程项目乃至装修建设企业,在选材验收时稍有不慎,便会遇上无资质机构出具的检测报告,这类报告无法用于工程报审、竣工验收备案,最终延误工期、徒增…

作者头像 李华
网站建设 2026/8/24 2:02:10

基准曲线停在周五,策略净值更新到周一:日期不同怎样补齐

策略净值已经更新到周一,基准曲线却停在上周五,直接相减会得到错误的同期收益。牛股王股票的策略收益与同期基准曲线便于查看整体差异,聚宽可在网页研究中导出时间序列,QMT的本地数据则需要用户维护更新时间。三处结果要比较&…

作者头像 李华