ModelExperimental

new Cesium.ModelExperimental (options)

一个 3D 模型。这是一个比旧 Model 更加解耦的新架构。这门课仍然是实验性的。

不要直接调用此函数,而是使用 `from` 函数从源数据类型创建模型。

Name Type Description
options Object 具有以下属性的对象:
姓名 类型 默认 描述
resource 资源 3D 模型的资源。
show 布尔值 true 可选 是否渲染模型。
modelMatrix 矩阵4 Matrix4.IDENTITY 可选 将模型从模型转换为世界坐标的 4x4 转换矩阵。
scale 数字 1.0 可选 应用于此模型的统一比例。
minimumPixelSize 数字 0.0 可选 无论缩放如何,模型的近似最小像素大小。
maximumScale 数字 可选 模型的最大比例大小。 minimumPixelSize 的上限。
id 目的 可选 使用 Scene#pick 拾取模型时要返回的用户定义对象。
allowPicking 布尔值 true 可选 true 时,每个基元都可以使用 Scene#pick 进行选择。
clampAnimations 布尔值 true 可选 确定模型的动画是否应在未指定关键帧的帧上保持姿势。
shadows 阴影模式 ShadowMode.ENABLED 可选 确定模型是投射还是接收来自光源的阴影。
debugShowBoundingVolume 布尔值 false 可选 仅用于调试。为模型中的每个绘制命令绘制边界球体。
enableDebugWireframe 布尔值 false 可选 仅用于调试。这必须设置为 true 才能使 debugWireframe 在 WebGL1 中工作。模型加载后无法设置。
debugWireframe 布尔值 false 可选 仅用于调试。在线框中绘制模型。如果 enableDebugWireframe 设置为 true,则仅适用于 WebGL1。
cull 布尔值 true 可选 是否使用平截头体/水平面剔除来剔除模型。如果模型是 3D Tiles 瓦片集的一部分,则此属性将始终为 false,因为使用了 3D Tiles 剔除系统。
opaquePass 布尔值 Pass.OPAQUE 可选 DrawCommand 中用于模型不透明部分的通道。
customShader 自定义着色器 可选 自定义着色器。这会将用户定义的 GLSL 代码添加到顶点和片段着色器。使用带有 Cesium3DTileStyle 的自定义着色器可能会导致未定义的行为。
content Cesium3Dtile内容 可选 该模型所属的平铺内容。如果模型未作为瓦片集的一部分加载,则此属性将未定义。
heightReference 高度参考 HeightReference.NONE 可选 确定模型相对于地形的绘制方式。
scene 场景 可选 对于使用高度参考属性的模型,必须传入。
distanceDisplayCondition 距离显示条件 可选 指定该模型将在距相机多远的距离处显示的条件。
color 颜色 可选 与模型渲染颜色混合的颜色。
colorBlendMode 颜色混合模式 ColorBlendMode.HIGHLIGHT 可选 定义颜色如何与模型混合。
colorBlendAmount 数字 0.5 可选 colorBlendMode MIX 时用于确定颜色强度的值。值 0.0 会导致模型的渲染颜色,而值 1.0 会导致纯色,中间的任何值都会导致两者混合。
silhouetteColor 颜色 Color.RED 可选 轮廓颜色。如果超过 256 个模型启用了轮廓,则重叠模型有很小的可能性会有轻微的伪影。
silhouetteSize 数字 0.0 可选 轮廓的大小(以像素为单位)。
clippingPlanes ClippingPlaneCollection 可选 ClippingPlaneCollection 用于选择性地禁用渲染模型。
lightColor 笛卡尔3 可选 为模型着色时的浅色。当 undefined 时,将使用场景的浅色。
imageBasedLighting 基于图像的照明 可选 用于管理此模型上基于图像的照明的属性。
backFaceCulling 布尔值 true 可选 是否剔除背面几何体。当为 true 时,背面剔除由材质的 doubleSided 属性决定;如果为 false,则禁用背面剔除。如果模型的颜色是半透明的,则不会剔除背面。
credit 信用 | 细绳 可选 数据源的功劳,显示在画布上。
showCreditsOnScreen 布尔值 false 可选 是否在屏幕上显示该模型的学分。
splitDirection 拆分方向 SplitDirection.NONE 可选 要应用于此模型的 SplitDirection 拆分。
projectTo2D 布尔值 false 可选 是否在二维中准确投影模型的位置。如果这是真的,模型将准确地投影到 2D,但这样做会使用更多内存。如果这是错误的,模型将使用更少的内存,并且仍然会以 2D/CV 模式渲染,但它的位置可能不准确。这将禁用 minimumPixelSize 并防止将来修改模型矩阵。模型加载后也无法设置。
featureIdLabel 字符串 | 数字 "featureId_0" 用于拾取和造型的特征 ID 集的 可选 标签。对于 EXT_mesh_features,这是特征 ID 的标签属性,如果未指定,则为'featureId_N'(其中 N 是 featureIds 数组中的索引)。 EXT_feature_metadata 没有标签字段,因此此类特征 ID 集始终标记为'featureId_N',其中 N 是所有特征 ID 列表中的索引,其中特征 ID 属性列在特征 ID 纹理之前。如果 featureIdLabel 是一个整数 N,它会自动转换为字符串'featureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。
instanceFeatureIdLabel 字符串 | 数字 "instanceFeatureId_0" 可选 用于拾取和样式的实例特征 ID 集的标签。如果 instanceFeatureIdLabel 设置为整数 N,它会自动转换为字符串'instanceFeatureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。
pointCloudShading 目的 可选 用于构造 PointCloudShading 对象以根据几何误差和光照控制点衰减的选项。
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.

