许多文章都说到GeometricErorr,跟官方说的神乎其神,总之是一个几何误差阈值,渲染窗口在渲染的循环里使用相机参数来计算该瓦片的几何误差,当计算的几何误差超过tileset的maximumScreenSpaceError(最大可接受的几何误差)则进入下一个精度瓦片REPLACE或ADD来补充几何误差,官方文档也描述了几何误差和像素的关联
不过重点是并没有给出几何误差的计算方式,平时我们认识的LOD都是通过相机到瓦片中心的距离或者瓦片包围盒占屏幕的像素来控制瓦片节点的加载卸载,这里我通过经验简单给新手一种计算方式
从Cesium源码可以看出,瓦片的error会跟着视角变化
var sseDenominator = camera.frustum.sseDenominator;
error = (geometricError * height) / (distance * sseDenominator);
当瓦片的error小于tileset的最大误差则可以渲染</
理解Cesium中的几何误差计算:3DTiles精度调整策略

本文解析了Cesium中几何误差的概念,介绍了如何通过模型包围盒直径估算geometricError,并提供了一个计算公式。重点讲解了如何在生产tileset.json时应用这个概念,以及如何根据模型LOD和相机距离调整瓦片加载策略。
最低0.47元/天 解锁文章
6228

被折叠的 条评论
为什么被折叠?



