Cesium3DTilesetVisualizer是一个用于渲染3D Tileset的CesiumJS组件,它将3D Tileset转换为场景中的3D模型。
以下是通过Cesium3DTilesetVisualizer将3D Tileset渲染到场景中的简单示例:
// 创建一个Viewer
var viewer = new Cesium.Viewer('cesiumContainer');
// 创建一个Cesium3DTilesetVisualizer
var tilesetVisualizer = new Cesium.Cesium3DTilesetVisualizer(viewer.scene, tileset);
// 将Cesium3DTilesetVisualizer添加到场景中
viewer.scene.primitives.add(tilesetVisualizer);
使用Cesium3DTilesetVisualizer需要以下依赖项:
| 属性名称 | 类型 | 描述 |
|---|---|---|
debugShowBoundingVolume |
Boolean |
是否显示边界框体 |
| 方法名称 | 描述 |
|---|---|
update(time) |
更新Cesium3DTilesetVisualizer的状态。time是一个可选的CesiumJulianDate对象,表示更新的时间。如果未指定时间,则默认使用当前时间。 |
| 事件名称 | 描述 |
|---|---|
readyPromise |
一个Promise对象,当Cesium3DTilesetVisualizer准备好使用时将被解决。 |
var viewer = new Cesium.Viewer('cesiumContainer');
// 加载3D Tileset
var tileset = new Cesium.Cesium3DTileset({
url: './sampleTileset/tileset.json'
});
// 创建一个Cesium3DTilesetVisualizer
var tilesetVisualizer = new Cesium.Cesium3DTilesetVisualizer(viewer.scene, tileset);
// 将Cesium3DTilesetVisualizer添加到场景中
viewer.scene.primitives.add(tilesetVisualizer);
// 等待tileset准备好后,更新其位置和朝向
tileset.readyPromise.then(function (tileset) {
viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -1.57, 0));
viewer.camera.lookAtTransform(Cesium.Matrix4.IDENTITY);
});
3D Tiling pipeline中的命令必须在命令行中使用,而不是在JavaScript中执行。Cesium3DTilesetVisualizer不支持基于网络的3D Tileset。必须将3D Tileset下载到本地并加载。
Cesium3DTilesetVisualizer目前不支持贴图。
Cesium3DTilesetVisualizer在加载大型数据集时可能会导致性能问题。