# Cesium3DTileset

#### new Cesium.Cesium3DTileset(options)
engine/Source/Scene/Cesium3DTileset.js 203

A 3D Tiles tileset, used for streaming massive heterogeneous 3D geospatial datasets.
This object is normally not instantiated directly, use `Cesium3DTileset.fromUrl`.

Name | Type | Description
--- | --- | ---
`options` | Cesium3DTileset.ConstructorOptions | An object describing initialization options

##### Throws:

- DeveloperError : The tileset must be 3D Tiles version 0.0 or 1.0.

##### 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);

##### Experimental

Support for loading Gaussian splats content encoded with SPZ compression using the draft glTF extensions KHR_gaussian_splatting and KHR_gaussian_splatting_compression_spz_2 is experimental and is subject change without Cesium's standard deprecation policy.

##### See:

- 3D Tiles specification

### Members

#### allTilesLoaded : Event
engine/Source/Scene/Cesium3DTileset.js 617

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. The tileset is completely loaded for this view.

This event is fired at the end of the frame after the scene is rendered.

Default Value: `new Event()`

##### Example:

    tileset.allTilesLoaded.addEventListener(function() {
        console.log('All tiles are loaded');
    });

##### See:

- Cesium3DTileset#tilesLoaded

#### readonly asset : object
engine/Source/Scene/Cesium3DTileset.js 1107

Gets the tileset's asset object property, which contains metadata about the tileset.

See the asset schema reference in the 3D Tiles spec for the full set of properties.

#### backFaceCulling : boolean
engine/Source/Scene/Cesium3DTileset.js 873

Whether to cull back-facing geometry. When true, back face culling is determined by the glTF material's doubleSided property; when false, back face culling is disabled.

Default Value: `true`

#### readonly deprecated basePath : string
engine/Source/Scene/Cesium3DTileset.js 1289

The base path that non-absolute paths in tileset JSON file are relative to.

Deprecated: true

#### baseScreenSpaceError : number
engine/Source/Scene/Cesium3DTileset.js 771

The screen space error that must be reached before skipping levels of detail.

Only used when `Cesium3DTileset#skipLevelOfDetail` is `true`.

Default Value: `1024`

#### readonly boundingSphere : BoundingSphere
engine/Source/Scene/Cesium3DTileset.js 1661

The tileset's bounding sphere.

##### Example:

    const tileset = await Cesium.Cesium3DTileset.fromUrl("http://localhost:8002/tilesets/Seattle/tileset.json");

    viewer.scene.primitives.add(tileset);

    // Set the camera to view the newly added tileset
    viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));

#### cacheBytes : number
engine/Source/Scene/Cesium3DTileset.js 1547

The amount of GPU memory (in bytes) used to cache tiles. This memory usage is estimated from geometry, textures, and batch table textures of loaded tiles. For point clouds, this value also includes per-point metadata.

Tiles not in view are unloaded to enforce this.

If decreasing this value results in unloading tiles, the tiles are unloaded the next frame.

If tiles sized more than `cacheBytes` are needed to meet the desired screen space error, determined by `Cesium3DTileset#maximumScreenSpaceError`, for the current view, then the memory usage of the tiles loaded will exceed `cacheBytes` by up to `maximumCacheOverflowBytes`. For example, if `cacheBytes` is 500000, but 600000 bytes of tiles are needed to meet the screen space error, then 600000 bytes of tiles may be loaded (if `maximumCacheOverflowBytes` is at least 100000). When these tiles go out of view, they will be unloaded.

Default Value: `536870912`

##### See:

- Cesium3DTileset#totalMemoryUsageInBytes

#### readonly classificationType : ClassificationType
engine/Source/Scene/Cesium3DTileset.js 1808

Determines whether terrain, 3D Tiles, or both will be classified by this tileset.

This option is only applied to tilesets containing batched 3D models, glTF content, geometry data, or vector data. Even when undefined, vector and geometry data must render as classifications and will default to rendering on both terrain and other 3D Tiles tilesets.

When enabled for batched 3D model and glTF tilesets, there are a few requirements/limitations on the glTF:

- The glTF cannot contain morph targets, skins, or animations.
- The glTF cannot contain the `EXT_mesh_gpu_instancing` extension.
- Only meshes with TRIANGLES can be used to classify other assets.
- The meshes must be watertight.
- The `POSITION` semantic is required.
- If `_BATCHID`s and an index buffer are both present, all indices with the same batch id must occupy contiguous sections of the index buffer.
- If `_BATCHID`s are present with no index buffer, all positions with the same batch id must occupy contiguous sections of the position buffer.

Additionally, classification is not supported for points or instanced 3D models.

The 3D Tiles or terrain receiving the classification must be opaque.

Default Value: `undefined`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### clippingPlanes : ClippingPlaneCollection
engine/Source/Scene/Cesium3DTileset.js 1134

The `ClippingPlaneCollection` used to selectively disable rendering the tileset.

#### clippingPolygons : ClippingPolygonCollection
engine/Source/Scene/Cesium3DTileset.js 1150

The `ClippingPolygonCollection` used to selectively disable rendering the tileset.

#### colorBlendAmount : number
engine/Source/Scene/Cesium3DTileset.js 568

Defines the value used to linearly interpolate between the source color and feature color when the `Cesium3DTileset#colorBlendMode` is `MIX`. A value of 0.0 results in the source color while a value of 1.0 results in the feature color, with any value in-between resulting in a mix of the source color and feature color.

Default Value: `0.5`

#### colorBlendMode : Cesium3DTileColorBlendMode
engine/Source/Scene/Cesium3DTileset.js 558

Defines how per-feature colors set from the Cesium API or declarative styling blend with the source colors from the original feature, e.g. glTF material or per-point color in the tile.

