一个真实医院场景(166 个节点、44 个唯一模型、原始模型总量 396.77MB)在古河数字孪生引擎中的实测:加载约 15 秒,加载完成后渲染 59.8 FPS(满帧),总顶点 754 万、网格 1,544 个,经视锥剔除后同屏活跃网格仅 30.4%。
四组优化实验里有三组是"负结果":提高下载并发、全量预取、并行构建环境都让加载变慢——瓶颈是 CPU 端的模型解析而不是网络。这类失败数据同样公开,因为它决定了正确的优化方向:模型压缩与 LOD,而不是加并发。
数字孪生项目最常见的落差,是演示时流畅、交付后卡顿。原因通常不是引擎不行,而是没人对"多大的场景、多重的模型、能跑多少帧"做过量化测试。本文公开我们对一个真实医院场景的完整性能测试,包括不成功的优化尝试。

| 阶段 | 耗时 | 占比 |
|---|---|---|
| 场景数据获取与解析 | 约 16ms | 0.1% |
| 模型加载(44 模型/166 节点) | 7,802ms | 52.3% |
| 环境创建(地面/天空盒/大气) | 2,193ms | 14.7% |
| 道路网格生成(15 条) | 4,288ms | 28.7% |
| 材质重同步 | 594ms | 4.0% |
| 场景优化(八叉树等) | 52ms | 0.3% |
| 设备数据绑定与信息面板 | 10ms | 0.1% |
| 总计 | 约 14.9 秒 | 100% |
| 指标 | 实测值 |
|---|---|
| FPS | 59.8(满帧) |
| 总网格数 / 活跃网格数 | 1,544 / 470(30.4%) |
| 总顶点数 | 7,542,565 |
| 材质 / 纹理 | 601 / 81 |
| 空间剔除 | 八叉树分区 + 视锥剔除,已启用 |
| 自适应降级 | 硬件缩放 0.667x;超过百万顶点自动触发场景优化器 |
满帧的关键不是"渲染得快",而是"渲染得少":同屏只有三成网格真正参与渲染。配套启用的还有世界矩阵冻结、材质冻结、包围盒缓存、大模型网格合并等共 8 项优化。
| 实验 | 结果 | 结论 |
|---|---|---|
| 下载并发 3→6 并全量预取 | 加载 20,059ms(慢 34%) | 44 个模型并发解析阻塞主线程 |
| 仅下载并发 3→6 | 16,841ms(慢 13%) | 模型解析是 CPU 密集型,网络不是瓶颈 |
| 环境与道路并行构建 | 21,879ms(慢 46%) | 争用 WebGL 上下文,得不偿失 |
| 节点排序(唯一模型优先、克隆靠后) | 耗时无显著差异 | 逻辑更合理,予以保留 |
三个"变慢了"的实验回答了一个普遍误区:三维场景加载慢时,第一反应往往是加并发、上 CDN——但当解析发生在浏览器主线程时,这些手段只会更糟。正确方向是把"要解析的字节"变少:模型压缩(预计可把本场景加载时间从约 15 秒降到 6-8 秒)与三级 LOD(远景 1/10 面数,预计首屏再减 60%)。
微信咨询