根据实际项目经验和近期的论文,总结一下Cesium加载大规模三维数据性能优化方法。个人认为在实际的GIS数字孪生项目中,其可行的优化手段主要有三种:
(1)通过专业的转换工具CesiumLab等对原始的三维模型进行轻量化处理,包括顶点压缩、纹理压缩等。
(2)针对不同场景和模型,调整cesium相关参数,包括maximumScreenSpaceError(最大的屏幕空间误差)、maximumMemoryUsage(最大使用的GPU内存量)等。通过调整参数降低渲染效果并不能稳定提升渲染性能,一组参数不一定适合所有场景。根据实际测试,调整maximumScreenSpaceError和maximumMemoryUsage可以显著改善模型加载性能。
(3)修改Cesium源码:通过限制绘制命令数量,可控制每帧渲染的 GPU 计算需求,稳定提升渲染性能,需要修改原有的三维瓦片渲染过程,修改Cesiumjs\packages\engine\Source\Scene\Cesium3DTileset.js。
具体的算法参考该文献:《大体量集中三维模型的Cesium渲染性能优化》王珩玮 胡振中 赵燕来
算法流程:(下图来源于文献:《大体量集中三维模型的Cesium渲染性能优化》)