Default Value: `Cesium3DTileColorBlendMode.HIGHLIGHT`

#### cullRequestsWhileMoving : boolean
engine/Source/Scene/Cesium3DTileset.js 303

Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement. This optimization only applies to stationary tilesets.

Default Value: `true`

#### cullRequestsWhileMovingMultiplier : number
engine/Source/Scene/Cesium3DTileset.js 312

Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.

Default Value: `60.0`

#### customShader : CustomShader|undefined
engine/Source/Scene/Cesium3DTileset.js 1366

A custom shader to apply to all tiles in the tileset. Only used for contents that use `Model`. Using custom shaders with a `Cesium3DTileStyle` may lead to undefined behavior.

Default Value: `undefined`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### debugColorizeTiles : boolean
engine/Source/Scene/Cesium3DTileset.js 937

This property is for debugging only; it is not optimized for production use.

When true, assigns a random color to each tile. This is useful for visualizing what features belong to what tiles, especially with additive refinement where features from parent tiles may be interleaved with features from child tiles.

Default Value: `false`

#### debugFreezeFrame : boolean
engine/Source/Scene/Cesium3DTileset.js 924

This property is for debugging only; it is not optimized for production use.

Determines if only the tiles from last frame should be used for rendering. This effectively "freezes" the tileset to the previous frame so it is possible to zoom out and see what was rendered.

Default Value: `false`

#### debugShowBoundingVolume : boolean
engine/Source/Scene/Cesium3DTileset.js 971

This property is for debugging only; it is not optimized for production use.

When true, renders the bounding volume for each visible tile. The bounding volume is white if the tile has a content bounding volume or is empty; otherwise, it is red. Tiles that don't meet the screen space error and are still refining to their descendants are yellow.

Default Value: `false`

#### debugShowContentBoundingVolume : boolean
engine/Source/Scene/Cesium3DTileset.js 983

This property is for debugging only; it is not optimized for production use.

When true, renders the bounding volume for each visible tile's content. The bounding volume is blue if the tile has a content bounding volume; otherwise it is red.

Default Value: `false`

#### debugShowGeometricError : boolean
engine/Source/Scene/Cesium3DTileset.js 1016

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the geometric error of each tile.

Default Value: `false`

#### debugShowMemoryUsage : boolean
engine/Source/Scene/Cesium3DTileset.js 1039

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the geometry and texture memory usage of each tile.

Default Value: `false`

#### debugShowRenderingStatistics : boolean
engine/Source/Scene/Cesium3DTileset.js 1027

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the number of commands, points, triangles and features of each tile.

Default Value: `false`

#### debugShowUrl : boolean
engine/Source/Scene/Cesium3DTileset.js 1050

This property is for debugging only; it is not optimized for production use.

When true, draws labels to indicate the url of each tile.

Default Value: `false`

#### debugShowViewerRequestVolume : boolean
engine/Source/Scene/Cesium3DTileset.js 995

This property is for debugging only; it is not optimized for production use.

When true, renders the viewer request volume for each tile.

Default Value: `false`

#### debugWireframe : boolean
engine/Source/Scene/Cesium3DTileset.js 950

This property is for debugging only; it is not optimized for production use.

When true, renders each tile's content as a wireframe.

Default Value: `false`

#### dynamicScreenSpaceError : boolean
engine/Source/Scene/Cesium3DTileset.js 436

Optimization option. For street-level horizon views, use lower resolution tiles far from the camera. This reduces the amount of data loaded and improves tileset loading time with a slight drop in visual quality in the distance.

This optimization is strongest when the camera is close to the ground plane of the tileset and looking at the horizon. Furthermore, the results are more accurate for tightly fitting bounding volumes like box and region.

Default Value: `true`

#### dynamicScreenSpaceErrorDensity : number
engine/Source/Scene/Cesium3DTileset.js 492

Similar to `Fog#density`, this option controls the camera distance at which the `Cesium3DTileset#dynamicScreenSpaceError` optimization applies. Larger values will cause tiles closer to the camera to be affected. This value must be non-negative.

This optimization works by rolling off the tile screen space error (SSE) with camera distance like a bell curve. This has the effect of selecting lower resolution tiles far from the camera. Near the camera, no adjustment is made. For tiles further away, the SSE is reduced by up to `Cesium3DTileset#dynamicScreenSpaceErrorFactor` (measured in pixels of error).

Increasing the density makes the bell curve narrower so tiles closer to the camera are affected. This is analagous to moving fog closer to the camera.

When the density is 0, the optimization will have no effect on the tileset.

Default Value: `2.0e-4`

#### dynamicScreenSpaceErrorFactor : number
engine/Source/Scene/Cesium3DTileset.js 511

A parameter that controls the intensity of the `Cesium3DTileset#dynamicScreenSpaceError` optimization for tiles on the horizon. Larger values cause lower resolution tiles to load, improving runtime performance at a slight reduction of visual quality. The value must be non-negative.

More specifically, this parameter represents the maximum adjustment to screen space error (SSE) in pixels for tiles far away from the camera. See `Cesium3DTileset#dynamicScreenSpaceErrorDensity` for more details about how this optimization works.

When the SSE factor is set to 0, the optimization will have no effect on the tileset.

Default Value: `24.0`

#### dynamicScreenSpaceErrorHeightFalloff : number
engine/Source/Scene/Cesium3DTileset.js 523

A ratio of the tileset's height that determines "street level" for the `Cesium3DTileset#dynamicScreenSpaceError` optimization. When the camera is below this height, the dynamic screen space error optimization will have the maximum effect, and it will roll off above this value. Valid values are between 0.0 and 1.0.

Default Value: `0.25`