Members

当前播放的 glTF 动画。
是否剔除背面几何体。当为 true 时,背面剔除由材质的 doubleSided 属性决定;如果为 false,则禁用背面剔除。如果 ModelExperimental#color 为半透明或 ModelExperimental#silhouetteSize 大于 0.0,则不剔除背面。
Default Value: true
获取模型在世界空间中的边界球体。这不考虑 glTF 动画、皮肤或变形目标。它也不考虑 ModelExperimental#minimumPixelSize
确定模型的动画是否应在未指定关键帧的帧上保持姿势。
Default Value: true
ClippingPlaneCollection 用于选择性地禁用渲染模型。
与模型的渲染颜色混合的颜色。
colorBlendMode MIX 时用于确定颜色强度的值。值 0.0 会导致模型的渲染颜色,而值 1.0 会导致纯色,介于两者之间的任何值都会导致两者混合。
Default Value: 0.5
定义颜色如何与模型混合。
Default Value: ColorBlendMode.HIGHLIGHT
获取将为模型显示的信用
模型的自定义着色器(如果存在)。使用带有 Cesium3DTileStyle 的自定义着色器可能会导致未定义的行为。
该属性仅用于调试;它不是用于生产用途,也不是优化的。

为模型中的每个绘制命令绘制边界球体。

Default Value: false
该属性仅用于调试;它不是用于生产用途,也不是优化的。

在线框中绘制模型。

Default Value: false
获取或设置距离显示条件,该条件指定该模型将在距相机的距离处显示。
Default Value: undefined
用于拾取和样式设置的特征 ID 集的标签。

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

如果 featureIdLabel 设置为整数 N,它会自动转换为字符串'featureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。

Experimental

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.

模型的高度参考,它决定了模型相对于地形的绘制方式。
Default Value: {HeightReference.NONE}
拾取模型时返回的用户定义对象。
Default Value: undefined
See:
用于管理此模型上基于图像的照明的属性。
用于拾取和样式设置的实例特征 ID 集的标签。

如果 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.

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

通过设置 model.imageBasedLighting.imageBasedLightingFactor = new Cartesian2(0.0, 0.0) 禁用其他光源将使模型更暗。在这里,增加光源的强度将使模型更亮。

Default Value: undefined
模型的最大比例大小。这可用于为 Model#minimumPixelSize 提供上限,确保模型永远不会是不合理的比例。
无论缩放如何,模型的近似最小像素大小。这可用于确保模型即使在查看器缩小时也是可见的。当 0.0 时,不强制执行最小大小。
Default Value: 0.0
用于控制点云衰减和照明的点云着色设置。对于 3D Tiles,这是从 Cesium3DTileset 继承的。
当为 true 时,此模型已准备好渲染,即下载了外部二进制文件、图像和着色器文件并创建了 WebGL 资源。在解决 ModelExperimental#readyPromise 之前将其设置为 true
Default Value: false
获取当该模型准备好渲染时将被解析的承诺,即当外部资源已下载并创建 WebGL 资源时。

这个承诺在模型渲染的第一帧之前的帧结束时解决。

