经纬志
首页 / Cesium / 使用示例

点云的层级抽稀

泼溅数据的层级,本质是不同密度的点集。示例用一层点按视距抽稀,把 LOD 的切换过程摆在明面上。

CesiumJS 1.121 · 更新 2026-10-28
源码与运行效果
运行效果

这个示例在做什么

五千个半透明彩色点聚成一团云雾状物体。滚轮拉远拉近时,左上角会显示当前视距与层级, 远处的点会被抽稀、点尺寸变大,近处则全部显示、点变细,这就是最朴素的 LOD 策略。

高斯泼溅(Gaussian Splatting)的瓦片也是这层逻辑:不同层级存不同密度的点集, 相机远了就切到低层级瓦片。示例没有真实的分层数据,于是按「每隔几个点显示一个」 的方式模拟抽稀,step 就是抽稀倍数。

关键接口

接口作用
tileset.maximumScreenSpaceError真实数据的 LOD 阈值,值越大越省性能
PointPrimitive.show逐点显隐,用来模拟抽稀
PointPrimitive.pixelSize点尺寸,远距离适当放大
Cartesian3.distance视距计算,作为层级切换依据

可以直接改的地方

位置改什么效果
step = Math.pow(2, 4 - level)换成 3 的幂抽稀更细,层级更多
size = 4 + level * 4改系数远观点的大小
alpha: 0.35改成 0.8点更实,接近实心
5000 个点改成 20000点云更密,注意帧率

替代说明:官方示例加载 ion 上的分层高斯泼溅数据。这里用单层点云按视距抽稀, 复现「远景省资源、近景看清细节」的效果;换成真实数据时交给 maximumScreenSpaceError 控制即可。