#### readonly ellipsoid : Ellipsoid
engine/Source/Scene/Cesium3DTileset.js 1859

Gets an ellipsoid describing the shape of the globe.

#### enableCollision : boolean
engine/Source/Scene/Cesium3DTileset.js 909

If `true`, allows collisions for camera collisions or picking. While this is `true` the camera will be prevented from going in or below the tileset surface if `ScreenSpaceCameraController#enableCollisionDetection` is true. This can have performance implecations if the tileset contains tile with a larger number of vertices.

Default Value: `false`

#### readonly environmentMapManager : DynamicEnvironmentMapManager
engine/Source/Scene/Cesium3DTileset.js 1978

The properties for managing dynamic environment maps on this model. Affects lighting.

##### 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
engine/Source/Scene/Cesium3DTileset.js 1059

Function for examining vector lines as they are being streamed.

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### readonly extensions : object
engine/Source/Scene/Cesium3DTileset.js 1121

Gets the tileset's extensions object property.

#### readonly extras : *
engine/Source/Scene/Cesium3DTileset.js 1931

Returns the `extras` property at the top-level of the tileset JSON, which contains application specific metadata. Returns `undefined` if `extras` does not exist.

##### See:

- Extras in the 3D Tiles specification.

#### featureIdLabel : string
engine/Source/Scene/Cesium3DTileset.js 2057

Label of the feature ID set to use for picking and styling.

For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures.

If featureIdLabel is set to an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### foveatedConeSize : number
engine/Source/Scene/Cesium3DTileset.js 1875

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and `Cesium3DTileset#foveatedInterpolationCallback` and `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation`. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, essentially disabling the effect.

Default Value: `0.3`

#### foveatedInterpolationCallback : Cesium3DTileset.foveatedInterpolationCallback
engine/Source/Scene/Cesium3DTileset.js 457

Gets or sets a callback to control how much to raise the screen space error for tiles outside the foveated cone, interpolating between `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation` and `Cesium3DTileset#maximumScreenSpaceError`.

#### foveatedMinimumScreenSpaceErrorRelaxation : number
engine/Source/Scene/Cesium3DTileset.js 1898

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the starting screen space error relaxation for tiles outside the foveated cone. The screen space error will be raised starting with this value up to `Cesium3DTileset#maximumScreenSpaceError` based on the provided `Cesium3DTileset#foveatedInterpolationCallback`.

Default Value: `0.0`

#### foveatedScreenSpaceError : boolean
engine/Source/Scene/Cesium3DTileset.js 446

Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the `Cesium3DTileset#foveatedConeSize` are loaded.

Default Value: `true`

#### foveatedTimeDelay : number
engine/Source/Scene/Cesium3DTileset.js 469

Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in. This time delay prevents requesting tiles around the edges of the screen when the camera is moving. Setting this to 0.0 will immediately request all tiles in any given view.

Default Value: `0.2`

#### readonly heightReference : HeightReference|undefined
engine/Source/Scene/Cesium3DTileset.js 1829

Specifies if the height is relative to terrain, 3D Tiles, or both.

This option is only applied to point features in tilesets containing vector data. This option requires the Viewer's scene to be passed in through options.scene.

Default Value: `undefined`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### imageBasedLighting : ImageBasedLighting
engine/Source/Scene/Cesium3DTileset.js 1944

The properties for managing image-based lighting on this tileset.

#### readonly imageryLayers : ImageryLayerCollection
engine/Source/Scene/Cesium3DTileset.js 1181

The collection of `ImageryLayer` objects providing 2D georeferenced image data that will be rendered over the tileset. The imagery will be draped over glTF, B3DM, PNTS, or GeoJSON tile content.

##### Example:

    // Drape Bing Maps Aerial imagery over the tileset
    const imageryProvider = await Cesium.createWorldImageryAsync({
      style: Cesium.IonWorldImageryStyle.AERIAL,
    });
    const imageryLayer = new ImageryLayer(imageryProvider);
    tileset.imageryLayers.add(imageryLayer);

##### Experimental

This feature is not final and is subject to change without Cesium's standard deprecation policy.

##### See:

- ImageryLayer

#### immediatelyLoadDesiredLevelOfDetail : boolean
engine/Source/Scene/Cesium3DTileset.js 808

When true, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.

Only used when `Cesium3DTileset#skipLevelOfDetail` is `true`.

Default Value: `false`

#### initialTilesLoaded : Event
engine/Source/Scene/Cesium3DTileset.js 636

The event fired to indicate that all tiles that meet the screen space error this frame are loaded. This event is fired once when all tiles in the initial view are loaded.

This event is fired at the end of the frame after the scene is rendered.

Default Value: `new Event()`

##### Example:

    tileset.initialTilesLoaded.addEventListener(function() {
        console.log('Initial tiles are loaded');
    });

##### See:

- Cesium3DTileset#allTilesLoaded

#### instanceFeatureIdLabel : string
engine/Source/Scene/Cesium3DTileset.js 2089

Label of the instance feature ID set used for picking and styling.

If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### lightColor : Cartesian3
engine/Source/Scene/Cesium3DTileset.js 864

The light color when shading models. When `undefined` the scene's light color is used instead.

For example, disabling additional light sources by setting `tileset.imageBasedLighting.imageBasedLightingFactor = new Cartesian2(0.0, 0.0)` will make the tileset much darker. Here, increasing the intensity of the light source will make the tileset brighter.

Default Value: `undefined`

#### loadProgress : Event
engine/Source/Scene/Cesium3DTileset.js 598

The event fired to indicate progress of loading new tiles. This event is fired when a new tile is requested, when a requested tile is finished downloading, and when a downloaded tile has been processed and is ready to render.

