首页 / Cesium / 使用示例
包围盒与坐标轴调试
包围体是 3D Tiles 调度的基础。算错一点,就会出现选不中、飞不到的现象。把包围盒画成线,问题立刻可见。
源码与运行效果
这个示例在做什么
建筑物外面套了一层线框,底部伸出三根彩色短线表示东西南北天三个轴向。 线框就是根据数据范围算出来的包围盒,调试 3D Tiles 时用它检查包围体是否贴合。
真实场景里,tileset.boundingSphere 给出整份数据的球状包围体,
每个 Cesium3DTile 还有自己的 boundingVolume。
包围体不对,会出现「模型看得见但点不到」或「相机飞不到」这类问题。
示例把包围盒画成线,位置偏差一眼可见。
关键接口
| 接口 | 作用 |
|---|---|
tileset.boundingSphere | 整份数据的包围球,用于相机定位 |
tile.boundingVolume | 单块瓦片的包围体,参与裁剪与调度 |
Transforms.eastNorthUpToFixedFrame | 在局部坐标系里画轴向线 |
polyline + fromDegreesArrayHeights | 用折线勾出包围盒的 12 条棱 |
可以直接改的地方
| 位置 | 改什么 | 效果 |
|---|---|---|
w = 30, h = 44, d = 24 | 改成实际数据尺寸 | 线框随之贴合 |
1.05(线框放大系数) | 改成 1 | 线框紧贴模型表面 |
轴向线长度 60 | 改长 | 坐标轴更醒目 |
outlineWidth | 调大 | 线框更粗 |
替代说明:官方示例直接在真实 tileset 上显示每块瓦片的包围体。
这里用固定尺寸的盒体复现包围盒的画法,换成真实数据时把尺寸换成
tile.boundingVolume.boundingVolume.radius 等计算结果即可。