存档级三维模型动辄几百 MB,无法直接放进网页。云展厅的技术核心,是把高精度采集数据转换成能在浏览器和手机上流畅加载、交互、甚至 AR 查看的轻量化资产,同时尽量不损失观感。本文拆解这条链路。

本文为技术科普。文中体积/参数为常见工程范围,具体取值随文物与目标平台而定。

一、展示模型的格式:glTF / GLB

Web 三维展示的事实标准是 glTF 2.0(及其二进制封装 .glb),被称为“三维领域的 JPEG”。它把几何、材质、纹理、动画打包,浏览器端用 WebGL 直接渲染,无需插件。

存档常用的 OBJ、PLY、FBX 不适合直接上网——它们或体积大、或不含标准 PBR 材质。云展厅的第一步通常是从归档母本导出/转换为 glTF,并采用 metallic-roughness 标准 PBR 材质(很多老扫描件用已废弃的 specular-glossiness 扩展,需转换,否则在新渲染引擎里会变白模)。

二、让模型变小的两项压缩

1. 几何压缩:Draco

Draco 对网格的顶点、法线、UV 做量化与熵编码,几何体积通常可压缩到原来的 20%–40%。代价是加载时需要一个解码器(WASM)。

工程要点:解码器应本地化部署,不要依赖外部 CDN——否则离线/弱网/内网环境会因拉不到解码器而白屏。

2. 纹理压缩:KTX2 / Basis

普通 JPG/PNG 纹理解码后在显存里仍是未压缩位图,移动端易爆显存。KTX2(Basis Universal) 是 GPU 原生压缩纹理,显存占用与带宽都更低,对多模型同屏的展厅尤为关键。

经过 Draco + KTX2,一件文物的展示模型通常能压到单件 1–3 MB 量级,在移动网络下可接受。

三、轻量化:减面与纹理分级

压缩之外,还要做模型简化(Decimation):把归档母本的高面数网格按观感无损的程度减面,并把纹理从 ≥1200 dpi 降到展示够用的分辨率。原则是——

  • 几何减面以轮廓与关键细节不塌陷为底线;
  • 法线贴图(Normal Map)可把高模细节“烘焙”到低模上,用更少的面保留视觉细节。

归档母本永久保留,展示模型是它的派生物。算法升级后,凭母本可重新生成更优的展示版,无需重扫文物——这就是“一次采集,两份价值”在展示侧的体现。

四、浏览器渲染与交互

展示层常用 <model-viewer>(基于 three.js 封装)或直接用 three.js / Babylon.js:

  • 360° 旋转、缩放:鼠标/触摸操控相机;
  • 环境光照(IBL):用 HDR 环境贴图让 PBR 材质呈现真实反射;
  • 热点标注:在模型表面挂交互点,弹出讲解;
  • 全景展厅:若是“展厅漫游”形态,用全景图(等距柱状投影)+ 热点,叠加三维展品。

五、移动端 AR:不用装 App

主流方案借助操作系统级 AR,无需安装应用

  • iOS:提供 USDZ 模型,Safari 调起 AR Quick Look;
  • Android:用 glTF/GLB 经 Scene Viewer 调起 ARCore;
  • WebXR:支持的浏览器可直接在网页内进入 AR 会话。

观众扫码即可把文物按真实比例“摆”到所在环境中查看,适合现场用自己的手机体验。

六、加载性能优化清单

  1. Draco + KTX2 压缩,单件控制在数 MB;
  2. 解码器与依赖本地化,避免外部 CDN 依赖;
  3. 懒加载:进入视口或点击后再加载模型;
  4. 静态托管 + 强缓存:模型、解码器设长缓存(immutable);
  5. poster/占位图:模型加载完成前显示封面,避免白屏;
  6. 控制同屏 WebGL 上下文数量,移动端尤其注意显存。

云展厅不是“把模型传上网”那么简单,而是一条从存档母本到浏览器/AR 的转换与优化链路:glTF 标准化、Draco/KTX2 压缩、减面轻量化、WebGL 渲染、系统级 AR。做对了,几百 MB 的高精度数据也能在手机上秒开,且观感不打折。

想看实际效果,可浏览我们的云展厅示例;做方案评估欢迎联系我们