The number of pending tile requests, `numberOfPendingRequests`, and number of tiles processing, `numberOfTilesProcessing` are passed to the event listener.

This event is fired at the end of the frame after the scene is rendered.

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}`);
    });

#### loadSiblings : boolean
engine/Source/Scene/Cesium3DTileset.js 821

Determines whether siblings of visible tiles are always downloaded during traversal. This may be useful for ensuring that tiles are already available when the viewer turns left/right.

Only used when `Cesium3DTileset#skipLevelOfDetail` is `true`.

Default Value: `false`

#### maximumCacheOverflowBytes : number
engine/Source/Scene/Cesium3DTileset.js 1579

The maximum additional amount of GPU memory (in bytes) that will be used to cache tiles.

If tiles sized more than `cacheBytes` plus `maximumCacheOverflowBytes` are needed to meet the desired screen space error, determined by `Cesium3DTileset#maximumScreenSpaceError` for the current view, then `Cesium3DTileset#memoryAdjustedScreenSpaceError` will be adjusted until the tiles required to meet the adjusted screen space error use less than `cacheBytes` plus `maximumCacheOverflowBytes`.

Default Value: `536870912`

##### See:

- Cesium3DTileset#totalMemoryUsageInBytes

#### maximumScreenSpaceError : number
engine/Source/Scene/Cesium3DTileset.js 1500

The maximum screen space error used to drive level of detail refinement. This value helps determine when a tile refines to its descendants, and therefore plays a major role in balancing performance with visual quality.

A tile's screen space error is roughly equivalent to the number of pixels wide that would be drawn if a sphere with a radius equal to the tile's geometric error were rendered at the tile's position. If this value exceeds `maximumScreenSpaceError` the tile refines to its descendants.

Depending on the tileset, `maximumScreenSpaceError` may need to be tweaked to achieve the right balance. Higher values provide better performance but lower visual quality.

Default Value: `16`

#### modelMatrix : Matrix4
engine/Source/Scene/Cesium3DTileset.js 1686

A 4x4 transformation matrix that transforms the entire tileset.

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);

#### outlineColor : Color
engine/Source/Scene/Cesium3DTileset.js 893

The color to use when rendering outlines.

Default Value: `Color.BLACK`

#### pointCloudShading : PointCloudShading
engine/Source/Scene/Cesium3DTileset.js 1619

Options for controlling point size based on geometric error and eye dome lighting.

#### preferLeaves : boolean
engine/Source/Scene/Cesium3DTileset.js 333

Optimization option. Prefer loading of leaves first.

Default Value: `false`

#### preloadFlightDestinations : boolean
engine/Source/Scene/Cesium3DTileset.js 423

Optimization option. Fetch tiles at the camera's flight destination while the camera is in flight.

Default Value: `true`

#### preloadWhenHidden : boolean
engine/Source/Scene/Cesium3DTileset.js 415

Preload tiles when `tileset.show` is `false`. Loads tiles as if the tileset is visible but does not render them.

Default Value: `false`

#### progressiveResolutionHeightFraction : number
engine/Source/Scene/Cesium3DTileset.js 321

Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of `progressiveResolutionHeightFraction*screenHeight` will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.

Default Value: `0.3`

#### readonly properties : object
engine/Source/Scene/Cesium3DTileset.js 1241

Gets the tileset's properties dictionary object, which contains metadata about per-feature properties.

See the properties schema reference in the 3D Tiles spec for the full set of properties.

##### Example:

    console.log(`Maximum building height: ${tileset.properties.height.maximum}`);
    console.log(`Minimum building height: ${tileset.properties.height.minimum}`);

##### See:

- Cesium3DTileFeature#getProperty
- Cesium3DTileFeature#setProperty

#### readonly resource : Resource
engine/Source/Scene/Cesium3DTileset.js 1274

The resource used to fetch the tileset JSON file

#### readonly root : Cesium3DTile
engine/Source/Scene/Cesium3DTileset.js 1639

The root tile.

#### shadows : ShadowMode
engine/Source/Scene/Cesium3DTileset.js 541

Determines whether the tileset casts or receives shadows from light sources.

Enabling shadows has a performance impact. A tileset that casts shadows must be rendered twice, once from the camera and again from the light's point of view.

Shadows are rendered only when `Viewer#shadows` is `true`.

Default Value: `ShadowMode.ENABLED`

#### show : boolean
engine/Source/Scene/Cesium3DTileset.js 549

Determines if the tileset will be shown.

Default Value: `true`

#### showCreditsOnScreen : boolean
engine/Source/Scene/Cesium3DTileset.js 2025

Determines whether the credits of the tileset will be displayed on the screen

Default Value: `false`

#### showOutline : boolean
engine/Source/Scene/Cesium3DTileset.js 885

Whether to display the outline for models using the CESIUM_primitive_outline extension. When true, outlines are displayed. When false, outlines are not displayed.

Default Value: `true`

#### skipLevelOfDetail : boolean
engine/Source/Scene/Cesium3DTileset.js 758

Optimization option. Determines if level of detail skipping should be applied during the traversal.

The common strategy for replacement-refinement traversal is to store all levels of the tree in memory and require all children to be loaded before the parent can refine. With this optimization levels of the tree can be skipped entirely and children can be rendered alongside their parents. The tileset requires significantly less memory when using this optimization.

Default Value: `false`

#### skipLevels : number
engine/Source/Scene/Cesium3DTileset.js 796

Constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. For example, if a tile is level 1, no tiles will be loaded unless they are at level greater than 2.

Only used when `Cesium3DTileset#skipLevelOfDetail` is `true`.

Default Value: `1`

#### skipScreenSpaceErrorFactor : number
engine/Source/Scene/Cesium3DTileset.js 784

