BM3DTileset

A3D Tiles tileset,用于流式处理大量异构三维地理空间数据集。
new BM3DTileset(options)
Parameters:
options (Object)
Name Description
options.url
(Resource | String | Promise.<Resource> | Promise.<String>)
tileset json文件的URL。
options.show
Boolean
default true
确定是否显示颚化集。
options.modelMatrix
Matrix4
default Matrix4.IDENTITY
一个4x4变换矩阵,它转换tileset的根瓦片。
options.shadows
ShadowMode
default ShadowMode.ENABLED
确定tileset是投射还是接收来自每个光源的阴影。
options.maximumScreenSpaceError
Number
default 16
用于驱动细节细化级别的最大屏幕空间错误。
options.maximumMemoryUsage
Number
default 512
tileset可以使用的最大内存量(MB)。
options.cullWithChildrenBounds
Boolean
default true
优化选项。是否使用其子对象边界体积的联合来剔除瓦片。
options.cullRequestsWhileMoving
Boolean
default true
优化选项。不要请求可能因为相机的移动而返回时未使用的磁贴。
options.cullRequestsWhileMovingMultiplier
Number
default 60.0
优化选项。移动时剔除请求时使用的乘数。较大的是更具侵略性的剔除,较小的是不具侵略性的剔除。
options.preloadWhenHidden
Boolean
default false
tileset.showfalse时预加载瓦片。加载瓦片,就像瓦片集可见但不呈现它们一样。
options.preloadFlightDestinations
Boolean
default true
优化选项。当相机正在飞行时,在相机的飞行目的地预加载磁贴。
options.preferLeaves
Boolean
default false
优化选项。最好先装树叶。
options.dynamicScreenSpaceError
Boolean
default false
优化选项。减少离相机较远的磁贴的屏幕空间错误。
options.dynamicScreenSpaceErrorDensity
Number
default 0.00278
密度用于调整动态屏幕空间误差,类似于雾密度。
options.dynamicScreenSpaceErrorFactor
Number
default 4.0
用于增加计算出的动态屏幕空间误差的系数。
options.dynamicScreenSpaceErrorHeightFalloff
Number
default 0.25
密度开始下降时的蒂勒塞特高度的比率。
options.progressiveResolutionHeightFraction
Number
default 0.3
优化选项。如果介于(0.0,0.5)之间,将首先优先考虑降低屏幕分辨率progressiveResolutionHeightFraction*screenHeight的屏幕空间误差或高于该误差的瓦片。这有助于在继续加载全分辨率磁贴时快速放下磁贴层。
options.foveatedScreenSpaceError
Boolean
default true
优化选项。通过临时提高屏幕边缘周围的瓦片的屏幕空间错误,将在屏幕中心加载瓦片的优先级排序。加载BM3DTileset#foveatedConeSize所确定的屏幕中心的所有磁贴后,屏幕空间错误恢复正常。
options.foveatedConeSize
Number
default 0.1
优化选项。当BM3DTileset#foveatedScreenSpaceError为真时使用,以控制用于确定延迟的瓦片的圆锥体大小。此圆锥体内的瓦片将立即加载。锥体外的平铺可能会根据它们在锥体外的距离及其屏幕空间错误而延迟。这由BM3DTileset#foveatedInterpolationCallbackBM3DTileset#foveatedMinimumScreenSpaceErrorRelaxation控制。将此值设置为0.0表示圆锥体将是由相机位置及其视图方向形成的线。将此设置为1.0意味着圆锥体包含相机的整个视场,禁用效果。
options.foveatedMinimumScreenSpaceErrorRelaxation
Number
default 0.0
优化选项。当BM3DTileset#foveatedScreenSpaceError为真时,用于控制凹锥外瓦片的起始屏幕空间误差松弛。屏幕空间错误将根据提供的BM3DTileset#foveatedInterpolationCallback从tileset值开始升高到BM3DTileset#maximumScreenSpaceError
options.foveatedInterpolationCallback
BM3DTileset~foveatedInterpolationCallback
default Math.lerp
优化选项。当BM3DTileset#foveatedScreenSpaceError为真时,用于控制在中央凹锥体外增加瓦片屏幕空间误差的程度,在BM3DTileset#foveatedMinimumScreenSpaceErrorRelaxationBM3DTileset#maximumScreenSpaceError之间插入。
options.foveatedTimeDelay
Number
default 0.2
优化选项。当BM3DTileset#foveatedScreenSpaceError为真时使用,以秒为单位控制延迟瓦片开始加载之前相机停止移动后的等待时间。此时间延迟可防止摄像机移动时在屏幕边缘周围请求平铺。将此设置为0.0将立即请求任何给定视图中的所有瓦片。
options.skipLevelOfDetail
Boolean
default true
优化选项。确定遍历期间是否应应用细节级别跳过。
options.baseScreenSpaceError
Number
default 1024
skipLevelOfDetailtrue时,在跳过详细级别之前必须达到的屏幕空间错误。
options.skipScreenSpaceErrorFactor
Number
default 16
skipLevelOfDetailtrue时,定义要跳过的最小屏幕空间错误的乘数。与skipLevels一起使用,以确定要加载的瓦片。
options.skipLevels
Number
default 1
skipLevelOfDetailtrue时,定义加载瓦片时要跳过的最小级别数的常量。为0时,不跳过任何级别。与skipScreenSpaceErrorFactor一起使用,以确定要加载的瓦片。
options.immediatelyLoadDesiredLevelOfDetail
Boolean
default false
skipLevelOfDetailtrue时,将只下载满足最大屏幕空间错误的磁贴。跳过因子被忽略,只加载所需的瓦片。
options.loadSiblings
Boolean
default false
skipLevelOfDetailtrue时,确定遍历期间是否始终下载可见瓦片的同级。
options.clippingPlanes
ClippingPlaneCollection
ClippingPlaneCollection用于选择性地禁用呈现tileset。
options.classificationType
ClassificationType
确定地形、三维瓦片或两者都将按此瓦片集分类。有关限制和限制的详细信息,请参见BM3DTileset#classificationType
options.ellipsoid
Ellipsoid
default Ellipsoid.WGS84
决定球体大小和形状的椭球体。
options.pointCloudShading
Object
用于构建PointCloudShading对象的选项,以根据几何误差和照明控制点衰减。
options.imageBasedLightingFactor
Cartesian2
default new Cartesian2(1.0, 1.0)
缩放来自地球、天空、大气和星空盒的漫反射和镜面反射基于图像的照明。
options.lightColor
Cartesian3
用来给模型加阴影的阳光的颜色和强度。
options.luminanceAtZenith
Number
default 0.2
太阳在天顶的亮度,单位为千克烛光每平方米,用于此模型的程序环境地图。
options.sphericalHarmonicCoefficients
Array.<Cartesian3>
三阶球面谐波系数用于图像光的漫反射颜色。
options.specularEnvironmentMaps
String
KTX文件的一个URL,其中包含镜面照明和卷积镜面mipmap的立方体映射。
options.debugHeatmapTilePropertyName
String
要作为heatmap着色的瓦片变量。所有渲染的瓦片将根据彼此指定的变量值着色。
options.debugFreezeFrame
Boolean
default false
仅用于调试。确定是否只应使用最后一帧的瓦片进行渲染。
options.debugColorizeTiles
Boolean
default false
仅用于调试。如果为真,则为每个瓦片指定随机颜色。
options.debugWireframe
Boolean
default false
仅用于调试。如果为真,则将每个瓦片的内容渲染为线框。
options.debugShowBoundingVolume
Boolean
default false
仅用于调试。如果为真,则渲染每个瓦片的边界体积。
options.debugShowContentBoundingVolume
Boolean
default false
仅用于调试。如果为真,则渲染每个瓦片内容的边界体积。
options.debugShowViewerRequestVolume
Boolean
default false
仅用于调试。如果为true,则为每个瓦片呈现查看器请求卷。
options.debugShowGeometricError
Boolean
default false
仅用于调试。如果为真,则绘制标签以指示每个瓦片的几何错误。
options.debugShowRenderingStatistics
Boolean
default false
仅用于调试。如果为真,则绘制标签以指示每个瓦片的命令、点、三角形和特征的数量。
options.debugShowMemoryUsage
Boolean
default false
仅用于调试。如果为真,则绘制标签以指示每个瓦片使用的纹理和几何内存(兆字节)。
options.debugShowUrl
Boolean
default false
仅用于调试。如果为true,则绘制标签以指示每个瓦片的URL。
Examples
var tileset = scene.primitives.add(new bmgl.BM3DTileset({
     url : 'http://localhost:8002/tilesets/Seattle/tileset.json'
}));
// Common setting for the skipLevelOfDetail optimization
var tileset = scene.primitives.add(new bmgl.BM3DTileset({
     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
var tileset = scene.primitives.add(new bmgl.BM3DTileset({
     url : 'http://localhost:8002/tilesets/Seattle/tileset.json',
     dynamicScreenSpaceError : true,
     dynamicScreenSpaceErrorDensity : 0.00278,
     dynamicScreenSpaceErrorFactor : 4.0,
     dynamicScreenSpaceErrorHeightFalloff : 0.25
}));
Throws
See:

Members

allTilesLoaded : Event

触发的事件指示已加载满足此帧的屏幕空间错误的所有磁贴。此视图的tileset已完全加载。

此事件在渲染场景后在帧的末尾触发。

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

(readonly) asset : Object

获取tileset的资源对象属性,该属性包含有关tileset的元数据。

请参阅3D瓦片规格中的asset schema reference了解完整的属性集。

(readonly) basePath : String

tileset json文件中非绝对路径相对于的基本路径。

Deprecated: true

baseScreenSpaceError : Number

跳过详细级别之前必须达到的屏幕空间错误。

仅在BM3DTileset#skipLevelOfDetailtrue时使用。

Default Value: 1024

(readonly) boundingSphere : BoundingSphere

Tileset的边界球。
Example:
var tileset = viewer.scene.primitives.add(new bmgl.BM3DTileset({
    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 bmgl.HeadingPitchRange(0, -0.5, 0));
});

(readonly) classificationType : ClassificationType

确定地形、三维瓦片或两者都将按此瓦片集分类。

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

当为批处理的3D模型平铺集启用时,对GLTF有一些要求/限制:

  • 位置和{批处理ID语义是必需的。
  • 具有相同批处理ID的所有索引都必须占用索引缓冲区的连续部分。
  • 忽略所有着色器和技术。生成的明暗器只需将位置乘以模型视图投影矩阵。
  • 唯一支持的扩展名是bmgl{rtc和web3d{量化{属性。
  • 只支持一个节点。
  • 每个节点仅支持一个网格。
  • 每个网格仅支持一个基元。

Default Value: undefined
Experimental

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

clippingPlanes : ClippingPlaneCollection

ClippingPlaneCollection用于选择性地禁用呈现tileset。

colorBlendAmount : Number

定义当BM3DTileset#colorBlendModeMIX时用于在源颜色和要素颜色之间进行线性插值的值。值为0.0将生成源颜色,值为1.0将生成功能颜色,其中任何值之间的值将导致源颜色和功能颜色的混合。
Default Value: 0.5

colorBlendMode : BM3DTileColorBlendMode

定义从BMAPI或声明性样式设置的每个要素颜色如何与原始要素的源颜色(例如gltf材质或瓦片中的每个点颜色)混合。
Default Value: BM3DTileColorBlendMode.HIGHLIGHT

cullRequestsWhileMoving : Boolean

优化选项。不要请求可能因为相机的移动而返回时未使用的磁贴。
Default Value: true

cullRequestsWhileMovingMultiplier : Number

优化选项。移动时剔除请求时使用的乘数。较大的是更具侵略性的剔除,较小的是不具侵略性的剔除。
Default Value: 60.0

debugColorizeTiles : Boolean

此属性仅用于调试;它不是为生产使用而优化的。

为真时,为每个瓦片指定随机颜色。这对于可视化哪些功能属于哪些瓦片很有用,特别是在父瓦片的功能可能与子瓦片的功能交错的情况下,使用附加优化。

Default Value: false

debugFreezeFrame : Boolean

此属性仅用于调试;它不是为生产使用而优化的。

确定是否只应使用最后一帧的瓦片进行渲染。这会有效地将tileset“冻结”到上一帧,以便可以缩小并查看渲染的内容。

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

debugShowUrl : Boolean

此属性仅用于调试;它不是为生产使用而优化的。

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

Default Value: false

debugShowViewerRequestVolume : Boolean

此属性仅用于调试;它不是为生产使用而优化的。

如果为真,则为每个瓦片呈现查看器请求量。

Default Value: false

debugWireframe : Boolean

此属性仅用于调试;它不是为生产使用而优化的。

如果为真,则将每个瓦片的内容呈现为线框。

Default Value: false

dynamicScreenSpaceError : Boolean

优化选项。Tileset是否应根据动态屏幕空间错误进行优化。较远的瓦片将比较近的瓦片以较低的细节进行渲染。这可以通过渲染较少的瓦片和发出较少的请求来提高性能,但可能会导致远处瓦片的视觉质量略有下降。该算法偏向于“街景”,即摄像机靠近蒂勒塞特的地平面并注视地平线。此外,对于框和区域等紧密拟合的边界体积,结果更准确。
Default Value: false

dynamicScreenSpaceErrorDensity : Number

确定用于调整动态屏幕空间错误的密度的标量,类似于Fog。增加该值会增加所有瓦片的最大屏幕空间误差,但会以非线性方式增加。误差从0.0开始呈指数增长,直到达到中点,然后渐进地接近1.0。这有一种效果,即在较近的瓦片中保持较高的细节,而在较远的瓦片中保持较低的细节,所有瓦片超过一定距离,其误差大致为1.0。

动态误差在[0.0,1.0]范围内,并乘以dynamicScreenSpaceErrorFactor产生最终动态误差。然后,从瓦片的实际屏幕空间错误中减去该动态错误。

递增dynamicScreenSpaceErrorDensity具有将误差中点移近相机的效果。它类似于将雾移近摄像机。

Default Value: 0.00278

dynamicScreenSpaceErrorFactor : Number

一种用于增加动态屏幕空间误差的块的屏幕空间误差的因子。随着此值的增加,渲染所需的瓦片将减少,并且距离中的瓦片的细节也将降低。如果设置为零,功能将被禁用。
Default Value: 4.0

dynamicScreenSpaceErrorHeightFalloff : Number

密度开始下降时的蒂勒塞特高度的比率。如果相机低于此高度,将应用完全计算的密度,否则密度将下降。这在街景上具有更高密度的效果。

有效值介于0.0和1.0之间。

Default Value: 0.25

(readonly) ellipsoid : Ellipsoid

获取描述球体形状的椭球体。

(readonly) extras : *

返回tileset json顶层的extras属性,该属性包含特定于应用程序的元数据。如果不存在,则返回undefined
See:

foveatedConeSize : Number

优化选项。当BM3DTileset#foveatedScreenSpaceError为真时使用,以控制用于确定延迟的瓦片的圆锥体大小。此圆锥体内的瓦片将立即加载。锥体外的瓦片可能会根据它们在锥体外的距离和BM3DTileset#foveatedInterpolationCallbackBM3DTileset#foveatedMinimumScreenSpaceErrorRelaxation延迟。将此值设置为0.0表示圆锥体将是由相机位置及其视图方向形成的线。将其设置为1.0意味着圆锥体包含相机的整个视场,基本上禁用了效果。
Default Value: 0.3

foveatedInterpolationCallback : BM3DTileset~foveatedInterpolationCallback

获取一个函数,该函数将更新瓦片的中心屏幕空间错误。

foveatedMinimumScreenSpaceErrorRelaxation : Number

优化选项。当BM3DTileset#foveatedScreenSpaceError为真时,用于控制凹锥外瓦片的起始屏幕空间误差松弛。屏幕空间错误将根据提供的BM3DTileset#foveatedInterpolationCallback从该值开始升高到BM3DTileset#maximumScreenSpaceError
Default Value: 0.0

foveatedScreenSpaceError : Boolean

优化选项。通过临时提高屏幕边缘周围的瓦片的屏幕空间错误,将在屏幕中心加载瓦片的优先级排序。加载BM3DTileset#foveatedConeSize所确定的屏幕中心的所有磁贴后,屏幕空间错误恢复正常。
Default Value: true

foveatedTimeDelay : Number

优化选项。当BM3DTileset#foveatedScreenSpaceError为真时使用,以秒为单位控制延迟瓦片开始加载之前相机停止移动后的等待时间。此时间延迟可防止摄像机移动时在屏幕边缘周围请求平铺。将此设置为0.0将立即请求任何给定视图中的所有瓦片。
Default Value: 0.2

imageBasedLightingFactor : Cartesian2

BMGL增加了来自地球、天空、大气和星空盒的照明。该笛卡尔坐标用于将这些源的最终漫反射和镜面照明贡献缩放为最终颜色。值为0.0将禁用这些光源。
Default Value: Cartesian2(1.0, 1.0)

immediatelyLoadDesiredLevelOfDetail : Boolean

如果为真,则只下载满足最大屏幕空间错误的磁贴。跳过因子被忽略,只加载所需的瓦片。

仅在BM3DTileset#skipLevelOfDetailtrue时使用。

Default Value: false

initialTilesLoaded : Event

触发的事件指示已加载满足此帧的屏幕空间错误的所有磁贴。当加载初始视图中的所有瓦片时,将触发一次此事件。

此事件在渲染场景后在帧的末尾触发。

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

lightColor : Cartesian3

用来给模型加阴影的阳光的颜色和强度。

例如,通过设置model.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);
});

loadSiblings : Boolean

确定遍历期间是否始终下载可见平铺的同级。这可能有助于确保在查看器向左/向右旋转时瓦片已经可用。

仅在BM3DTileset#skipLevelOfDetailtrue时使用。

Default Value: false

luminanceAtZenith : Number

太阳在天顶的亮度,单位为千克烛光每平方米,用于此模型的程序环境地图。未定义BM3DTileset#specularEnvironmentMapsBM3DTileset#sphericalHarmonicCoefficients时使用。
Default Value: 0.2

maximumMemoryUsage : Number

可用于缓存磁贴的最大GPU内存量(以MB为单位)。该值是根据加载的瓦片的几何体、纹理和批处理表纹理估计的。对于点云,该值还包括每个点的元数据。

未在视图中的瓦片将卸载以强制执行此操作。

如果减小该值会导致卸载瓦片,则会在下一帧卸载瓦片。

如果需要尺寸大于maximumMemoryUsage的磁贴来满足由BM3DTileset#maximumScreenSpaceError确定的所需屏幕空间错误,对于当前视图,则加载磁贴的内存使用将超过maximumMemoryUsage。例如,如果最大值为256 MB,但需要300 MB的磁贴来满足屏幕空间错误,则可以加载300 MB的磁贴。当这些瓦片离开视野时,它们将被卸载。

Default Value: 512
See:

maximumScreenSpaceError : Number

用于驱动细节细化级别的最大屏幕空间错误。此值有助于确定瓦片何时细化为其后代,因此在平衡性能和视觉质量方面起主要作用。瓦片的屏幕空间误差大致等于如果在瓦片位置渲染半径等于瓦片的几何误差的球体时将绘制的像素宽度。如果此值超过maximumScreenSpaceError,则瓦片将细化为其后代。

取决于Tileset,maximumScreenSpaceError可能需要进行调整以实现正确的平衡。较高的值提供更好的性能,但视觉质量较低。

Default Value: 16

modelMatrix : Matrix4

转换整个tileset的4x4转换矩阵。
Default Value: Matrix4.IDENTITY
Example:
// Adjust a tileset's height from the globe's surface.
var heightOffset = 20.0;
var boundingSphere = tileset.boundingSphere;
var cartographic = bmgl.Cartographic.fromCartesian(boundingSphere.center);
var surface = bmgl.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0);
var offset = bmgl.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset);
var translation = bmgl.Cartesian3.subtract(offset, surface, new bmgl.Cartesian3());
tileset.modelMatrix = bmgl.Matrix4.fromTranslation(translation);

pointCloudShading : PointCloudShading

基于几何误差和眼罩照明控制点大小的选项。

preferLeaves : Boolean

优化选项。最好先装树叶。
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

获取Tileset的属性字典对象,该对象包含有关每个功能属性的元数据。

请参阅3D瓦片规格中的properties schema reference了解完整的属性集。

See:
Example:
console.log('Maximum building height: ' + tileset.properties.height.maximum);
console.log('Minimum building height: ' + tileset.properties.height.minimum);

(readonly) ready : Boolean

true时,将加载tileset的根瓦片,并准备渲染tileset。这将设置为trueBM3DTileset#readyPromise解决之前。
Default Value: false

(readonly) readyPromise : Promise.<BM3DTileset>

获取在加载tileset的根瓦片并且tileset准备好呈现时将解决的承诺。

此承诺在第一帧中呈现Tileset之前在帧的末尾解决。

Example:
tileset.readyPromise.then(function(tileset) {
    // tile.properties is not defined until readyPromise resolves.
    var properties = tileset.properties;
    if (bmgl.defined(properties)) {
        for (var name in properties) {
            console.log(properties[name]);
        }
    }
});

(readonly) root : BM3DTile

根瓦片。

shadows : ShadowMode

确定tileset是投射还是接收来自每个光源的阴影。

启用阴影会影响性能。投射阴影的平铺集必须渲染两次,一次从相机渲染,一次从灯光渲染。

阴影仅在Viewer#shadowstrue时呈现。

Default Value: ShadowMode.ENABLED

show : Boolean

确定是否显示颚化集。
Default Value: true

skipLevelOfDetail : Boolean

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

替换优化遍历的常见策略是将树的所有级别存储在内存中,并要求在父级可以优化之前加载所有子级。通过这种优化,可以完全跳过树的级别,并且可以将孩子与父母一起呈现。使用此优化时,tileset需要的内存显著减少。

Default Value: true

skipLevels : Number

常量定义加载瓦片时要跳过的最小级别数。为0时,不跳过任何级别。例如,如果瓦片是级别1,则不会加载任何瓦片,除非其级别大于2。

仅在BM3DTileset#skipLevelOfDetailtrue时使用。

Default Value: 1

skipScreenSpaceErrorFactor : Number

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

仅在BM3DTileset#skipLevelOfDetailtrue时使用。

Default Value: 16

specularEnvironmentMaps : String

KTX文件的一个URL,其中包含镜面照明和卷积镜面mipmap的立方体映射。
See:

sphericalHarmonicCoefficients : Array.<Cartesian3>

用于基于图像的照明的漫反射颜色的三阶球谐系数。 当undefined时,使用根据大气颜色计算的漫射辐照度。

有九个Cartesian3系数。 系数的顺序为:L 00,L 1-1,L 10,L 11,L 2-2,L 2-1,L 20,L 21,L 22

这些值可以通过使用Google's Filament projectcmgen工具预处理环境图来获得。 这还将生成可提供给BM3DTileset#specularEnvironmentMaps的KTX文件。

style : BM3DTileStyle

使用3D Tiles Styling language定义的样式应用于瓦片集中的每个要素。

分配undefined删除样式,这将在未应用样式时将瓦片集的视觉外观恢复为其默认值。

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

Default Value: undefined
See:
Example:
tileset.style = new bmgl.BM3DTileStyle({
   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}."'
   }
});

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

