加载 3DTiles
当我们有了自己的 3DTiles 数据,可以将其托管一个服务器容器中,必比如 nginx、tomcat 等,然后获取到索引文件(tileset.json)的路径 url。
Cesium3DTileset 类提供了 fromUrl(url, options) 方法来加载我们的自己的 3DTiles 数据。
let viewer = new Cesium.Viewer("cesiumContainer");
let url =
"https://ds-rebuild-prod-1301434080.cos.ap-guangzhou.myqcloud.com/model/202401/1744542774717317121/b3dm/tileset.json";
Cesium.Cesium3DTileset.fromUrl(url)
.then((tileset) => {
viewer.scene.primitives.add(tileset);
viewer.zoomTo(tileset);
})
.catch((err) => {});加载参数
在加载 3DTiles 时,我们可以通过添加一些 Cesium3DTileset.ConstructorOptions 参数来调整最终加载效果。

这些配置大概分成以下 5 类:
1、核心参数
url指定
3DTiles数据入口文件路径(tileset.json)。该参数为必需项,可通过Cesium3DTileset.fromUrl()直接传递或作为构造参数。maximumNumberOfLoadedTiles设置最大加载瓦片数量,默认值为
1000。用于控制内存消耗和渲染性能。shadows控制模型阴影接收模式,可选值:
Cesium.ShadowMode.ENABLED(启用)、DISABLED(禁用)或RECEIVE_ONLY(仅接收)。默认禁用。enableCollision启用相机与模型的碰撞检测,默认值为
false。开启后相机无法穿透模型表面。
2、性能优化参数
maximumMemoryUsage设置最大内存使用量(单位:MB),默认
128MB。超出时自动卸载低优先级瓦片 。dynamicScreenSpaceError启用动态屏幕空间误差调整,默认
true。根据视口变化自动平衡渲染精度与性能 。maximumScreenSpaceError定义最大屏幕空间误差阈值(默认
16)。数值越大,瓦片加载层级越低(性能优先);数值越小,细节保留越多。skipLevelOfDetail是否跳过中间 LOD 层级直接加载叶子节点,默认
false。开启后提升加载速度但可能增加跳跃感 。preferLeaves优先加载叶子节点,默认
false。适用于需要快速展示最高细节的场景 。
3、视觉控制参数
imageBasedLightingFactor调整基于图像的照明强度(范围 0-1),默认
1.0。数值越小,环境光影响越弱 。lightColor设置光源颜色,默认白色(
Cesium.Color.WHITE)。影响模型表面光照效果 。cullWithChildrenBounds是否通过子节点包围盒进行视锥剔除,默认
true。关闭后可能提升渲染精度但降低性能 。
4、调试参数
debugFreezeFrame冻结当前帧渲染状态,用于静态调试。
debugColorizeTiles按层级颜色标记瓦片,直观显示
LOD分布。debugShowBoundingVolume显示瓦片包围盒,辅助空间范围分析。
debugShowGeometricError展示几何误差数值,帮助优化
LOD配置。
5、其他高级参数
collisionTextureSizeScale碰撞纹理尺寸缩放因子,默认
1.0。影响碰撞检测精度。preloadFlightDestinations预加载飞行路径终点瓦片,默认
false。适用于相机飞行动画场景。
- loadTilesWithRequestVolume
是否仅加载请求体积内的瓦片,默认 true。关闭后可能加载不可见区域数据。