Cesium包括对几何体和材质,glTF动画和glTF蒙皮的支持。此外,可以使用
Scene#pick
拾取单个glTF节点,并可以设置动画使用
Model#getNode
。目前不支持glTF相机和灯光。
使用
Model.fromGltf
创建外部glTF资产。 glTF JSON也可以是在运行时创建并传递给此构造函数。无论哪种情况,当模型准备好呈现时,即
Model#readyPromise
被解析,即,当下载外部二进制,图像和着色器文件以及WebGL时资源已创建。
Cesium支持具有以下扩展名的glTF资产:
- KHR_binary_glTF(glTF 1.0)
- KHR_materials_common(glTF 1.0)
- WEB3D_quantized_attributes(glTF 1.0)
- AGI_articulations
- KHR_blend(草稿)
- KHR_draco_mesh_compression
- KHR_materials_pbrSpecularGlossiness
- KHR_materials_unlit
- KHR_techniques_webgl
- KHR_texture_transform
为了进行高精度渲染,Cesium支持 CESIUM_RTC 扩展,介绍了CESIUM_RTC_MODELVIEW参数语义,表示节点在WGS84坐标中转换相对于本地血统。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
optional
Object with the following properties:
|
Demo:
See:
Members
activeAnimations : ModelAnimationCollection
-
Default Value:
true
-
Default Value:
true
Model#color
为半透明或
Model#silhouetteSize
大于0.0。
-
Default Value:
true
''
,应用的基本路径。
-
Default Value:
''
readonly boundingSphere : BoundingSphere
Model#minimumPixelSize
。
-
Default Value:
undefined
Example:
// Center in WGS84 coordinates
var center = LSGlobe.Matrix4.multiplyByPoint(model.modelMatrix, model.boundingSphere.center, new LSGlobe.Cartesian3());
clippingPlanes : ClippingPlaneCollection
ClippingPlaneCollection
用于选择性地禁用渲染模型。
color : Color
-
Default Value:
Color.WHITE
colorBlendMode
为
MIX
时用于确定色彩强度的值。值0.0产生模型的渲染颜色,而值1.0产生纯色,其中两者之间的任何值都会导致两者混合。
-
Default Value:
0.5
colorBlendMode : ColorBlendMode
-
Default Value:
ColorBlendMode.HIGHLIGHT
credit : Credit
为模型中的每个绘制命令绘制边界球。 glTF原语对应一个绘制命令。 glTF网格具有一组基本元素,通常长度为一个。
-
Default Value:
false
在线框中绘制模型。
-
Default Value:
false
distanceDisplayCondition : DistanceDisplayCondition
-
Default Value:
undefined
-
Default Value:
undefined
heightReference : HeightReference
-
Default Value:
HeightReference.NONE
-
Default Value:
undefined
See:
imageBasedLightingFactor : Cartesian2
-
Default Value:
Cartesian2(1.0, 1.0)
-
Default Value:
true
lightColor : Cartesian3
undefined
,则使用场景的浅色。
例如,通过设置
model.imageBasedLightingFactor = new LSGlobe.Cartesian2(0.0,0.0)
禁用其他光源将使模型要暗得多。在这里,增加光源的强度会使模型更亮。
-
Default Value:
undefined
Model#specularEnvironmentMaps
和
Model#sphericalHarmonicCoefficients < /code>
未定义。
-
Default Value:
0.2
Demo:
Model#minimumPixelSize
的上限,以确保模型从来都不是不合理的规模。
0.0
时,不强制使用最小大小。
-
Default Value:
0.0
modelMatrix : Matrix4
Transforms.eastNorthUpToFixedFrame
。
-
Default Value:
Matrix4.IDENTITY
Example:
var origin = LSGlobe.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
m.modelMatrix = LSGlobe.Transforms.eastNorthUpToFixedFrame(origin);
-
Default Value:
false
readonly readyPromise : Promise.< Model >
该承诺在渲染模型的第一个帧之前在帧的末尾得到解决。
Example:
// Play all animations at half-speed when the model is ready to render
LSGlobe.when(model.readyPromise).then(function(model) {
model.activeAnimations.addAll({
multiplier : 0.5
});
}).otherwise(function(error){
window.alert(error);
});
See:
-
Default Value:
1.0
shadows : ShadowMode
-
Default Value:
ShadowMode.ENABLED
-
Default Value:
true
silhouetteColor : Color
-
Default Value:
Color.RED
-
Default Value:
0.0
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 子>
cmgen
工具对环境图进行预处理来获得
Google的Filament项目
。这还会生成一个KTX文件,该文件可以提供给
Model#specularEnvironmentMaps
。
Demo:
See:
Methods
static LSGlobe.Model.fromGltf (options) → Model
从glTF资产创建模型。当模型准备好渲染时,即当外部二进制图像并下载着色器文件并创建WebGL资源,即可解析
Model#readyPromise
。
该模型可以是扩展名为.gltf的传统glTF资产,也可以是扩展名为.glb的Binary glTF。
Cesium支持具有以下扩展名的glTF资产:
- KHR_binary_glTF(glTF 1.0)
- KHR_materials_common(glTF 1.0)
- WEB3D_quantized_attributes(glTF 1.0)
- AGI_articulations
- KHR_blend(草稿)
- KHR_draco_mesh_compression
- KHR_materials_pbrSpecularGlossiness
- KHR_materials_unlit
- KHR_techniques_webgl
- KHR_texture_transform
为了进行高精度渲染,Cesium支持 CESIUM_RTC 扩展,介绍了CESIUM_RTC_MODELVIEW参数语义,表示节点在WGS84坐标中转换相对于本地血统。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
Object with the following properties:
|
Returns:
Examples:
// Example 1. Create a model from a glTF asset
var model = scene.primitives.add(LSGlobe.Model.fromGltf({
url : './duck/duck.gltf'
}));
// Example 2. Create model and provide all properties and events
var origin = LSGlobe.Cartesian3.fromDegrees(-95.0, 40.0, 200000.0);
var modelMatrix = LSGlobe.Transforms.eastNorthUpToFixedFrame(origin);
var model = scene.primitives.add(LSGlobe.Model.fromGltf({
url : './duck/duck.gltf',
show : true, // default
modelMatrix : modelMatrix,
scale : 2.0, // double size
minimumPixelSize : 128, // never smaller than 128 pixels
maximumScale: 20000, // never larger than 20000 * model size (overrides minimumPixelSize)
allowPicking : false, // not pickable
debugShowBoundingVolume : false, // default
debugWireframe : false
}));
model.readyPromise.then(function(model) {
// Play all animations when the model is ready to render
model.activeAnimations.addAll();
});
Name | Type | Description |
---|---|---|
scene
|
Scene | 现场。 |
Returns:
真正
如果支持剪影;否则,返回
假
Throws:
-
DeveloperError :未加载模型。使用Model.readyPromise或等待Model.ready为真。
一旦物体被破坏,就不应使用。调用除
isDestroyed
将导致
DeveloperError
异常。因此,如示例中所述,将返回值(
undefined
)分配给对象。
Throws:
-
DeveloperError :此对象已销毁,即调用destroy()。
Example:
model = model && model.destroy();
See:
getMaterial (name) → ModelMaterial
name
属性的glTF材料。
Name | Type | Description |
---|---|---|
name
|
String | 材质的glTF名称。 |
Returns:
未定义
如果没有材料
名称
存在。
Throws:
-
DeveloperError :未加载模型。使用Model.readyPromise或等待Model.ready为真。
getMesh (name) → ModelMesh
name
属性的glTF网格。
Name | Type | Description |
---|---|---|
name
|
String | 网格的glTF名称。 |
Returns:
未定义
如果没有网格
名称
存在。
Throws:
-
DeveloperError :未加载模型。使用Model.readyPromise或等待Model.ready为真。
getNode (name) → ModelNode
name
属性的glTF节点。这用来在glTF动画之外修改动画的节点变换。
Name | Type | Description |
---|---|---|
name
|
String | 节点的glTF名称。 |
Returns:
未定义
如果没有节点
名称
存在。
Throws:
-
DeveloperError :未加载模型。使用Model.readyPromise或等待Model.ready为真。
Example:
// Apply non-uniform scale to node LOD3sp
var node = model.getNode('LOD3sp');
node.matrix = LSGlobe.Matrix4.fromScale(new LSGlobe.Cartesian3(5.0, 1.0, 1.0), node.matrix);
Returns:
真正
该物体是否被破坏;除此以外,
假
。
See:
Name | Type | Description |
---|---|---|
articulationStageKey
|
String | 关节的名称,空间和舞台的名称。 |
value
|
Number | 该阶段的发音数值。 |
Throws:
-
DeveloperError :未加载模型。使用Model.readyPromise或等待Model.ready为真。
Throws:
-
RuntimeError :无法加载外部参考。