Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
具有以下属性的对象:
|
Throws:
-
DeveloperError :tileset 必须是 3D Tiles 版本 0.0 或 1.0。
Examples:
const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
}));
// Common setting for the skipLevelOfDetail optimization
const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
skipLevelOfDetail : true,
baseScreenSpaceError : 1024,
skipScreenSpaceErrorFactor : 16,
skipLevels : 1,
immediatelyLoadDesiredLevelOfDetail : false,
loadSiblings : false,
cullWithChildrenBounds : true
}));
// Common settings for the dynamicScreenSpaceError optimization
const tileset = scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
dynamicScreenSpaceError : true,
dynamicScreenSpaceErrorDensity : 0.00278,
dynamicScreenSpaceErrorFactor : 4.0,
dynamicScreenSpaceErrorHeightFalloff : 0.25
}));
See:
Members
allTilesLoaded : Event
渲染场景后,在帧结束时触发此事件。
-
Default Value:
new Event()
Example:
tileset.allTilesLoaded.addEventListener(function() {
console.log('All tiles are loaded');
});
See:
有关完整的属性集,请参阅 3D Tiles 规范中的 资产架构参考 。
-
Default Value:
true
Deprecated: true
仅在
Cesium3DTileset#skipLevelOfDetail
为
true
时使用。
-
Default Value:
1024
readonly boundingSphere : BoundingSphere
Example:
const tileset = viewer.scene.primitives.add(new Cesium.Cesium3DTileset({
url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
}));
tileset.readyPromise.then(function(tileset) {
// Set the camera to view the newly added tileset
viewer.camera.viewBoundingSphere(tileset.boundingSphere, new Cesium.HeadingPitchRange(0, -0.5, 0));
});
readonly classificationType : ClassificationType
此选项仅适用于包含批处理 3D 模型、几何数据或矢量数据的瓦片集。即使未定义,矢量数据和几何数据也必须作为分类渲染,并且默认在地形和其他 3D Tiles 瓦片集上渲染。
当为批处理 3D 模型图块集启用时,glTF 有一些要求/限制:
- POSITION 和 _BATCHID 语义是必需的。
- 具有相同批次 id 的所有索引必须占据索引缓冲区的连续部分。
- 所有着色器和技术都将被忽略。生成的着色器只是将位置乘以模型-视图-投影矩阵。
- 唯一支持的扩展是 CESIUM_RTC 和 WEB3D_quantized_attributes。
- 仅支持一个节点。
- 每个节点仅支持一个网格。
- 每个网格仅支持一个图元。
-
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
ClippingPlaneCollection
用于选择性地禁用渲染图块集。
Cesium3DTileset#colorBlendMode
为
MIX
时,定义用于在源颜色和特征颜色之间进行线性插值的值。值 0.0 会产生源颜色,而值 1.0 会产生特征颜色,中间的任何值都会产生源颜色和特征颜色的混合。
-
Default Value:
0.5
colorBlendMode : Cesium3DTileColorBlendMode
-
Default Value:
Cesium3DTileColorBlendMode.HIGHLIGHT
-
Default Value:
true
-
Default Value:
60.0
customShader : CustomShader |undefined
ModelExperimental
的内容。使用带有
Cesium3DTileStyle
的自定义着色器可能会导致未定义的行为。
要启用
ModelExperimental
,请将
ExperimentalFeatures.enableModelExperimental
或 tileset.enableModelExperimental 设置为
true
。
-
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.
如果为 true,则为每个图块分配随机颜色。这对于可视化哪些特征属于哪些图块很有用,尤其是在添加细化时,父图块的特征可能与子图块的特征交错。
-
Default Value:
false
确定是否应仅使用最后一帧的图块进行渲染。这有效地将瓦片集'冻结'到前一帧,因此可以缩小并查看渲染的内容。
-
Default Value:
false
如果为 true,则为每个可见图块渲染边界体积。如果图块具有内容边界体积或为空,则边界体积为白色;否则,它是红色的。不满足屏幕空间错误且仍在对其后代进行提炼的瓦片为黄色。
-
Default Value:
false
如果为 true,则为每个可见图块的内容渲染边界体积。如果图块具有内容边界体积,则边界体积为蓝色;否则它是红色的。
-
Default Value:
false
如果为 true,则绘制标签以指示每个图块的几何误差。
-
Default Value:
false
如果为 true,则绘制标签以指示每个图块的几何图形和纹理内存使用情况。
-
Default Value:
false
如果为 true,则绘制标签以指示每个图块的命令、点、三角形和特征的数量。
-
Default Value:
false
如果为 true,则绘制标签以指示每个图块的 url。
-
Default Value:
false
如果为 true,则呈现每个图块的查看器请求量。
-
Default Value:
false
如果为 true,则将每个图块的内容呈现为线框。
-
Default Value:
false
-
Default Value:
false
Fog
。增加此值会增加所有图块的最大屏幕空间误差,但以非线性方式。误差从 0.0 开始并呈指数增长,直到达到中点,然后逐渐接近 1.0。这具有在较近的瓦片中保持高细节和在较远的瓦片中保持较低细节的效果,超过一定距离的所有瓦片都大致具有1.0的误差。
动态误差在 [0.0, 1.0) 范围内,并乘以
dynamicScreenSpaceErrorFactor
以产生最终的动态误差。然后从图块的实际屏幕空间误差中减去该动态误差。
增加
dynamicScreenSpaceErrorDensity
具有将误差中点移近相机的效果。这类似于将雾移动到更靠近相机的位置。
-
Default Value:
0.00278
-
Default Value:
4.0
有效值介于 0.0 和 1.0 之间。
-
Default Value:
0.25
readonly ellipsoid : Ellipsoid
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.
extras
属性,其中包含特定于应用程序的元数据。如果
extras
不存在,则返回
undefined
。
对于 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
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.
Cesium3DTileset#foveatedScreenSpaceError
为真时使用,以控制决定延迟哪些图块的锥体大小。立即加载此圆锥内的瓷砖。圆锥外的瓷砖可能会根据它们在圆锥外的距离以及
Cesium3DTileset#foveatedInterpolationCallback
和
Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation
。将此设置为 0.0 意味着圆锥将是由相机位置及其视图方向形成的线。将此设置为 1.0 意味着锥体包含相机的整个视野,基本上禁用效果。
-
Default Value:
0.3
foveatedInterpolationCallback : Cesium3DTileset.foveatedInterpolationCallback
Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation
和
Cesium3DTileset#maximumScreenSpaceError
之间进行插值。
Cesium3DTileset#foveatedScreenSpaceError
为真时使用,以控制中心凹锥外的瓷砖的起始屏幕空间误差松弛。根据提供的
Cesium3DTileset#foveatedInterpolationCallback
,屏幕空间错误将从这个值开始上升到
Cesium3DTileset#maximumScreenSpaceError
。
-
Default Value:
0.0
Cesium3DTileset#foveatedConeSize
确定的屏幕中心的所有图块,屏幕空间错误就会恢复正常。
-
Default Value:
true
Cesium3DTileset#foveatedScreenSpaceError
为真时使用,以控制在相机停止移动后延迟瓦片开始加载之前等待的时间(以秒为单位)。此时间延迟可防止在相机移动时请求屏幕边缘周围的瓦片。将此设置为 0.0 将立即请求任何给定视图中的所有图块。
-
Default Value:
0.2
imageBasedLighting : ImageBasedLighting
仅在
Cesium3DTileset#skipLevelOfDetail
为
true
时使用。
-
Default Value:
false
initialTilesLoaded : Event
渲染场景后,在帧结束时触发此事件。
-
Default Value:
new Event()
Example:
tileset.initialTilesLoaded.addEventListener(function() {
console.log('Initial tiles are loaded');
});
See:
如果 instanceFeatureIdLabel 设置为整数 N,它会自动转换为字符串'instanceFeatureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。
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
undefined
时,将使用场景的浅色。
例如,通过设置
tileset.imageBasedLighting.imageBasedLightingFactor = new Cartesian2(0.0, 0.0)
禁用额外的光源将使图块集更暗。在这里,增加光源的强度将使图块集更亮。
-
Default Value:
undefined
loadProgress : Event
挂起的图块请求数
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#skipLevelOfDetail
为
true
时使用。
-
Default Value:
false
不在视图中的瓷砖被卸载以强制执行此操作。
如果减小此值导致卸载图块,则将在下一帧卸载图块。
如果需要大小超过
maximumMemoryUsage
的图块来满足所需的屏幕空间错误,由
Cesium3DTileset#maximumScreenSpaceError
确定,对于当前视图,则加载的图块的内存使用量将超过
maximumMemoryUsage
。例如,如果最大值为 256 MB,但需要 300 MB 的图块来满足屏幕空间错误,则可能会加载 300 MB 的图块。当这些瓷砖消失时,它们将被卸载。
-
Default Value:
512
See:
瓦片的屏幕空间误差大致等于如果在瓦片位置渲染半径等于瓦片
几何误差
的球体时将绘制的像素宽度。如果此值超过
maximumScreenSpaceError
,则图块将细化为其后代。
根据tileset,
maximumScreenSpaceError
可能需要调整以达到正确的平衡。较高的值可提供更好的性能,但会降低视觉质量。
-
Default Value:
16
modelMatrix : Matrix4
-
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);
pointCloudShading : PointCloudShading
-
Default Value:
false
-
Default Value:
true
tileset.show
为
false
时预加载图块。加载图块,就好像图块集可见但不渲染它们。
-
Default Value:
false
progressiveResolutionHeightFraction*screenHeight
。这有助于在继续加载全分辨率图块时快速降低图块层。
-
Default Value:
0.3
有关完整的属性集,请参阅 3D Tiles 规范中的 属性架构参考 。
Example:
console.log(`Maximum building height: ${tileset.properties.height.maximum}`);
console.log(`Minimum building height: ${tileset.properties.height.minimum}`);
See:
-
Default Value:
false
readonly readyPromise : Promise.< Cesium3DTileset >
这个承诺在图块集被渲染的第一帧之前的帧结束时解决。
Example:
tileset.readyPromise.then(function(tileset) {
// tile.properties is not defined until readyPromise resolves.
const properties = tileset.properties;
if (Cesium.defined(properties)) {
for (const name in properties) {
console.log(properties[name]);
}
}
});
readonly resource : Resource
readonly root : Cesium3DTile
shadows : ShadowMode
启用阴影会影响性能。投射阴影的图块集必须渲染两次,一次来自相机,另一次来自灯光的视点。
仅当
Viewer#shadows
为
true
时才会渲染阴影。
-
Default Value:
ShadowMode.ENABLED
-
Default Value:
true
-
Default Value:
false
-
Default Value:
true
替换-细化遍历的常见策略是将树的所有级别存储在内存中,并要求在父级细化之前加载所有子级。通过这种优化,可以完全跳过树的级别,并且可以将子级与父级一起渲染。使用此优化时,tileset 需要的内存显着减少。
-
Default Value:
false
仅在
Cesium3DTileset#skipLevelOfDetail
为
true
时使用。
-
Default Value:
1
<= 100/skipScreenSpaceErrorFactor
。
仅在
Cesium3DTileset#skipLevelOfDetail
为
true
时使用。
-
Default Value:
16
splitDirection : SplitDirection
SplitDirection
。
-
Default Value:
SplitDirection.NONE
style : Cesium3DTileStyle |undefined
分配
undefined
以删除样式,这将在未应用样式时将图块集的视觉外观恢复为其默认值。
样式在
Cesium3DTileset#tileVisible
事件引发之前应用到 tile,因此
tileVisible
中的代码可以在应用样式后手动设置特性的属性(例如颜色和显示)。分配新样式时,任何手动设置的属性都会被覆盖。
使用始终为'真'的条件来为所有未被预先存在的条件覆盖的对象指定颜色。否则,将使用默认颜色 Cesium.Color.White。同样,使用始终为'真'的条件来为所有未被预先存在的条件覆盖的对象指定 show 属性。否则,将使用默认显示值 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:
tileFailed : Event
如果没有事件侦听器,错误消息将记录到控制台。
传递给侦听器的错误对象包含两个属性:
-
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}`);
});
tileLoad : Event
加载的
Cesium3DTile
被传递给事件监听器。
此事件在帧被渲染时在图块集遍历期间被触发,以便对图块的更新在同一帧中生效。不要在事件监听期间创建或修改 Cesium 实体或原语。
-
Default Value:
new Event()
Example:
tileset.tileLoad.addEventListener(function(tile) {
console.log('A tile was loaded.');
});
true
时,所有满足此帧屏幕空间错误的图块都会被加载。该视图的图块集已完全加载。
-
Default Value:
false
See:
tileUnload : Event
卸载的
Cesium3DTile
被传递给事件监听器。
在渲染框架时,在卸载 tile 的内容之前立即触发此事件,以便事件侦听器可以访问 tile 的内容。不要在事件监听期间创建或修改 Cesium 实体或原语。
-
Default Value:
new Event()
Example:
tileset.tileUnload.addEventListener(function(tile) {
console.log('A tile was unloaded from the cache.');
});
See:
tileVisible : Event
可见的
Cesium3DTile
被传递给事件监听器。
此事件在帧被渲染时在图块集遍历期间被触发,以便对图块的更新在同一帧中生效。不要在事件监听期间创建或修改 Cesium 实体或原语。
-
Default Value:
new Event()
Examples:
tileset.tileVisible.addEventListener(function(tile) {
if (tile.content instanceof Cesium.Batched3DModel3DTileContent) {
console.log('A Batched 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();
}
});
-
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.
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
Name | Type | Description |
---|---|---|
tilesetUrl
|
Resource | String | 要获取的json文件的url |
Returns:
一旦一个对象被销毁,它就不应该被使用;调用
isDestroyed
以外的任何函数都会导致
DeveloperError
异常。因此,如示例中所做的那样,将返回值 (
undefined
) 分配给对象。
Throws:
-
DeveloperError : 该对象被销毁,即调用了destroy()。
Example:
tileset = tileset && tileset.destroy();
See:
true
;否则,
false
。
Name | Type | Description |
---|---|---|
extensionName
|
String | 要检查的扩展名。 |
Returns:
true
;否则,
false
。
Returns:
true
;否则,
false
。
Cesium3DTileset#style
标记为脏,这会强制所有功能重新评估下一帧中的样式,每个都是可见的。
Cesium3DTileset#maximumMemoryUsage
以下的切片总数。
瓦片卸载发生在下一帧,以将所有 WebGL 删除调用保持在渲染循环内。
Type Definitions
Cesium3DTileset#foveatedScreenSpaceError
为 true 时用作回调,以控制为中心凹锥外的图块增加多少屏幕空间错误,在
Cesium3DTileset#foveatedMinimumScreenSpaceErrorRelaxation
和
Cesium3DTileset#maximumScreenSpaceError
之间进行插值。
Name | Type | Description |
---|---|---|
p
|
Number | 要插值的起始值。 |
q
|
Number | 要插值的最终值。 |
time
|
Number |
插值时间一般在
[0.0, 1.0]
范围内。
|
Returns:
-
Default Value:
Math.lerp