Model#modelMatrix 之前应用于此模型的统一比例。大于 1.0 的值会增加模型的大小;小于 1.0 的值减少。
Default Value: 1.0
确定模型是投射还是接收来自光源的阴影。
Default Value: ShadowMode.ENABLED
是否渲染模型。
Default Value: true
获取或设置模型的学分是否显示在屏幕上
Default Value: false
剪影颜色。
Default Value: Color.RED
轮廓的大小(以像素为单位)。
Default Value: 0.0
应用于此模型的 SplitDirection
Default Value: SplitDirection.NONE
应用于模型中特征的样式。如果同时应用了 CustomShader ,则无法应用。

Methods

static Cesium.ModelExperimental.fromGltf (options) ModelExperimental

从 glTF 资产创建模型。当模型准备好渲染时,即下载外部二进制文件、图像和着色器文件并创建 WebGL 资源时, Model#readyPromise 被解析。

该模型可以是具有 .gltf 扩展名的传统 glTF 资产或使用 .glb 扩展名的二进制 glTF。

Name Type Description
options Object 具有以下属性的对象:
姓名 类型 默认 描述
url 字符串 | 资源 .gltf 或 .glb 文件的 url。
basePath 字符串 | 资源 '' 可选 glTF JSON 中的路径相对于的基本路径。
show 布尔值 true 可选 是否渲染模型。
modelMatrix 矩阵4 Matrix4.IDENTITY 可选 将模型从模型转换为世界坐标的 4x4 转换矩阵。
scale 数字 1.0 可选 应用于此模型的统一比例。
minimumPixelSize 数字 0.0 可选 无论缩放如何,模型的近似最小像素大小。
maximumScale 数字 可选 模型的最大比例大小。 minimumPixelSize 的上限。
id 目的 可选 使用 Scene#pick 拾取模型时要返回的用户定义对象。
allowPicking 布尔值 true 可选 true 时,每个基元都可以使用 Scene#pick 进行选择。
incrementallyLoadTextures 布尔值 true 可选 确定加载模型后纹理是否可以继续流入。
asynchronous 布尔值 true 可选 确定模型 WebGL 资源创建是否将分散到多个帧或阻塞,直到加载所有 glTF 文件后完成。
clampAnimations 布尔值 true 可选 确定模型的动画是否应在未指定关键帧的帧上保持姿势。
shadows 阴影模式 ShadowMode.ENABLED 可选 确定模型是投射还是接收来自光源的阴影。
releaseGltfJson 布尔值 false 可选 当为 true 时,glTF JSON 会在 glTF 加载后被释放。这对于像 3D Tiles 这样的情况特别有用,其中每个 .gltf 模型都是唯一的并且缓存 glTF JSON 无效。
debugShowBoundingVolume 布尔值 false 可选 仅用于调试。为模型中的每个绘制命令绘制边界球体。
enableDebugWireframe 布尔值 false 可选 仅用于调试。这必须设置为 true 才能使 debugWireframe 在 WebGL1 中工作。模型加载后无法设置。
debugWireframe 布尔值 false 可选 仅用于调试。在线框中绘制模型。如果 enableDebugWireframe 设置为 true,则仅适用于 WebGL1。
cull 布尔值 true 可选 是否使用平截头体/水平面剔除来剔除模型。如果模型是 3D Tiles 瓦片集的一部分,则此属性将始终为 false,因为使用了 3D Tiles 剔除系统。
opaquePass 布尔值 Pass.OPAQUE 可选 DrawCommand 中用于模型不透明部分的通道。
upAxis Axis.Y 可选 glTF 模型的上轴。
forwardAxis Axis.Z 可选 glTF 模型的前轴。
customShader 自定义着色器 可选 自定义着色器。这会将用户定义的 GLSL 代码添加到顶点和片段着色器。使用带有 Cesium3DTileStyle 的自定义着色器可能会导致未定义的行为。
content Cesium3Dtile内容 可选 该模型所属的平铺内容。如果模型未作为瓦片集的一部分加载,则此属性将未定义。
heightReference 高度参考 HeightReference.NONE 可选 确定模型相对于地形的绘制方式。
scene 场景 可选 对于使用高度参考属性的模型,必须传入。
distanceDisplayCondition 距离显示条件 可选 指定该模型将在距相机多远的距离处显示的条件。
color 颜色 可选 与模型渲染颜色混合的颜色。
colorBlendMode 颜色混合模式 ColorBlendMode.HIGHLIGHT 可选 定义颜色如何与模型混合。
colorBlendAmount 数字 0.5 可选 colorBlendMode MIX 时用于确定颜色强度的值。值 0.0 会导致模型的渲染颜色,而值 1.0 会导致纯色,中间的任何值都会导致两者混合。
silhouetteColor 颜色 Color.RED 可选 轮廓颜色。如果超过 256 个模型启用了轮廓,则重叠模型有很小的可能性会有轻微的伪影。
silhouetteSize 数字 0.0 可选 轮廓的大小(以像素为单位)。
clippingPlanes ClippingPlaneCollection 可选 ClippingPlaneCollection 用于选择性地禁用渲染模型。
lightColor 笛卡尔3 可选 为模型着色时的浅色。当 undefined 时,将使用场景的浅色。
imageBasedLighting 基于图像的照明 可选 用于管理此模型上基于图像的照明的属性。
backFaceCulling 布尔值 true 可选 是否剔除背面几何体。当为 true 时,背面剔除由材质的 doubleSided 属性决定;如果为 false,则禁用背面剔除。如果模型的颜色是半透明的,则不会剔除背面。
credit 信用 | 细绳 可选 数据源的功劳,显示在画布上。
showCreditsOnScreen 布尔值 false 可选 是否在屏幕上显示该模型的学分。
splitDirection 拆分方向 SplitDirection.NONE 可选 要应用于此模型的 SplitDirection 拆分。
projectTo2D 布尔值 false 可选 是否在二维中准确投影模型的位置。如果这是真的,模型将准确地投影到 2D,但这样做会使用更多内存。如果这是错误的,模型将使用更少的内存,并且仍然会以 2D/CV 模式渲染,但它的位置可能不准确。这将禁用 minimumPixelSize 并防止将来修改模型矩阵。模型加载后也无法设置。
featureIdLabel 字符串 | 数字 "featureId_0" 用于拾取和造型的特征 ID 集的 可选 标签。对于 EXT_mesh_features,这是特征 ID 的标签属性,如果未指定,则为'featureId_N'(其中 N 是 featureIds 数组中的索引)。 EXT_feature_metadata 没有标签字段,因此此类特征 ID 集始终标记为'featureId_N',其中 N 是所有特征 ID 列表中的索引,其中特征 ID 属性列在特征 ID 纹理之前。如果 featureIdLabel 是一个整数 N,它会自动转换为字符串'featureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。
instanceFeatureIdLabel 字符串 | 数字 "instanceFeatureId_0" 可选 用于拾取和样式的实例特征 ID 集的标签。如果 instanceFeatureIdLabel 设置为整数 N,它会自动转换为字符串'instanceFeatureId_N'。如果每个基元和每个实例的功能 ID 都存在,则实例功能 ID 优先。
pointCloudShading 目的 可选 用于构造 PointCloudShading 对象以控制点衰减和照明的选项。
Returns:
新创建的模型。
将任何修改后的发音阶段应用于参与任何发音的每个节点的矩阵。请注意,这将覆盖参与节点上的任何节点转换。
Throws:
  • DeveloperError : 模型未加载。使用 ModelExperimental.readyPromise 或等待 ModelExperimental.ready 为真。
