文档目的
原始模型体量过大(GB 级),无法直接加载与渲染
OBJ 模型碎片多、面数高、贴图杂乱,WebGL 性能不可控
缺乏统一、可批量执行的模型优化管线
适用范围
手工制作模型
倾斜摄影三维实景模型
激光雷达点云重建网格模型
城市 / 园区 / 景区级数字孪生
WebGL / Three.js / Cesium / 自研引擎
单体精模展示(如文物高精度复刻)
仅离线渲染、不考虑实时性能的场景
总体优化技术路线(强制执行)
❗ 禁止直接发布 OBJ 作为线上格式
推荐线上资产格式
| 类型 | 推荐格式 |
| 几何 | glTF 2.0(GLB) |
| 几何压缩 | meshopt(优先) / Draco |
| 纹理 | KTX2(Basis Universal) |
| 场景组织 | 分块 + LOD / 3D Tiles(可选) |
优化总体流程(流水线)
各阶段详细实施规范
5.1 原始模型评估(必须执行)
| 指标 | 说明 |
| 总三角面数 | > 10M 必须减面 |
| Mesh 数量 | > 5,000 需合并 |
| 材质数量 | > 200 需整理 |
| 贴图数量 | > 200 必须合并 |
| 最大贴图尺寸 | > 4096 需降采样 |
5.2 模型清理与结构整理
目标
减少无效几何
降低碎 mesh 数量
提升后续减面与压缩质量
操作要点
删除不可见底面、内部面
合并同材质碎 mesh(按逻辑区块)
修复法线、非流形结构
推荐工具
MeshLab / meshlabserver
Blender(支持 Python 批处理)
5.3 几何减面与 LOD 生成(核心)
基本原则
不追求单模型最小,而追求“距离相关最优”
几何精度不足的部分,用贴图弥补
推荐 LOD 级别
| LOD | 适用距离 | 面数比例 |
| LOD0 | 近景 | 30%–100% |
| LOD1 | 中景 | 10%–30% |
| LOD2 | 远景 | 1%–10% |
| LOD3 | 超远 | 极简 / 替代体 |
技术要求
使用 Quadric Error Metrics 等保形算法
保留轮廓、边界、主要结构
推荐工具
Simplygon(商业)
Blender Decimate Modifier(可脚本)
MeshLab Simplification
5.4 UV 与材质优化(性能关键)
目标
降低 draw call
提升 GPU 缓存效率
强制规范
同一 LOD 内材质数 ≤ 10
同一区块尽量使用 Texture Atlas
操作建议
重打包 UV(允许轻微拉伸)
合并同类型贴图
使用 ORM(Occlusion / Roughness / Metallic)合图
5.5 贴图烘焙与重建
适用场景
高模 → 低模
几何细节大量丢失
推荐贴图类型
BaseColor
Normal
ORM(AO/Roughness/Metallic)
分辨率建议
| 场景 | 最大贴图 |
| 近景建筑 | 2K–4K |
| 中远景 | 1K–2K |
| 大范围地表 | ≤1K |
5.6 glTF / GLB 导出规范
原则
每个区块导出独立 GLB
单 GLB 推荐 < 20MB(未压缩)
设置要求
使用 Binary(GLB)格式
合并 Buffer
禁用无用属性(如 vertex color,若无需求)
5.7 几何压缩(meshopt / Draco)
推荐策略
默认 meshopt(解码快、Web 友好)
Draco 仅在带宽极端受限场景使用
工具
gltfpack
预期效果
几何体积降低 50%–80%
5.8 纹理压缩(KTX2,强制)
原因
GPU 原生支持
减少下载与显存占用
技术方案
Basis Universal
ETC1S(体积优先) / UASTC(质量优先)
工具
toktx
basisu
5.9 场景切块与流式加载(大场景必做)
切块原则
按空间网格(50m–200m)
每块独立 LOD
加载策略
视锥裁剪
距离裁剪
按需加载 / 卸载
可选方案
Cesium 3D Tiles
自研瓦片系统
批量处理工具推荐组合
最小可落地组合(免费)
Blender(Python 批处理)
meshlabserver
gltfpack
toktx
工业级组合
RealityCapture / Metashape(源头优化)
Simplygon
gltfpack + KTX2
成果验收指标
| 指标 | 要求 |
| 总体积 | ≤ 原始 5%–10% |
| 首屏加载 | < 3s(PC) |
| 稳定帧率 | ≥ 30 FPS |
| 单帧 draw call | ≤ 300(PC) |
| 支持 LOD | 必须 |
常见错误(禁止事项)
❌ 仅对 OBJ 做 zip / Draco,不减面
❌ 不切块,整景一次性加载
❌ 贴图不做 KTX2
❌ 碎 mesh 直接发布
附录:推荐工程化目录结构
结语
PonyTechLab