Cesium3DTileset

new Cesium.Cesium3DTileset(options)

一个 3D Tiles specification, 用于流式传输大规模异构的 3D 地理空间数据集。
此对象通常不直接实例化,请使用 Cesium3DTileset.fromUrl
Name Type Description
options Cesium3DTileset.ConstructorOptions 描述初始化选项的对象。
Throws:
Examples:
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(
     "http://localhost:8002/tilesets/Seattle/tileset.json"
  );
  scene.primitives.add(tileset);
} catch (error) {
  console.error(`Error creating tileset: ${error}`);
}
// Turn on camera collisions with the tileset.
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(
     "http://localhost:8002/tilesets/Seattle/tileset.json",
     { enableCollision: true }
  );
  scene.primitives.add(tileset);
} catch (error) {
  console.error(`Error creating tileset: ${error}`);
}
// Common setting for the skipLevelOfDetail optimization
const tileset = await Cesium.Cesium3DTileset.fromUrl(
  "http://localhost:8002/tilesets/Seattle/tileset.json", {
     skipLevelOfDetail: true,
     baseScreenSpaceError: 1024,
     skipScreenSpaceErrorFactor: 16,
     skipLevels: 1,
     immediatelyLoadDesiredLevelOfDetail: false,
     loadSiblings: false,
     cullWithChildrenBounds: true
});
scene.primitives.add(tileset);
// Common settings for the dynamicScreenSpaceError optimization
const tileset = await Cesium.Cesium3DTileset.fromUrl(
  "http://localhost:8002/tilesets/Seattle/tileset.json", {
     dynamicScreenSpaceError: true,
     dynamicScreenSpaceErrorDensity: 2.0e-4,
     dynamicScreenSpaceErrorFactor: 24.0,
     dynamicScreenSpaceErrorHeightFalloff: 0.25
});
scene.primitives.add(tileset);
See:

Members

触发以指示此帧中所有满足屏幕空间误差的瓦片已加载完成。对于此视图,瓦片集已完全加载。

此事件在场景渲染后的帧结束时触发。

Default Value: new Event()
Example:
tileset.allTilesLoaded.addEventListener(function() {
    console.log('All tiles are loaded');
});
See:
获取瓦片集的资产对象属性,该属性包含有关瓦片集的元数据。

请参见 3D Tiles 规范中的 asset schema reference 以获取完整的属性集。

backFaceCulling : boolean

是否剔除背面的几何体。当为真时,背面剔除由 glTF 材料的 doubleSided 属性决定;当为假时,背面剔除被禁用。
Default Value: true

readonly deprecated basePath : string

瓦片集 JSON 文件中非绝对路径所相对的基路径。

Deprecated: true

baseScreenSpaceError : number

必须达到的屏幕空间误差,以便在跳过细节级别之前。

仅在 Cesium3DTileset#skipLevelOfDetailtrue 时使用。

Default Value: 1024
瓦片集的包围球。
Example:
const tileset = await Cesium.Cesium3DTileset.fromUrl("http://localhost:8002/tilesets/Seattle/tileset.json");

viewer.scene.primitives.add(tileset);

// 设置相机以查看新添加的瓦片集
viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));
用于缓存瓦片的 GPU 内存量(以字节为单位)。该内存使用量是根据加载的瓦片的几何图形、纹理和批处理表纹理估算的。 对于点云,此值还包括每个点的元数据。

不在视图中的瓦片会被卸载以强制执行此限制。

如果降低此值导致瓦片卸载,则在下一帧卸载这些瓦片。