Multiplier defining the minimum screen space error to skip. For example, if a tile has screen space error of 100, no tiles will be loaded unless they are leaves or have a screen space error `<= 100 / skipScreenSpaceErrorFactor`.

Only used when `Cesium3DTileset#skipLevelOfDetail` is `true`.

Default Value: `16`

#### splitDirection : SplitDirection
engine/Source/Scene/Cesium3DTileset.js 901

The `SplitDirection` to apply to this tileset.

Default Value: ``SplitDirection.NONE``

#### style : Cesium3DTileStyle|undefined
engine/Source/Scene/Cesium3DTileset.js 1344

The style, defined using the 3D Tiles Styling language, applied to each feature in the tileset.

Assign `undefined` to remove the style, which will restore the visual appearance of the tileset to its default when no style was applied.

The style is applied to a tile before the `Cesium3DTileset#tileVisible` event is raised, so code in `tileVisible` can manually set a feature's properties (e.g. color and show) after the style is applied. When a new style is assigned any manually set properties are overwritten.

Use an always "true" condition to specify the Color for all objects that are not overridden by pre-existing conditions. Otherwise, the default color Cesium.Color.White will be used. Similarly, use an always "true" condition to specify the show property for all objects that are not overridden by pre-existing conditions. Otherwise, the default show value true will be used.

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:

- 3D Tiles Styling language

#### tileFailed : Event
engine/Source/Scene/Cesium3DTileset.js 707

The event fired to indicate that a tile's content failed to load.

If there are no event listeners, error messages will be logged to the console.

The error object passed to the listener contains two properties:

- `url`: the url of the failed tile.
- `message`: the error message.

If multiple contents are present, this event is raised once per inner content with errors.

Default Value: `new Event()`

##### Example:

    tileset.tileFailed.addEventListener(function(error) {
        console.log(`An error occurred loading tile: ${error.url}`);
        console.log(`Error: ${error.message}`);
    });

#### tileLoad : Event
engine/Source/Scene/Cesium3DTileset.js 657

The event fired to indicate that a tile's content was loaded.

The loaded `Cesium3DTile` is passed to the event listener.

This event is fired during the tileset traversal while the frame is being rendered so that updates to the tile take effect in the same frame. Do not create or modify Cesium entities or primitives during the event listener.

Default Value: `new Event()`

##### Example:

    tileset.tileLoad.addEventListener(function(tile) {
        console.log('A tile was loaded.');
    });

#### readonly tilesLoaded : boolean
engine/Source/Scene/Cesium3DTileset.js 1260

When `true`, all tiles that meet the screen space error this frame are loaded. The tileset is completely loaded for this view.

Default Value: `false`

##### See:

- Cesium3DTileset#allTilesLoaded

#### tileUnload : Event
engine/Source/Scene/Cesium3DTileset.js 681

The event fired to indicate that a tile's content was unloaded.

The unloaded `Cesium3DTile` is passed to the event listener.

This event is fired immediately before the tile's content is unloaded while the frame is being rendered so that the event listener has access to the tile's content. Do not create or modify Cesium entities or primitives during the event listener.

Default Value: `new Event()`

##### Example:

    tileset.tileUnload.addEventListener(function(tile) {
        console.log('A tile was unloaded from the cache.');
    });

##### See:

- Cesium3DTileset#cacheBytes
- Cesium3DTileset#trimLoadedTiles

#### tileVisible : Event
engine/Source/Scene/Cesium3DTileset.js 744

This event fires once for each visible tile in a frame. This can be used to manually style a tileset.

The visible `Cesium3DTile` is passed to the event listener.

This event is fired during the tileset traversal while the frame is being rendered so that updates to the tile take effect in the same frame. Do not create or modify Cesium entities or primitives during the event listener.

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
engine/Source/Scene/Cesium3DTileset.js 1703

Returns the time, in milliseconds, since the tileset was loaded and first updated.

#### readonly totalMemoryUsageInBytes : number
engine/Source/Scene/Cesium3DTileset.js 1720

The total amount of GPU memory in bytes used by the tileset. This value is estimated from geometry, texture, batch table textures, and binary metadata of loaded tiles.

##### See:

- Cesium3DTileset#cacheBytes

#### vectorClassificationOnly : boolean
engine/Source/Scene/Cesium3DTileset.js 1994

Indicates that only the tileset's vector tiles should be used for classification.

Default Value: `false`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

#### vectorKeepDecodedPositions : boolean
engine/Source/Scene/Cesium3DTileset.js 2011

Whether vector tiles should keep decoded positions in memory. This is used with `Cesium3DTileFeature.getPolylinePositions`.

Default Value: `false`

##### Experimental

This feature is using part of the 3D Tiles spec that is not final and is subject to change without Cesium's standard deprecation policy.

### Methods

#### static Cesium.Cesium3DTileset.fromIonAssetId(assetId, options) → Promise.<Cesium3DTileset>
engine/Source/Scene/Cesium3DTileset.js 2130

Creates a 3D Tiles tileset, used for streaming massive heterogeneous 3D geospatial datasets, from a Cesium ion asset ID.

Name | Type | Description
--- | --- | ---
`assetId` | number | The Cesium ion asset id.
`options` | Cesium3DTileset.ConstructorOptions | optional An object describing initialization options

##### Returns:

##### Throws:

- RuntimeError : When the tileset asset version is not 0.0, 1.0, or 1.1, or when the tileset contains a required extension that is not supported.

##### 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>
engine/Source/Scene/Cesium3DTileset.js 2187

Creates a 3D Tiles tileset, used for streaming massive heterogeneous 3D geospatial datasets.

Name | Type | Description
--- | --- | ---
`url` | Resource | string | The url to a tileset JSON file.
`options` | Cesium3DTileset.ConstructorOptions | optional An object describing initialization options

