VoxelPrimitive

new Cesium.VoxelPrimitive(options)

一个从 VoxelProvider 渲染体素数据的图元(primitive)。
Name Type Description
options object optional Object with the following properties:
Name Type Default Description
provider VoxelProvider optional 为图元提供瓦片数据的体素提供者(voxel provider)。
modelMatrix Matrix4 Matrix4.IDENTITY optional 用于变换图元的模型矩阵(model matrix)。
customShader CustomShader optional 用于对图元进行样式化的自定义着色器(custom shader)。
clock Clock optional 用于控制时间动态行为的时钟(clock)。
calculateStatistics boolean optional 生成用于性能分析的统计信息。
Experimental

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

See:

Members

当本帧中所有满足屏幕空间误差(screen space error)的瓦片都已加载时触发的事件。对于此视图,体素图元已完全加载。

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

Example:
voxelPrimitive.allTilesLoaded.addEventListener(function() {
    console.log('All tiles are loaded');
});
获取包围球(bounding sphere)。
用于有选择地禁用图元渲染的 ClippingPlaneCollection
获取或设置自定义着色器(custom shader)。如果为 undefined,则尝试构建一个适合元数据类型的默认自定义着色器。如果失败,则使用 VoxelPrimitive.DefaultCustomShader
See:

readonly customShaderCompilationEvent : Event

获取每当自定义着色器被编译时引发的事件。
获取或设置是否渲染调试可视化(debug visualizations)。
获取或设置渲染时是否进行深度测试(test against depth)。
获取每个体素瓦片的尺寸(采用 z 轴向上(z-up)的方向)。不包含填充(padding)。
获取或设置当视图发生变化时图元是否应更新。
当本帧中所有满足屏幕空间误差(screen space error)的瓦片都已加载时触发的事件。当初始视图中的所有瓦片都加载完成时,此事件触发一次。

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

Example:
voxelPrimitive.initialTilesLoaded.addEventListener(function() {
    console.log('Initial tiles are loaded');
});
See:
获取输入体素数据中单个瓦片的尺寸(采用输入方向)。包含填充(padding)。
指示新瓦片加载进度的事件。当请求新瓦片、请求的瓦片下载完成、以及下载的瓦片处理完毕并准备渲染时,都会触发此事件。

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

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

Example:
voxelPrimitive.loadProgress.addEventListener(function(numberOfPendingRequests, numberOfTilesProcessing) {
    if ((numberOfPendingRequests === 0) && (numberOfTilesProcessing === 0)) {
        console.log('Finished loading');
        return;
    }

    console.log(`Loading: requests: ${numberOfPendingRequests}, processing: ${numberOfTilesProcessing}`);
});
获取或设置形状本地坐标系中的最大边界。体素数据会被拉伸或压缩以适配边界。
获取或设置形状本地坐标系中的最大裁剪位置。超出该范围的所有体素内容都将被裁剪。

constant maximumValues : Array.<Array.<number>>

获取体素数据每个通道(channel)的最大值。
获取或设置形状本地坐标系中的最小边界。体素数据会被拉伸或压缩以适配边界。
获取或设置形状本地坐标系中的最小裁剪位置。超出该范围的所有体素内容都将被裁剪。

constant minimumValues : Array.<Array.<number>>

获取体素数据每个通道(channel)的最小值。
获取模型矩阵(model matrix)。

nearestSampling : boolean

获取或设置最近邻采样(nearest sampling)。
获取有向包围盒(oriented bounding box)。
获取体素数据之后的填充(padding)。
获取体素数据之前的填充(padding)。
获取与此图元关联的 VoxelProvider
获取一个指示图元是否可供使用的值。

screenSpaceError : number

获取或设置以像素表示的屏幕空间误差(screen space error)。如果某个体素的屏幕空间尺寸大于屏幕空间误差,则该瓦片会被细分。较低的屏幕空间误差对应较高的渲染细节,但可能导致性能下降和内存消耗增加。
获取形状类型(shape type)。
获取或设置此图元是否应被显示。
获取或设置光线步进(raymarching)期间使用的步长乘数。该值越小,渲染质量越高,但性能也越差。
指示某个瓦片的内容加载失败的事件。
Example:
voxelPrimitive.tileFailed.addEventListener(function() {
    console.log('An error occurred loading tile.');
});
指示某个瓦片的内容已加载的事件。

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

Example:
voxelPrimitive.tileLoad.addEventListener(function() {
    console.log('A tile was loaded.');
});
指示某个瓦片的内容已卸载的事件。
Example:
voxelPrimitive.tileUnload.addEventListener(function() {
    console.log('A tile was unloaded from the cache.');
});
此事件在每一帧中为每个可见瓦片触发一次。

此事件在渲染帧期间遍历时触发。

Example:
voxelPrimitive.tileVisible.addEventListener(function() {
    console.log('A tile is visible.');
});

Methods

销毁此对象持有的 WebGL 资源。销毁对象可以实现 WebGL 资源的确定性释放,而不必依赖垃圾回收器来销毁该对象。

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

isDestroyed()boolean

如果此对象已被销毁则返回 true,否则返回 false。

如果此对象已被销毁,则不应再使用它;调用除 isDestroyed 之外的任何函数都会导致 DeveloperError 异常。
Returns:
true 表示此对象已被销毁,否则为 false
See:
需要帮助?获取答案的最快方式是在 Cesium 论坛 上向社区和团队提问。.