如果为了满足当前视图的期望屏幕空间误差(由 Cesium3DTileset#maximumScreenSpaceError 确定), 需要的瓦片大小超过 cacheBytes,则加载的瓦片的内存使用量将超过 cacheBytes,最多达到 maximumCacheOverflowBytes。 例如,如果 cacheBytes 是 500000,但需要 600000 字节的瓦片 来满足屏幕空间误差,则可以加载 600000 字节的瓦片(如果 maximumCacheOverflowBytes 至少为 100000)。 当这些瓦片超出视图时,它们将被卸载。

Default Value: 536870912
See:
确定该瓦片集是否会对地形、3D 瓦片或两者进行分类。

此选项仅适用于包含批处理 3D 模型、glTF 内容、几何数据或矢量数据的瓦片集。 即使未定义,矢量和几何数据也必须作为分类进行渲染,并默认为在地形和其他 3D 瓦片集上进行渲染。

对于批处理 3D 模型和 glTF 瓦片集启用此功能时,对 glTF 有一些要求/限制:

  • glTF 不能包含形态目标、绑定或动画。
  • glTF 不能包含 EXT_mesh_gpu_instancing 扩展。
  • 仅支持使用 TRIANGLES 的网格来分类其他资产。
  • 网格必须是密闭的。
  • 必须包含 POSITION 语义。
  • 如果同时存在 _BATCHID 和索引缓冲区,则所有具有相同批处理 ID 的索引必须占据索引缓冲区的连续部分。
  • 如果存在 _BATCHID 而没有索引缓冲区,则所有具有相同批处理 ID 的位置必须占据位置缓冲区的连续部分。

此外,点或实例化的 3D 模型不支持分类。

接收分类的 3D 瓦片或地形必须是完全不透明的。

Default Value: undefined
Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

用于选择性禁用瓦片集渲染的 ClippingPlaneCollection
用于选择性禁用瓦片集渲染的 ClippingPolygonCollection

colorBlendAmount : number

定义在 Cesium3DTileset#colorBlendModeMIX 时,用于在源颜色和特征颜色之间线性插值的值。 值为 0.0 时呈现源颜色,值为 1.0 时呈现特征颜色,介于两者之间的任何值都会导致源颜色和特征颜色的混合。
Default Value: 0.5
定义来自 Cesium API 或声明性样式的每个特征颜色如何与原始特征的源颜色(例如 glTF 材料或瓦片中的每个点颜色)混合。
Default Value: Cesium3DTileColorBlendMode.HIGHLIGHT

cullRequestsWhileMoving : boolean

优化选项。在相机移动时,不请求可能在返回时未被使用的瓦片。此优化仅适用于静止的瓦片集。
Default Value: true

cullRequestsWhileMovingMultiplier : number

优化选项。在移动时用于剔除请求的乘数。较大的值会导致更激进的剔除,较小的值会导致剔除较少。
Default Value: 60.0
应用于瓦片集所有瓦片的自定义着色器。仅用于使用 Model 的内容。 将自定义着色器与 Cesium3DTileStyle 一起使用可能会导致未定义行为。
Default Value: undefined
Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

debugColorizeTiles : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,为每个瓦片分配随机颜色。 这对于可视化 特征属于哪个瓦片非常有用,特别是在增量细化的情况下, 父瓦片的特征可能与子瓦片的特征交错。

Default Value: false

debugFreezeFrame : boolean

此属性仅用于调试;未针对生产使用进行优化。

确定是否仅使用上一个帧的瓦片进行渲染。 这 有效地“冻结”瓦片集到上一个帧,从而可以缩放 离开并查看已渲染的内容。

Default Value: false

debugShowBoundingVolume : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,将渲染每个可见瓦片的边界体积。如果瓦片具有内容边界体积或为空,则边界体积为白色;否则为红色。未达到屏幕空间误差且仍在细化到其后代的瓦片为黄色。

Default Value: false

debugShowContentBoundingVolume : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,将渲染每个可见瓦片内容的边界体积。如果瓦片具有内容边界体积,则边界体积为蓝色;否则为红色。

Default Value: false

debugShowGeometricError : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,绘制标签以指示每个瓦片的几何误差。

Default Value: false

debugShowMemoryUsage : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,绘制标签以指示每个瓦片的几何体和纹理内存使用情况。

Default Value: false

debugShowRenderingStatistics : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,绘制标签以指示每个瓦片的命令数量、点数、三角形和特征数量。

Default Value: false
此属性仅用于调试;未针对生产使用进行优化。

当为真时,绘制标签以指示每个瓦片的 URL。

Default Value: false

debugShowViewerRequestVolume : boolean

此属性仅用于调试;未针对生产使用进行优化。

当为真时,将为每个瓦片渲染查看请求体积。

Default Value: false
此属性仅用于调试;未针对生产使用进行优化。

当为真时,将每个瓦片的内容渲染为线框。

Default Value: false

dynamicScreenSpaceError : boolean

优化选项。对于街道级地平线视图,在远离相机时使用较低分辨率的瓦片。这减少了加载的数据量,并改善了瓦片集的加载时间,同时在远处视觉质量略有下降。

当相机靠近瓦片集的地面平面并朝向地平线时,该优化效果最强。此外,对于紧密适合的边界体积(如盒子和区域),结果更加准确。

Default Value: true

dynamicScreenSpaceErrorDensity : number

类似于 Fog#density,此选项控制 Cesium3DTileset#dynamicScreenSpaceError 优化应用的相机距离。较大的值会导致离相机更近的瓦片受到影响。此值必须为非负数。

此优化通过随着相机距离的变化,像钟形曲线一样使瓦片的屏幕空间误差 (SSE) 滚降。 这会导致在远离相机时选择低分辨率的瓦片。靠近相机时,不进行调整。 对于更远的瓦片,SSE 可降低最多达到 Cesium3DTileset#dynamicScreenSpaceErrorFactor (以像素误差为单位)。

增加密度会使钟形曲线变得更窄,从而影响离相机更近的瓦片。这类似于将雾移动得更靠近相机。

当密度为 0 时,优化将对瓦片集没有影响。

Default Value: 2.0e-4

dynamicScreenSpaceErrorFactor : number

一个参数,控制 Cesium3DTileset#dynamicScreenSpaceError 优化在地平线瓦片上的强度。 较大的值会导致加载低分辨率的瓦片,从而在略微降低视觉质量的情况下提高运行时性能。该值必须为非负数。

更具体地说,此参数表示离相机较远的瓦片的屏幕空间误差 (SSE) 的最大调整(以像素为单位)。有关此优化如何工作的更多详细信息,请参见 Cesium3DTileset#dynamicScreenSpaceErrorDensity

当 SSE 因子设置为 0 时,优化将对瓦片集没有影响。

Default Value: 24.0

dynamicScreenSpaceErrorHeightFalloff : number

瓦片高度的比例,用于确定 Cesium3DTileset#dynamicScreenSpaceError 优化的“街道级”水平。 当相机低于此高度时,动态屏幕空间误差优化将产生最大效果,并在超过此值时逐渐减弱。有效值介于 0.0 和 1.0 之间。

Default Value: 0.25
获取描述地球形状的椭球体。

enableCollision : boolean

如果为 true,则允许相机发生碰撞或进行拾取。当此选项为 true 时,如果 ScreenSpaceCameraController#enableCollisionDetection 为真,相机将被阻止进入或低于瓦片集表面。如果瓦片集中包含较多顶点的瓦片,这可能会对性能产生影响。
Default Value: false
管理此模型上的动态环境贴图的属性。影响光照。
Example:
// Change the ground color used for a tileset's environment map to a forest green
const environmentMapManager = tileset.environmentMapManager;
environmentMapManager.groundColor = Cesium.Color.fromCssColorString("#203b34");

examineVectorLinesFunction : function

用于检查正在流式传输的矢量线的函数。
Experimental

此功能使用了3D Tiles规范中的部分内容,该规范尚未定稿,可能会在不遵循Cesium标准弃用政策的情况下发生更改。

readonly extensions : object

获取瓦片集的扩展对象属性。
返回瓦片集 JSON 顶层的 extras 属性,其中包含应用特定的元数据。 如果 extras 不存在,则返回 undefined
See:
用于拾取和样式的特征 ID 的标签。

对于 EXT_mesh_features,这是特征 ID 的标签属性, 或者当未指定时为 "featureId_N"(其中 N 是 featureIds 数组中的索引)。 EXT_feature_metadata 没有标签字段,因此这样的特征 ID 集始终标记为 "featureId_N",其中 N 是 所有特征 ID 列表中的索引,特征 ID 属性在特征 ID 纹理之前列出。

如果 featureIdLabel 设置为整数 N,它会自动转换为字符串 "featureId_N"。 如果同时存在每个图元和每个实例的特征 ID,则实例特征 ID 优先。

Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为 true 时使用,以控制决定哪些瓦片被延迟加载的锥形大小。 位于该锥形内部的瓦片会立即加载。锥形外部的瓦片将根据它们距锥形的远近以及 Cesium3DTileset#foveatedInterpolationCallbackCesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation 进行潜在延迟加载。 将此设置为 0.0 表示锥形将是由相机位置和视线方向形成的直线。将此设置为 1.0 表示锥形覆盖相机的整个视野,基本上禁用该效果。
Default Value: 0.3
获取或设置一个回调,以控制在锥形外部瓦片的屏幕空间误差应提高多少,并在 Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxationCesium3DTileset#maximumScreenSpaceError 之间插值。

foveatedMinimumScreenSpaceErrorRelaxation : number

优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为 true 时使用,以控制位于锥形外部瓦片的起始屏幕空间误差松弛值。 屏幕空间误差将从该值开始逐步提升,直到 Cesium3DTileset#maximumScreenSpaceError,具体根据提供的 Cesium3DTileset#foveatedInterpolationCallback
Default Value: 0.0

foveatedScreenSpaceError : boolean

优化选项。通过临时提高屏幕边缘瓦片的屏幕空间误差,优先加载屏幕中心的瓦片。当屏幕中心的所有瓦片(由 Cesium3DTileset#foveatedConeSize 确定)加载完成后,屏幕空间误差将恢复正常。
Default Value: true

foveatedTimeDelay : number

优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为真时,用于控制在相机停止移动后等待多少秒再开始加载延迟的瓦片。 此时间延迟可以防止在相机移动时请求屏幕边缘附近的瓦片。 将此值设置为 0.0 将立即请求任何给定视图中的所有瓦片。
Default Value: 0.2
管理此瓦片集上的基于图像的光照的属性。

immediatelyLoadDesiredLevelOfDetail : boolean

当为真时,仅下载满足最大屏幕空间误差的瓦片。 跳过因子将被忽略,仅加载所需的瓦片。

仅在 Cesium3DTileset#skipLevelOfDetailtrue 时使用。

Default Value: false
触发以指示此帧中所有满足屏幕空间误差的瓦片已加载完成。此事件在初始视图中的所有瓦片加载完成时触发一次。

此事件在场景渲染后的帧结束时触发。

Default Value: new Event()
Example:
tileset.initialTilesLoaded.addEventListener(function() {
    console.log('Initial tiles are loaded');
});
See:

instanceFeatureIdLabel : string

用于拾取和样式的实例特征 ID 集的标签。

如果 instanceFeatureIdLabel 设置为整数 N,它会自动转换为字符串 "instanceFeatureId_N"。 如果同时存在每个图元和每个实例的特征 ID,则实例特征 ID 优先。

Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

模型着色时的光源颜色。当为 undefined 时,将使用场景的光源颜色。

例如,通过设置 tileset.imageBasedLighting.imageBasedLightingFactor = new Cartesian2(0.0, 0.0) 来禁用额外的光源会使瓦片集变得更暗。在这里,增加光源的强度会使瓦片集变得更亮。

Default Value: undefined
触发以指示加载新瓦片的进度。当请求新瓦片时、请求的瓦片下载完成时,以及下载的瓦片被处理并准备渲染时,都会触发此事件。

待处理瓦片请求的数量 numberOfPendingRequests 和正在处理的瓦片数量 numberOfTilesProcessing 会传递给事件监听器。

此事件在场景渲染后的帧结束时触发。

Default Value: new Event()
Example:
tileset.loadProgress.addEventListener(function(numberOfPendingRequests, numberOfTilesProcessing) {
    if ((numberOfPendingRequests === 0) && (numberOfTilesProcessing === 0)) {
        console.log('Stopped loading');
        return;
    }

    console.log(`Loading: requests: ${numberOfPendingRequests}, processing: ${numberOfTilesProcessing}`);
});
确定在遍历期间是否始终下载可见瓦片的兄弟瓦片。 这可能有助于确保在查看器向左/右转时瓦片已可用。

仅在 Cesium3DTileset#skipLevelOfDetailtrue 时使用。

Default Value: false

maximumCacheOverflowBytes : number

用于缓存瓦片的最大额外 GPU 内存量(以字节为单位)。

如果需要的瓦片大小超过 cacheBytes 加上 maximumCacheOverflowBytes 来满足当前视图的期望屏幕空间误差(由 Cesium3DTileset#maximumScreenSpaceError 确定), 则 Cesium3DTileset#memoryAdjustedScreenSpaceError 将被调整, 直到满足调整后的屏幕空间误差所需的瓦片使用的内存少于 cacheBytes 加上 maximumCacheOverflowBytes

Default Value: 536870912
See:

maximumScreenSpaceError : number

用于驱动细节级别细化的最大屏幕空间误差。该值帮助确定何时瓦片 会细化到其子瓦片,因此在平衡性能与视觉质量方面起着主要作用。

瓦片的屏幕空间误差大致等同于如果在瓦片位置渲染一个半径等于瓦片的 几何误差 的球体 所绘制的像素宽度。如果该值超过 maximumScreenSpaceError,则瓦片细化到其子瓦片。

根据瓦片集的不同,maximumScreenSpaceError 可能需要进行调整以达到适当的平衡。 较高的值提供更好的性能,但视觉质量较低。

Default Value: 16
一个 4x4 的变换矩阵,用于转换整个瓦片集。
Default Value: Matrix4.IDENTITY
Example:
// Adjust a tileset's height from the globe's surface.
const heightOffset = 20.0;
const boundingSphere = tileset.boundingSphere;
const cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center);
const surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
const offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
const translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3());
tileset.modelMatrix = Cesium.Matrix4.fromTranslation(translation);
渲染轮廓时使用的颜色。
Default Value: Color.BLACK
用于根据几何误差和眼穹顶光照控制点大小的选项。
优化选项。优先加载叶子瓦片。
Default Value: false

preloadFlightDestinations : boolean

优化选项。在相机飞行时获取相机的飞行目的地处的瓦片。
Default Value: true

preloadWhenHidden : boolean

tileset.showfalse 时预加载瓦片。加载瓦片就像瓦片集是可见的一样,但不渲染它们。
Default Value: false

progressiveResolutionHeightFraction : number

优化选项。如果在 (0.0, 0.5] 之间,屏幕空间误差达到或超过 progressiveResolutionHeightFraction*screenHeight 的瓦片将首先被优先加载。这可以帮助快速加载一层瓦片,同时继续加载全分辨率的瓦片。
Default Value: 0.3

readonly properties : object

获取瓦片集的属性字典对象,其中包含有关每个要素属性的元数据。

请参阅 3D Tiles 规范中的 properties schema reference 以获取完整的属性集。

Example:
console.log(`Maximum building height: ${tileset.properties.height.maximum}`);
console.log(`Minimum building height: ${tileset.properties.height.minimum}`);
See:
用于获取瓦片集 JSON 文件的资源
根瓦片。
确定瓦片集是否从光源投射或接收阴影。

启用阴影会对性能产生影响。投射阴影的瓦片集必须被渲染两次,第一次从相机视角,第二次从光源视角。

仅当 Viewer#shadowstrue 时,阴影才会被渲染。

Default Value: ShadowMode.ENABLED
确定瓦片集是否可见。
Default Value: true

showCreditsOnScreen : boolean

确定瓦片集的版权信息是否在屏幕上显示。
Default Value: false
是否显示使用 CESIUM_primitive_outline 扩展的模型的轮廓。 当为真时,将显示轮廓;当为假时,将不显示轮廓。
Default Value: true

skipLevelOfDetail : boolean

优化选项。确定在遍历期间是否应应用细节级别跳过。

替代精细化遍历的常见策略是将树的所有级别存储在内存中,并要求在父级可以细化之前加载所有子级。使用此优化后,可以完全跳过树的级别,并可以与其父级一起渲染子级。使用此优化时,瓦片集所需的内存显著减少。

Default Value: false
常量,定义加载瓦片时跳过的最小级别数。当为 0 时,不跳过任何级别。 例如,如果一个瓦片是 1 级,则不会加载任何瓦片,除非它们的级别大于 2。

仅在 Cesium3DTileset#skipLevelOfDetailtrue 时使用。

Default Value: 1

skipScreenSpaceErrorFactor : number

定义跳过的最小屏幕空间误差的乘数。 例如,如果一个瓦片的屏幕空间误差为 100,则不会加载任何瓦片,除非它们是叶子瓦片或屏幕空间误差 <= 100 / skipScreenSpaceErrorFactor

仅在 Cesium3DTileset#skipLevelOfDetailtrue 时使用。

Default Value: 16
要应用于此瓦片集的 SplitDirection
Default Value: SplitDirection.NONE
使用 3D Tiles Styling language 定义的样式, 应用于瓦片集中的每个要素。

undefined 赋值以移除样式,这将恢复瓦片集的视觉外观到默认状态 (当没有应用样式时)。

样式在 Cesium3DTileset#tileVisible 事件被触发之前应用于瓦片,因此 tileVisible 中的代码可以在样式应用后手动设置要素的属性(例如颜色和显示)。 当分配新样式时,任何手动设置的属性都将被覆盖。

使用始终为 "true" 的条件来指定所有未被先前条件覆盖的对象的颜色。 否则,将使用默认颜色 Cesium.Color.White。类似地,使用始终为 "true" 的条件来 指定所有未被先前条件覆盖的对象的显示属性。否则,将使用默认显示值 true。

Default Value: undefined
Example:
tileset.style = new Cesium.Cesium3DTileStyle({
   color : {
       conditions : [
           ['${Height} >= 100', 'color("purple", 0.5)'],
           ['${Height} >= 50', 'color("red")'],
           ['true', 'color("blue")']
       ]
   },
   show : '${Height} > 0',
   meta : {
       description : '"Building id ${id} has height ${Height}."'
   }
});
See:
触发以指示瓦片的内容加载失败。

如果没有事件监听器,错误消息将记录到控制台。

传递给监听器的错误对象包含两个属性:

  • url:加载失败的瓦片的 URL。
  • message:错误消息。

如果存在多个内容,则此事件将在每个有错误的内部内容上触发一次。

Default Value: new Event()
Example:
tileset.tileFailed.addEventListener(function(error) {
    console.log(`An error occurred loading tile: ${error.url}`);
    console.log(`Error: ${error.message}`);
});
触发以指示瓦片的内容已加载。

已加载的 Cesium3DTile 将传递给事件监听器。

此事件在瓦片集遍历期间触发,同时帧正在渲染,以便在同一帧内使瓦片的更新生效。请勿在事件监听器中创建或修改 Cesium 实体或原始对象。

Default Value: new Event()
Example:
tileset.tileLoad.addEventListener(function(tile) {
    console.log('A tile was loaded.');
});

readonly tilesLoaded : boolean

true 时,所有满足此帧屏幕空间误差的瓦片将被加载。该视图的瓦片集将 完全加载。
Default Value: false
See:
触发以指示瓦片的内容已卸载。

卸载的 Cesium3DTile 将传递给事件监听器。

此事件在瓦片内容卸载之前立即触发,同时帧正在渲染,以便事件监听器能够访问瓦片的内容。请勿在事件监听器中创建 或修改 Cesium 实体或原始对象。

Default Value: new Event()
Example:
tileset.tileUnload.addEventListener(function(tile) {
    console.log('A tile was unloaded from the cache.');
});
See:
此事件会在每个帧内对每个可见瓦片触发一次。这可以用来手动 样式化瓦片集。

可见的 Cesium3DTile 将传递给事件监听器。

此事件在瓦片集遍历期间触发,同时帧正在渲染,以便在同一帧内使瓦片的更新生效。 请勿在事件监听器中创建或修改 Cesium 实体或原始对象。

Default Value: new Event()
Examples:
tileset.tileVisible.addEventListener(function(tile) {
    if (tile.content instanceof Cesium.Model3DTileContent) {
        console.log('A 3D model tile is visible.');
    }
});
// Apply a red style and then manually set random colors for every other feature when the tile becomes visible.
tileset.style = new Cesium.Cesium3DTileStyle({
    color : 'color("red")'
});
tileset.tileVisible.addEventListener(function(tile) {
    const content = tile.content;
    const featuresLength = content.featuresLength;
    for (let i = 0; i < featuresLength; i+=2) {
        content.getFeature(i).color = Cesium.Color.fromRandom();
    }
});

readonly timeSinceLoad : number

返回自瓦片集加载和首次更新以来的时间,单位为毫秒。

readonly totalMemoryUsageInBytes : number

瓦片集使用的 GPU 内存总量,以字节为单位。该值是根据加载的瓦片的几何图形、纹理、批处理表纹理和二进制元数据估算的。
See:

vectorClassificationOnly : boolean

表示仅应使用瓦片集的矢量瓦片进行分类。
Default Value: false
Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

vectorKeepDecodedPositions : boolean

是否应将解码后的位置保留在内存中。 这与 Cesium3DTileFeature.getPolylinePositions 一起使用。
Default Value: false
Experimental

此功能使用的是 3D Tiles 规范中尚未最终确定的部分,可能会在没有 Cesium 标准弃用政策的情况下发生变化。

Methods

static Cesium.Cesium3DTileset.fromIonAssetId(assetId, options)Promise.<Cesium3DTileset>

创建一个 3D Tiles tileset, 用于从 Cesium ion 资产 ID 流式传输大规模异构 3D 地理空间数据集。
Name Type Description
assetId number Cesium ion 资产 ID。
options Cesium3DTileset.ConstructorOptions optional 描述初始化选项的对象。
Returns:
Throws:
  • RuntimeError : 当瓦片集资产版本不是 0.0、1.0 或 1.1, 或者当瓦片集包含未支持的必需扩展时。
Example:
// Load a Cesium3DTileset with a Cesium ion asset ID of 124624234
try {
  const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(124624234);
  scene.primitives.add(tileset);
} catch (error) {
  console.error(`Error creating tileset: ${error}`);
}
See:
  • Cesium3DTileset#fromUrl

static Cesium.Cesium3DTileset.fromUrl(url, options)Promise.<Cesium3DTileset>

创建一个 3D Tiles tileset, 用于流式传输大规模异构 3D 地理空间数据集。
Name Type Description
url Resource | string 瓦片集 JSON 文件的 URL。
options Cesium3DTileset.ConstructorOptions optional 描述初始化选项的对象。
Returns:
Throws:
  • RuntimeError : 当瓦片集资产版本不是 0.0、1.0 或 1.1, 或者当瓦片集包含未支持的必需扩展时。
Examples:
try {
  const tileset = await Cesium.Cesium3DTileset.fromUrl(
     "http://localhost:8002/tilesets/Seattle/tileset.json"
  );
  scene.primitives.add(tileset);
} catch (error) {
  console.error(`Error creating tileset: ${error}`);
}
// Common setting for the skipLevelOfDetail optimization
const tileset = await Cesium.Cesium3DTileset.fromUrl(
  "http://localhost:8002/tilesets/Seattle/tileset.json", {
     skipLevelOfDetail: true,
     baseScreenSpaceError: 1024,
     skipScreenSpaceErrorFactor: 16,
     skipLevels: 1,
     immediatelyLoadDesiredLevelOfDetail: false,
     loadSiblings: false,
     cullWithChildrenBounds: true
});
scene.primitives.add(tileset);
// Common settings for the dynamicScreenSpaceError optimization
const tileset = await Cesium.Cesium3DTileset.fromUrl(
  "http://localhost:8002/tilesets/Seattle/tileset.json", {
     dynamicScreenSpaceError: true,
     dynamicScreenSpaceErrorDensity: 2.0e-4,
     dynamicScreenSpaceErrorFactor: 24.0,
     dynamicScreenSpaceErrorHeightFalloff: 0.25
});
scene.primitives.add(tileset);
See:
  • Cesium3DTileset#fromIonAssetId

static Cesium.Cesium3DTileset.loadJson(tilesetUrl)Promise.<object>

提供了一个钩子,以覆盖用于请求瓦片集 JSON 的方法, 在从远程服务器获取瓦片集时非常有用。
Name Type Description
tilesetUrl Resource | string 要获取的 JSON 文件的 URL。
Returns:
一个承诺,解析为获取的 JSON 数据。
销毁此对象持有的 WebGL 资源。销毁一个对象允许以确定的方式释放 WebGL 资源, 而不是依赖垃圾收集器来销毁该对象。

一旦对象被销毁,就不应使用它;调用除 isDestroyed 以外的任何函数将导致 DeveloperError 异常。因此, 将返回值(undefined)赋值给该对象,如示例中所示。
Throws:
Example:
tileset = tileset && tileset.destroy();
See:

getHeight(cartographic, scene)number|undefined

获取给定地理坐标处加载表面的高度。此函数将仅考虑已加载瓦片的网格,而不一定是瓦片集中可用的最详细瓦片。当对点云进行采样时,此函数将始终返回 undefined。
Name Type Description
cartographic Cartographic 要查找高度的地理坐标。
scene Scene 可视化正在进行的场景。
Returns:
给定地理坐标的高度,如果无法找到则返回 undefined。
Example:
const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(124624234);
scene.primitives.add(tileset);

const height = tileset.getHeight(scene.camera.positionCartographic, scene);

hasExtension(extensionName)boolean

如果瓦片集 JSON 文件在 extensionsUsed 中列出了该扩展,则返回 true;否则返回 false
Name Type Description
extensionName string 要检查的扩展名。
Returns:
如果瓦片集 JSON 文件在 extensionsUsed 中列出了该扩展,则返回 true;否则返回 false
如果此对象已被销毁,则返回 true;否则返回 false。

如果此对象已被销毁,则不应使用它;调用除 isDestroyed 以外的任何函数将导致 DeveloperError 异常。
Returns:
如果此对象已被销毁,则返回 true;否则返回 false
See:
将瓦片集的 Cesium3DTileset#style 标记为脏值,这将强制所有 特征在每个可见的下一帧中重新评估样式。
卸载上一帧未被选定的所有瓦片。可以用来 明确管理瓦片缓存,并将加载的瓦片总数减少到 Cesium3DTileset#cacheBytes 以下。

瓦片卸载发生在下一帧,以保持所有 WebGL 删除调用 在渲染循环内。

Type Definitions

Cesium.Cesium3DTileset.ConstructorOptions

Cesium3DTileset 构造函数的初始化选项
Properties:
Name Type Attributes Default Description
show boolean <optional>
true 确定瓦片集是否可见。
modelMatrix Matrix4 <optional>
Matrix4.IDENTITY 变换矩阵,用于转换瓦片集的根瓦片。
modelUpAxis Axis <optional>
Axis.Y 加载瓦片内容模型时,哪个轴被视为向上。
modelForwardAxis Axis <optional>
Axis.X 加载瓦片内容模型时,哪个轴被视为向前。
shadows ShadowMode <optional>
ShadowMode.ENABLED 确定瓦片集是投射阴影还是接收光源的阴影。
maximumScreenSpaceError number <optional>
16 用于驱动细节级别优化的最大屏幕空间误差。
cacheBytes number <optional>
536870912 瓦片缓存将被修剪的大小(以字节为单位),如果缓存中包含当前视图不需要的瓦片。
maximumCacheOverflowBytes number <optional>
536870912 允许的最大额外内存(以字节为单位),用于缓存冗余空间,如果当前视图需要的内存超过 Cesium3DTileset#cacheBytes
cullWithChildrenBounds boolean <optional>
true 优化选项。是否使用子瓦片的边界体积的联合来剔除瓦片。
cullRequestsWhileMoving boolean <optional>
true 优化选项。在相机移动时不要请求可能未使用的瓦片。当相机处于静止状态时,此优化适用。
cullRequestsWhileMovingMultiplier number <optional>
60.0 优化选项。在移动时剔除请求所用的乘数。更大的值会导致更激进的剔除,更小的值则导致剔除较少。
preloadWhenHidden boolean <optional>
false tileset.showfalse 时预加载瓦片。加载瓦片就像瓦片集可见一样,但不渲染这些瓦片。
preloadFlightDestinations boolean <optional>
true 优化选项。在相机飞行时预加载相机飞行目标处的瓦片。
preferLeaves boolean <optional>
false 优化选项。优先加载叶子瓦片。
dynamicScreenSpaceError boolean <optional>
true 优化选项。对于街道级景观视图,远离相机的地方使用较低分辨率的瓦片。这将减少加载的数据量,并在视觉质量稍有下降的情况下提高瓦片集的加载时间。
dynamicScreenSpaceErrorDensity number <optional>
2.0e-4 类似于 Fog#density,此选项控制 Cesium3DTileset#dynamicScreenSpaceError 优化应用的相机距离。较大的值将导致离相机更近的瓦片受到影响。
dynamicScreenSpaceErrorFactor number <optional>
24.0 控制 Cesium3DTileset#dynamicScreenSpaceError 优化在地平线瓦片上的强度的参数。较大的值会导致加载较低分辨率的瓦片,提高运行时性能,但在视觉质量上会稍有下降。
dynamicScreenSpaceErrorHeightFalloff number <optional>
0.25 瓦片集高度的比例,确定“街道级”相机视图的位置。当相机位于此高度以下时,Cesium3DTileset#dynamicScreenSpaceError 优化将产生最大作用,超过此值后将逐渐减弱。
progressiveResolutionHeightFraction number <optional>
0.3 优化选项。如果在 (0.0, 0.5] 之间,屏幕空间误差达到或超过 progressiveResolutionHeightFraction*screenHeight 的瓦片将首先被优先加载。这可以帮助快速加载一层瓦片,同时继续加载全分辨率瓦片。
foveatedScreenSpaceError boolean <optional>
true 优化选项。通过暂时提高边缘瓦片的屏幕空间误差,优先加载屏幕中心的瓦片。一旦所有屏幕中心的瓦片(由 Cesium3DTileset#foveatedConeSize 确定)加载完毕,屏幕空间误差将恢复正常。
foveatedConeSize number <optional>
0.1 优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为真时,用于控制确定哪些瓦片被延迟的锥形大小。处于锥形内的瓦片会立即加载。处于锥形外的瓦片会根据它们距锥形的远近及其屏幕空间误差进行延迟。这由 Cesium3DTileset#foveatedInterpolationCallbackCesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation 控制。将其设置为 0.0 意味着锥形将由相机位置和视角形成的直线。将其设置为 1.0 意味着锥形将包含相机的整个视野,禁用此效果。
foveatedMinimumScreenSpaceErrorRelaxation number <optional>
0.0 优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为真时,用于控制锥形外瓦片的起始屏幕空间误差放松。屏幕空间误差将根据提供的 Cesium3DTileset#foveatedInterpolationCallback 从瓦片集值提升到 Cesium3DTileset#maximumScreenSpaceError
foveatedInterpolationCallback Cesium3DTileset.foveatedInterpolationCallback <optional>
Math.lerp 优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为真时,用于控制在锥形外提升屏幕空间误差的程度,从 Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation 插值到 Cesium3DTileset#maximumScreenSpaceError
foveatedTimeDelay number <optional>
0.2 优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为真时,用于控制在相机停止移动后等待多少秒再开始加载延迟的瓦片。这个时间延迟可以防止在相机移动时请求屏幕边缘附近的瓦片。将其设置为 0.0 会立即请求任何给定视图中的所有瓦片。
skipLevelOfDetail boolean <optional>
false 优化选项。确定在遍历期间是否应用细节级别跳过。
baseScreenSpaceError number <optional>
1024 skipLevelOfDetailtrue 时,必须达到的屏幕空间误差才能跳过细节级别。
skipScreenSpaceErrorFactor number <optional>
16 skipLevelOfDetailtrue 时,定义跳过的最小屏幕空间误差的乘数。与 skipLevels 一起用于确定要加载哪些瓦片。
skipLevels number <optional>
1 skipLevelOfDetailtrue 时,定义在加载瓦片时跳过的最小级别数的常量。设置为 0 时,不会跳过任何级别。与 skipScreenSpaceErrorFactor 一起用于确定要加载哪些瓦片。
immediatelyLoadDesiredLevelOfDetail boolean <optional>
false skipLevelOfDetailtrue 时,仅下载满足最大屏幕空间误差的瓦片。跳过因子被忽略,只有所需的瓦片会被加载。
loadSiblings boolean <optional>
false skipLevelOfDetailtrue 时,确定在遍历期间是否始终下载可见瓦片的兄弟瓦片。
clippingPlanes ClippingPlaneCollection <optional>
用于选择性禁用瓦片集呈现的 ClippingPlaneCollection
clippingPolygons ClippingPolygonCollection <optional>
用于选择性禁用瓦片集呈现的 ClippingPolygonCollection
classificationType ClassificationType <optional>
确定地形、3D 瓷砖或两者将由此瓦片集分类。有关限制和限制的详细信息,请参见 Cesium3DTileset#classificationType
ellipsoid Ellipsoid <optional>
Ellipsoid.WGS84 确定地球大小和形状的椭球体。
pointCloudShading object <optional>
用于构造 PointCloudShading 对象以基于几何误差和光照控制点衰减的选项。
lightColor Cartesian3 <optional>
着色模型时的光源颜色。当 undefined 时,将使用场景的光源颜色。
imageBasedLighting ImageBasedLighting <optional>
用于管理此瓦片集的图像基照明的属性。
backFaceCulling boolean <optional>
true 是否剔除背面的几何体。当为真时,背面剔除由 glTF 材料的 doubleSided 属性决定;当为假时,将禁用背面剔除。
enableShowOutline boolean <optional>
true 是否启用使用 CESIUM_primitive_outline 扩展的模型的轮廓。这可以设置为 false,以避免加载时对几何体进行额外处理。为 false 时,showOutlines 和 outlineColor 选项将被忽略。
showOutline boolean <optional>
true 是否显示使用 CESIUM_primitive_outline 扩展的模型的轮廓。当为 true 时,显示轮廓;为 false 时,不显示轮廓。
outlineColor Color <optional>
Color.BLACK 渲染轮廓时使用的颜色。
vectorClassificationOnly boolean <optional>
false 表示仅应使用瓷砖集的向量瓦片进行分类。
vectorKeepDecodedPositions boolean <optional>
false 向量瓦片是否应将解码的位置保留在内存中。此选项与 Cesium3DTileFeature.getPolylinePositions 一起使用。
featureIdLabel string | number <optional>
"featureId_0" 用于拾取和样式设置的特征 ID 集的标签。对于 EXT_mesh_features,这是特征 ID 的标签属性,或在未指定的情况下为 "featureId_N"(其中 N 是特征 ID 数组中的索引)。EXT_feature_metadata 没有标签字段,因此此类特征 ID 集始终标记为 "featureId_N",其中 N 是所有特征 ID 列表中特征 ID 属性出现在特征 ID 纹理之前时的索引。如果 featureIdLabel 是整数 N,则会自动转换为字符串 "featureId_N"。如果存在逐个原始和逐实例特征 ID,实例特征 ID 将优先。
instanceFeatureIdLabel string | number <optional>
"instanceFeatureId_0" 用于拾取和样式设置的实例特征 ID 集的标签。如果 instanceFeatureIdLabel 设置为整数 N,则会自动转换为字符串 "instanceFeatureId_N"。如果存在逐个原始和逐实例特征 ID,实例特征 ID 将优先。
showCreditsOnScreen boolean <optional>
false 是否在屏幕上显示此瓦片集的版权信息。
splitDirection SplitDirection <optional>
SplitDirection.NONE 要应用于此瓦片集的 SplitDirection 分割。
enableCollision boolean <optional>
false true 时,启用相机或 CPU 拾取的碰撞检测。当 true 时,相机将被阻止在瓦片集表面以下移动,如果 ScreenSpaceCameraController#enableCollisionDetection 为 true。
projectTo2D boolean <optional>
false 是否准确地将瓦片集投影到 2D。如果为真,则瓦片集将在 2D 中准确投影,但将使用更多内存。如果为假,瓦片集将使用更少的内存,并且仍将在 2D / CV 模式中呈现,但其投影位置可能不准确。此选项在瓦片集创建后无法设置。
enablePick boolean <optional>
false 是否允许在使用 WebGL 1 时与 pick 进行碰撞和 CPU 拾取。如果使用 WebGL 2 或更高版本,则将忽略此选项。如果使用 WebGL 1 且此选项为真,pick 操作将正常工作,但将使用更多内存。如果在 WebGL 1 中运行且此选项为假,模型将使用更少的内存,但 pick 将始终返回 undefined。此选项在瓦片集加载后无法设置。
debugHeatmapTilePropertyName string <optional>
用于作为热图着色的瓦片变量。所有渲染的瓦片将相对于彼此指定的变量值着色。
debugFreezeFrame boolean <optional>
false 仅用于调试。确定是否仅使用前一帧的瓦片进行渲染。
debugColorizeTiles boolean <optional>
false 仅用于调试。当为真时,为每个瓦片分配随机颜色。
enableDebugWireframe boolean <optional>
false 仅用于调试。此选项必须为真才能在 WebGL1 中有效。此选项在瓦片集创建后无法设置。
debugWireframe boolean <optional>
false 仅用于调试。当为真时,以线框的形式渲染每个瓦片的内容。
debugShowBoundingVolume boolean <optional>
false 仅用于调试。当为真时,渲染每个瓦片的边界体积。
debugShowContentBoundingVolume boolean <optional>
false 仅用于调试。当为真时,渲染每个瓦片内容的边界体积。
debugShowViewerRequestVolume boolean <optional>
false 仅用于调试。当为真时,渲染每个瓦片的查看请求体积。
debugShowGeometricError boolean <optional>
false 仅用于调试。当为真时,绘制标签以指示每个瓦片的几何误差。
debugShowRenderingStatistics boolean <optional>
false 仅用于调试。当为真时,绘制标签以指示每个瓦片的命令数量、点数、三角形和特征数量。
debugShowMemoryUsage boolean <optional>
false 仅用于调试。当为真时,绘制标签以指示每个瓦片使用的纹理和几何体内存(以兆字节为单位)。
debugShowUrl boolean <optional>
false 仅用于调试。当为真时,绘制标签以指示每个瓦片的 URL。

Cesium.Cesium3DTileset.foveatedInterpolationCallback(p, q, time)number

优化选项。当 Cesium3DTileset#foveatedScreenSpaceError 为 true 时作为回调使用,用于控制在锥形外部瓦片的屏幕空间误差提高多少, 在 Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxationCesium3DTileset#maximumScreenSpaceError 之间进行插值。
Name Type Description
p number 插值的起始值。
q number 插值的结束值。
time number 插值的时间,通常在 [0.0, 1.0] 范围内。
Returns:
插值后的值。
Default Value: Math.lerp
需要帮助?获得答案的最快方法是来自社区和团队 Cesium Forum.