在cesium官网,对Skipping Levels of Detail有很全面的介绍Skipping Levels of Detail – Cesium
现将其介绍翻译如下:
Cesium 和3Dtiles使用层次细节级别(HLOD)自适应加载和优化3D模型。这样做允许引擎在远离摄影机时渲染低分辨率分幅,在靠近摄影机时渲染高分辨率分幅。但是,显示HLOD模型的标准方法将加载每个级别的分辨率,直到达到所需的分辨率。
Cesium 3D Tiles渲染器中的新更新现在允许它在加载时跳过细节级别,从而显著减少加载时间、网络请求和内存使用。为了实现这一点,Cesium在基于视觉启发法遍历HLOD树时只加载一部分Tiles,并应用一些巧妙的渲染技巧来精确混合多个细节级别。通过这样做,Cesium 优先考虑更高分辨率的Tiles。
原始(左)和新(右)加载方法的比较。右侧的图像收敛到最终结果,所需时间明显减少,下载的Tiles也更少。这两个都是在限制的网络连接上禁用缓存的情况下捕获的。
将优化添加到跳过详细级别可以减少30-50%的加载时间和内存使用,在加载时对性能的影响最小,并且在没有加载tiles的稳定状态下没有性能差异。我们最初的算法在16秒内通过节流连接加载上述模型市政厅,而优化代码在11秒内加载。跳过详细级别会将数据使用率从32 MB降至22 MB。
下图描述了下载的数据和tileset加载时的帧时间。原始方法(左)显示了比新的级别跳过方法(右)更高的数据使用率。性能图显示帧速率基本不受影响。在tileset完成加载后,图表显示,无论使用哪种方法,渲染单个帧的时间都会下降到16ms左右。
为了在没有小故障和弹出瑕疵的情况下完成级别跳过,Cesium应用了几种渲染技巧来混合多个级别的细节。下图显示了用于渲染AGI总部的draw调用的数量,如本文顶部的动画图像所示。
左侧是一个图形,描述了使用原始方法渲染平铺集时使用的绘制调用数。右侧的图像显示了使用新的级别跳过方法加载模型时进行的绘制调用数。我们可以观察到,在开始时,当模型大部分未加载时,新方法比旧方法进行更多的draw调用。这是由于对混合细节级别的额外绘制调用造成的。但是,这两种方法的draw调用数量相同,这表明在tileset完成加载后,新方法不会产生额外的成本。