##### Returns:

##### Throws:

- RuntimeError : When the tileset asset version is not 0.0, 1.0, or 1.1, or when the tileset contains a required extension that is not supported.

##### 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>
engine/Source/Scene/Cesium3DTileset.js 2273

Provides a hook to override the method used to request the tileset json useful when fetching tilesets from remote servers

Name | Type | Description
--- | --- | ---
`tilesetUrl` | Resource | string | The url of the json file to be fetched

##### Returns:

A promise that resolves with the fetched json data

#### destroy()
engine/Source/Scene/Cesium3DTileset.js 3612

Destroys the WebGL resources held by this object. Destroying an object allows for deterministic release of WebGL resources, instead of relying on the garbage collector to destroy this object.
Once an object is destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception. Therefore, assign the return value (`undefined`) to the object as done in the example.

##### Throws:

- DeveloperError : This object was destroyed, i.e., destroy() was called.

##### Example:

    tileset = tileset && tileset.destroy();

##### See:

- Cesium3DTileset#isDestroyed

#### getHeight(cartographic, scene) → number|undefined
engine/Source/Scene/Cesium3DTileset.js 3715

Get the height of the loaded surface at a given cartographic. This function will only take into account meshes for loaded tiles, not neccisarily the most detailed tiles available for a tileset. This function will always return undefined when sampling a point cloud.

Name | Type | Description
--- | --- | ---
`cartographic` | Cartographic | The cartographic for which to find the height.
`scene` | Scene | The scene where visualization is taking place.

##### Returns:

The height of the cartographic or undefined if it could not be found.

##### Example:

    const tileset = await Cesium.Cesium3DTileset.fromIonAssetId(124624234);
    scene.primitives.add(tileset);

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

#### hasExtension(extensionName) → boolean
engine/Source/Scene/Cesium3DTileset.js 3575

`true` if the tileset JSON file lists the extension in extensionsUsed; otherwise, `false`.

Name | Type | Description
--- | --- | ---
`extensionName` | string | The name of the extension to check.

##### Returns:

`true` if the tileset JSON file lists the extension in extensionsUsed; otherwise, `false`.

#### isDestroyed() → boolean
engine/Source/Scene/Cesium3DTileset.js 3593

Returns true if this object was destroyed; otherwise, false.
If this object was destroyed, it should not be used; calling any function other than `isDestroyed` will result in a `DeveloperError` exception.

##### Returns:

`true` if this object was destroyed; otherwise, `false`.

##### See:

- Cesium3DTileset#destroy

#### makeStyleDirty()
engine/Source/Scene/Cesium3DTileset.js 2282

Marks the tileset's `Cesium3DTileset#style` as dirty, which forces all features to re-evaluate the style in the next frame each is visible.

#### trimLoadedTiles()
engine/Source/Scene/Cesium3DTileset.js 3270

Unloads all tiles that weren't selected the previous frame. This can be used to explicitly manage the tile cache and reduce the total number of tiles loaded below `Cesium3DTileset#cacheBytes`.

Tile unloads occur at the next frame to keep all the WebGL delete calls within the render loop.

### Type Definitions

#### Cesium.Cesium3DTileset.ConstructorOptions
engine/Source/Scene/Cesium3DTileset.js 67

Initialization options for the Cesium3DTileset constructor

##### Properties:

Name | Type | Attributes | Default | Description
--- | --- | --- | --- | ---
`show` | boolean | <optional> | true | Determines if the tileset will be shown.
`modelMatrix` | Matrix4 | <optional> | Matrix4.IDENTITY | A 4x4 transformation matrix that transforms the tileset's root tile.
`modelUpAxis` | Axis | <optional> | Axis.Y | Which axis is considered up when loading models for tile contents.
`modelForwardAxis` | Axis | <optional> | Axis.X | Which axis is considered forward when loading models for tile contents.
`shadows` | ShadowMode | <optional> | ShadowMode.ENABLED | Determines whether the tileset casts or receives shadows from light sources.
`maximumScreenSpaceError` | number | <optional> | 16 | The maximum screen space error used to drive level of detail refinement.
`cacheBytes` | number | <optional> | 536870912 | The size (in bytes) to which the tile cache will be trimmed, if the cache contains tiles not needed for the current view.
`maximumCacheOverflowBytes` | number | <optional> | 536870912 | The maximum additional memory (in bytes) to allow for cache headroom, if more than `Cesium3DTileset#cacheBytes` are needed for the current view.
`cullWithChildrenBounds` | boolean | <optional> | true | Optimization option. Whether to cull tiles using the union of their children bounding volumes.
`cullRequestsWhileMoving` | boolean | <optional> | true | Optimization option. Don't request tiles that will likely be unused when they come back because of the camera's movement. This optimization only applies to stationary tilesets.
`cullRequestsWhileMovingMultiplier` | number | <optional> | 60.0 | Optimization option. Multiplier used in culling requests while moving. Larger is more aggressive culling, smaller less aggressive culling.
`preloadWhenHidden` | boolean | <optional> | false | Preload tiles when `tileset.show` is `false`. Loads tiles as if the tileset is visible but does not render them.
`preloadFlightDestinations` | boolean | <optional> | true | Optimization option. Preload tiles at the camera's flight destination while the camera is in flight.
`preferLeaves` | boolean | <optional> | false | Optimization option. Prefer loading of leaves first.
`dynamicScreenSpaceError` | boolean | <optional> | true | Optimization option. For street-level horizon views, use lower resolution tiles far from the camera. This reduces the amount of data loaded and improves tileset loading time with a slight drop in visual quality in the distance.
`dynamicScreenSpaceErrorDensity` | number | <optional> | 2.0e-4 | Similar to `Fog#density`, this option controls the camera distance at which the `Cesium3DTileset#dynamicScreenSpaceError` optimization applies. Larger values will cause tiles closer to the camera to be affected.
`dynamicScreenSpaceErrorFactor` | number | <optional> | 24.0 | A parameter that controls the intensity of the `Cesium3DTileset#dynamicScreenSpaceError` optimization for tiles on the horizon. Larger values cause lower resolution tiles to load, improving runtime performance at a slight reduction of visual quality.
`dynamicScreenSpaceErrorHeightFalloff` | number | <optional> | 0.25 | A ratio of the tileset's height that determines where "street level" camera views occur. When the camera is below this height, the `Cesium3DTileset#dynamicScreenSpaceError` optimization will have the maximum effect, and it will roll off above this value.
`progressiveResolutionHeightFraction` | number | <optional> | 0.3 | Optimization option. If between (0.0, 0.5], tiles at or above the screen space error for the reduced screen resolution of `progressiveResolutionHeightFraction*screenHeight` will be prioritized first. This can help get a quick layer of tiles down while full resolution tiles continue to load.
`foveatedScreenSpaceError` | boolean | <optional> | true | Optimization option. Prioritize loading tiles in the center of the screen by temporarily raising the screen space error for tiles around the edge of the screen. Screen space error returns to normal once all the tiles in the center of the screen as determined by the `Cesium3DTileset#foveatedConeSize` are loaded.
`foveatedConeSize` | number | <optional> | 0.1 | Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the cone size that determines which tiles are deferred. Tiles that are inside this cone are loaded immediately. Tiles outside the cone are potentially deferred based on how far outside the cone they are and their screen space error. This is controlled by `Cesium3DTileset#foveatedInterpolationCallback` and `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation`. Setting this to 0.0 means the cone will be the line formed by the camera position and its view direction. Setting this to 1.0 means the cone encompasses the entire field of view of the camera, disabling the effect.
`foveatedMinimumScreenSpaceErrorRelaxation` | number | <optional> | 0.0 | Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control the starting screen space error relaxation for tiles outside the foveated cone. The screen space error will be raised starting with tileset value up to `Cesium3DTileset#maximumScreenSpaceError` based on the provided `Cesium3DTileset#foveatedInterpolationCallback`.
`foveatedInterpolationCallback` | Cesium3DTileset.foveatedInterpolationCallback | <optional> | Math.lerp | Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how much to raise the screen space error for tiles outside the foveated cone, interpolating between `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation` and `Cesium3DTileset#maximumScreenSpaceError`
`foveatedTimeDelay` | number | <optional> | 0.2 | Optimization option. Used when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how long in seconds to wait after the camera stops moving before deferred tiles start loading in. This time delay prevents requesting tiles around the edges of the screen when the camera is moving. Setting this to 0.0 will immediately request all tiles in any given view.
`skipLevelOfDetail` | boolean | <optional> | false | Optimization option. Determines if level of detail skipping should be applied during the traversal.
`baseScreenSpaceError` | number | <optional> | 1024 | When `skipLevelOfDetail` is `true`, the screen space error that must be reached before skipping levels of detail.
`skipScreenSpaceErrorFactor` | number | <optional> | 16 | When `skipLevelOfDetail` is `true`, a multiplier defining the minimum screen space error to skip. Used in conjunction with `skipLevels` to determine which tiles to load.
`skipLevels` | number | <optional> | 1 | When `skipLevelOfDetail` is `true`, a constant defining the minimum number of levels to skip when loading tiles. When it is 0, no levels are skipped. Used in conjunction with `skipScreenSpaceErrorFactor` to determine which tiles to load.
`immediatelyLoadDesiredLevelOfDetail` | boolean | <optional> | false | When `skipLevelOfDetail` is `true`, only tiles that meet the maximum screen space error will ever be downloaded. Skipping factors are ignored and just the desired tiles are loaded.
`loadSiblings` | boolean | <optional> | false | When `skipLevelOfDetail` is `true`, determines whether siblings of visible tiles are always downloaded during traversal.
`clippingPlanes` | ClippingPlaneCollection | <optional> |  | The `ClippingPlaneCollection` used to selectively disable rendering the tileset.
`clippingPolygons` | ClippingPolygonCollection | <optional> |  | The `ClippingPolygonCollection` used to selectively disable rendering the tileset.
`classificationType` | ClassificationType | <optional> |  | Determines whether terrain, 3D Tiles or both will be classified by this tileset. See `Cesium3DTileset#classificationType` for details about restrictions and limitations.
`heightReference` | HeightReference | <optional> |  | Sets the `HeightReference` for point features in vector tilesets.
`scene` | Scene | <optional> |  | The `CesiumWidget#scene` that the tileset will be rendered in, required for tilesets that specify a `heightReference` value for clamping 3D Tiles vector data content- like points, lines, and labels- to terrain or 3D tiles.
`ellipsoid` | Ellipsoid | <optional> | Ellipsoid.WGS84 | The ellipsoid determining the size and shape of the globe.
`pointCloudShading` | object | <optional> |  | Options for constructing a `PointCloudShading` object to control point attenuation based on geometric error and lighting.
`lightColor` | Cartesian3 | <optional> |  | The light color when shading models. When `undefined` the scene's light color is used instead.
`imageBasedLighting` | ImageBasedLighting | <optional> |  | The properties for managing image-based lighting for this tileset.
`environmentMapOptions` | DynamicEnvironmentMapManager.ConstructorOptions | <optional> |  | The properties for managing dynamic environment maps on this tileset.
`backFaceCulling` | boolean | <optional> | true | Whether to cull back-facing geometry. When true, back face culling is determined by the glTF material's doubleSided property; when false, back face culling is disabled.
`enableShowOutline` | boolean | <optional> | true | Whether to enable outlines for models using the CESIUM_primitive_outline extension. This can be set to false to avoid the additional processing of geometry at load time. When false, the showOutlines and outlineColor options are ignored.
`showOutline` | boolean | <optional> | true | Whether to display the outline for models using the CESIUM_primitive_outline extension. When true, outlines are displayed. When false, outlines are not displayed.
`outlineColor` | Color | <optional> | Color.BLACK | The color to use when rendering outlines.
`vectorClassificationOnly` | boolean | <optional> | false | Indicates that only the tileset's vector tiles should be used for classification.
`vectorKeepDecodedPositions` | boolean | <optional> | false | Whether vector tiles should keep decoded positions in memory. This is used with `Cesium3DTileFeature.getPolylinePositions`.
`featureIdLabel` | string | number | <optional> | "featureId_0" | Label of the feature ID set to use for picking and styling. For EXT_mesh_features, this is the feature ID's label property, or "featureId_N" (where N is the index in the featureIds array) when not specified. EXT_feature_metadata did not have a label field, so such feature ID sets are always labeled "featureId_N" where N is the index in the list of all feature Ids, where feature ID attributes are listed before feature ID textures. If featureIdLabel is an integer N, it is converted to the string "featureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
`instanceFeatureIdLabel` | string | number | <optional> | "instanceFeatureId_0" | Label of the instance feature ID set used for picking and styling. If instanceFeatureIdLabel is set to an integer N, it is converted to the string "instanceFeatureId_N" automatically. If both per-primitive and per-instance feature IDs are present, the instance feature IDs take priority.
`showCreditsOnScreen` | boolean | <optional> | false | Whether to display the credits of this tileset on screen.
`splitDirection` | SplitDirection | <optional> | SplitDirection.NONE | The `SplitDirection` split to apply to this tileset.
`enableCollision` | boolean | <optional> | false | When `true`, enables collisions for camera or CPU picking. While this is `true` the camera will be prevented from going below the tileset surface if `ScreenSpaceCameraController#enableCollisionDetection` is true. This also affects the behavior of `HeightReference.CLAMP_TO_GROUND` when clamping to 3D Tiles surfaces. If `enableCollision` is `false`, entities may not be correctly clamped to the tileset geometry.
`projectTo2D` | boolean | <optional> | false | Whether to accurately project the tileset to 2D. If this is true, the tileset will be projected accurately to 2D, but it will use more memory to do so. If this is false, the tileset will use less memory and will still render in 2D / CV mode, but its projected positions may be inaccurate. This cannot be set after the tileset has been created.
`enablePick` | boolean | <optional> | false | Whether to allow collision and CPU picking with `pick` when using WebGL 1. If using WebGL 2 or above, this option will be ignored. If using WebGL 1 and this is true, the `pick` operation will work correctly, but it will use more memory to do so. If running with WebGL 1 and this is false, the model will use less memory, but `pick` will always return `undefined`. This cannot be set after the tileset has loaded.
`asynchronouslyLoadImagery` | boolean | <optional> | false | Whether loading imagery that is draped over the tileset should be done asynchronously. If this is `true`, then tile content will be displayed with its original texture until the imagery texture is loaded. If this is `false`, then the tile content will not be displayed until the imagery is ready.
`debugHeatmapTilePropertyName` | string | <optional> |  | The tile variable to colorize as a heatmap. All rendered tiles will be colorized relative to each other's specified variable value.
`debugFreezeFrame` | boolean | <optional> | false | For debugging only. Determines if only the tiles from last frame should be used for rendering.
`debugColorizeTiles` | boolean | <optional> | false | For debugging only. When true, assigns a random color to each tile.
`enableDebugWireframe` | boolean | <optional> | false | For debugging only. This must be true for debugWireframe to work in WebGL1. This cannot be set after the tileset has been created.
`debugWireframe` | boolean | <optional> | false | For debugging only. When true, render's each tile's content as a wireframe.
`debugShowBoundingVolume` | boolean | <optional> | false | For debugging only. When true, renders the bounding volume for each tile.
`debugShowContentBoundingVolume` | boolean | <optional> | false | For debugging only. When true, renders the bounding volume for each tile's content.
`debugShowViewerRequestVolume` | boolean | <optional> | false | For debugging only. When true, renders the viewer request volume for each tile.
`debugShowGeometricError` | boolean | <optional> | false | For debugging only. When true, draws labels to indicate the geometric error of each tile.
`debugShowRenderingStatistics` | boolean | <optional> | false | For debugging only. When true, draws labels to indicate the number of commands, points, triangles and features for each tile.
`debugShowMemoryUsage` | boolean | <optional> | false | For debugging only. When true, draws labels to indicate the texture and geometry memory in megabytes used by each tile.
`debugShowUrl` | boolean | <optional> | false | For debugging only. When true, draws labels to indicate the url of each tile.

#### Cesium.Cesium3DTileset.foveatedInterpolationCallback(p, q, time) → number
engine/Source/Scene/Cesium3DTileset.js 3920

Optimization option. Used as a callback when `Cesium3DTileset#foveatedScreenSpaceError` is true to control how much to raise the screen space error for tiles outside the foveated cone, interpolating between `Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation` and `Cesium3DTileset#maximumScreenSpaceError`.

Name | Type | Description
--- | --- | ---
`p` | number | The start value to interpolate.
`q` | number | The end value to interpolate.
`time` | number | The time of interpolation generally in the range `[0.0, 1.0]`.

##### Returns:

The interpolated value.

Default Value: `Math.lerp`

Need help? The fastest way to get answers is from the community and team on the Cesium Forum.