触发的事件指示已加载瓦片的内容。

将加载的BM3DTile传递给事件侦听器。

此事件在渲染帧时在tileset遍历期间触发,以便对瓦片的更新在同一帧中生效。不要在事件侦听器期间创建或修改BMGL实体或基元。

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

(readonly) tilesLoaded : Boolean

true时,将加载满足屏幕空间错误的所有瓦片。此视图的tileset已完全加载。
Default Value: false
See:

tileUnload : Event

该事件触发以指示瓦片的内容已卸载。

已卸载的BM3DTile被传递到事件侦听器。

渲染帧时,将在瓦片的内容被卸载之前立即触发此事件,以便事件侦听器可以访问瓦片的内容。 在事件侦听器期间,请勿创建或修改实体或原语。

Default Value: new Event()
See:
Example:
tileset.tileUnload.addEventListener(function(tile) {
    console.log('A tile was unloaded from the cache.');
});

tileVisible : Event

此事件对帧中的每个可见瓦片触发一次。这可用于手动设置tileset的样式。

可见BM3DTile传递给事件侦听器。

此事件在渲染帧时在tileset遍历期间触发,以便对瓦片的更新在同一帧中生效。不要在事件侦听器期间创建或修改BMGL实体或基元。

Default Value: new Event()
Examples:
tileset.tileVisible.addEventListener(function(tile) {
    if (tile.content instanceof bmgl.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 bmgl.BM3DTileStyle({
    color : 'color("red")'
});
tileset.tileVisible.addEventListener(function(tile) {
    var content = tile.content;
    var featuresLength = content.featuresLength;
    for (var i = 0; i < featuresLength; i+=2) {
        content.getFeature(i).color = bmgl.Color.fromRandom();
    }
});

(readonly) timeSinceLoad : Number

返回自加载并首次更新tileset以来的时间(以毫秒为单位)。

(readonly) totalMemoryUsageInBytes : Number

tileset使用的GPU内存总量(字节)。此值是根据加载的瓦片的几何体、纹理和批处理表纹理估计的。对于点云,该值还包括每个点的元数据。
See:

(readonly) url : String

tileset json文件的URL。

Methods

(static) loadJson(tilesetUrl) → {Promise.<Object>}
提供一个钩子来重写从远程服务器获取tileset时用于请求tileset json的方法。
Parameters:
tilesetUrl ((Resource | String)) 要获取的JSON文件的URL
destroy()
销毁此对象持有的WebGL资源。销毁对象允许确定地释放WebGL资源,而不是依赖垃圾收集器来销毁此对象。

一旦对象被破坏,就不应使用它;调用除isDestroyed以外的任何函数都将导致DeveloperError异常。因此,将返回值(undefined)赋给对象,如示例中所述。
Example
tileset = tileset && tileset.destroy();
Throws
See:
hasExtension(extensionName) → {Boolean}
true如果tileset json文件列出了所用扩展名中的扩展名;否则,false
Parameters:
extensionName (String) 要检查的扩展名。
isDestroyed() → {Boolean}
如果此对象被破坏,则返回true;否则返回false。

如果此对象被破坏,则不应使用它;调用除isDestroyed以外的任何函数将导致DeveloperError异常。
See:
makeStyleDirty()
将tileset的BM3DTileset#style标记为脏,这将强制所有功能重新评估下一帧中的样式,每个都可见。
trimLoadedTiles()
卸载上一帧中未选择的所有磁贴。这可以用于显式管理瓦片缓存,并将加载的瓦片总数减少到BM3DTileset#maximumMemoryUsage以下。

下一帧将发生Tile卸载,以将所有WebGL删除调用保留在呈现循环中。

Type Definitions

foveatedInterpolationCallback(p, q, time) → {Number}
优化选项。当BM3DTileset#foveatedScreenSpaceError为真时用作回调,以控制在BM3DTileset#foveatedMinimumScreenSpaceErrorRelaxationBM3DTileset#maximumScreenSpaceError之间插入的中央凹锥体外的贴片的屏幕空间错误增加多少。
Parameters:
p (Number) 要插入的起始值。
q (Number) 要插入的结束值。
time (Number) 插值时间一般在[0.0, 1.0]范围内。
Default Value: Math.lerp