销毁此对象持有的 WebGL 资源。销毁一个对象允许确定性地释放 WebGL 资源,而不是依赖垃圾收集器来销毁这个对象。

一旦一个对象被销毁,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。因此,如示例中所做的那样,将返回值 ( undefined ) 分配给对象。
Throws:
Example:
model = model && model.destroy();
See:
如果此对象被销毁,则返回 true;否则为假。

如果这个对象被破坏了,它就不应该被使用;调用 isDestroyed 以外的任何函数都将导致 DeveloperError 异常。
Returns:
如果此对象被销毁,则为 true ;否则, false
See:

setArticulationStage (articulationStageKey, value)

设置清晰度阶段的当前值。设置一个或多个阶段值后,调用 ModelExperimental.applyArticulations() 以重新计算节点矩阵。
Name Type Description
articulationStageKey String 关节名称、空格和舞台名称。
value Number 关节的这个阶段的数值。
Throws:
  • DeveloperError : 模型未加载。使用 ModelExperimental.readyPromise 或等待 ModelExperimental.ready 为真。
Example:
// Sets the value of the stage named "MoveX" belonging to the articulation named "SampleArticulation"
model.setArticulationStage("SampleArticulation MoveX", 50.0);
See:
Viewer CesiumWidget 渲染场景以获取渲染此图元所需的绘制命令时调用。

不要直接调用这个函数。记录这只是为了列出渲染场景时可能传播的异常:

Throws: