CesiumWidget
隐式创建的。
contextOptions
参数详细信息:
默认值为:
{ webgl:{ alpha:false, 深度:是的, 模具:错误, 抗锯齿:是的, powerPreference:'高性能', premultipliedAlpha:true, reserveDrawingBuffer:false, failIfMajorPerformanceCaveat:false }, allowTextureFilterAnisotropic:true}
webgl
属性对应于
WebGLContextAttributes
用于创建WebGL上下文的对象。
webgl.alpha
的默认值为false,与标准的WebGL默认值相比可以提高性能是真的。如果应用程序需要使用alpha混合在其他HTML元素上方合成Cesium,请设置
webgl.alpha
设为true。
其他
webgl
属性与
WebGLContextAttributes
的WebGL默认值匹配。
allowTextureFilterAnisotropic
的默认值为true,当启用支持WebGL扩展。将其设置为false会提高性能,但会损害视觉质量,尤其是对于地平线视图。
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options
|
Object |
optional
Object with the following properties:
|
Throws:
-
DeveloperError :options和options.canvas是必需的。
Example:
// Create scene without anisotropic texture filtering
var scene = new LSGlobe.Scene({
canvas : canvas,
contextOptions : {
allowTextureFilterAnisotropic : false
}
});
See:
Members
backgroundColor : Color
Scene#skyBox
。
-
Default Value:
Color.BLACK
See:
readonly camera : Camera
-
Default Value:
false
-
Default Value:
true
确定执行哪些命令的功能。如以下示例所示,该函数接收命令的
owner
作为参数,并返回一个布尔值,指示是否命令应该被执行。
默认值为
undefined
,表示所有命令均已执行。
-
Default Value:
undefined
Example:
// Do not execute any commands.
scene.debugCommandFilter = function(command) {
return false;
};
// Execute only the billboard's commands. That is, only draw the billboard.
var billboards = new LSGlobe.BillboardCollection();
scene.debugCommandFilter = function(command) {
return command.owner === billboards;
};
当
Scene.debugShowFrustums
为
true
时,其中包含具有有关每个视锥执行的命令数量的统计信息的属性。
totalCommands
是已执行的命令总数,忽略交叠。
commandsInFrustums
是一个具有次数的数组命令是多余执行的,例如,有多少命令重叠两个或三个平截头体。
-
Default Value:
undefined
当
true
时,命令会随机阴影。这很有用用于性能分析,以查看场景或模型的哪些部分命令密集,可以从批处理中受益。
-
Default Value:
false
指示将显示深度信息的视锥。
-
Default Value:
1
显示每秒的帧数和帧之间的时间。
-
Default Value:
false
当
true
时,绘制轮廓以显示摄像机视锥的边界
-
Default Value:
false
当
true
时,命令将根据其平截头锥体着色交叠。最接近的视锥中的命令以红色标记,命令中的命令下一个最接近的是绿色,最远的平截头体中的命令是蓝色。如果命令重叠多个截头锥体,则颜色分量合并,例如,将前两个视锥重叠的命令设置为有色黄色。
-
Default Value:
false
显示指示的视锥的深度信息。
-
Default Value:
false
See:
See:
该值用于为多视锥的每个视锥创建近和远值。仅用于当
Scene#logarithmicDepthBuffer
为
false
时。当
logarithmicDepthBuffer
是
true
,请使用
Scene#logarithmicDepthFarToNearRatio
。
-
Default Value:
1000.0
fog : Fog
-
Default Value:
2.2
globe : Globe
readonly groundPrimitives : PrimitiveCollection
-
Default Value:
true
-
Default Value:
true
readonly imageryLayers : ImageryLayerCollection
false
,则3D Tiles将正常渲染。如果
true
,则分类的3D Tile几何形状将正常渲染,未分类的3D Tile几何图形将使用颜色乘以
Scene#invertClassificationColor
进行渲染。
-
Default Value:
false
invertClassificationColor : Color
Scene#invertClassification
为
true
时,未分类的3D Tile几何图形的突出显示颜色。
当颜色的Alpha值小于1.0时,3D Tiles的未分类部分将无法与3D Tiles的分类位置正确融合。
此外,当颜色的Alpha值小于1.0时,必须支持WEBGL_depth_texture和EXT_frag_depth WebGL扩展。
-
Default Value:
Color.WHITE
Scene#invertClassification
,则返回
true
。
readonly lastRenderTime : JulianDate
light : Light
该值用于为多视锥的每个视锥创建近和远值。仅用于当
Scene#logarithmicDepthBuffer
为
true
时。当
logarithmicDepthBuffer
是
false
,请使用
Scene#farToNearRatio
。
-
Default Value:
1e9
readonly mapMode2D : MapMode2D
readonly mapProjection : MapProjection
-
Default Value:
new GeographicProjection()
-
glGet
with
ALIASED_LINE_WIDTH_RANGE
.
See:
-
glGet
with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
See:
Scene#requestRenderMode
为
true
,则此值定义请求渲染之前允许的模拟时间。较低的值会增加渲染的帧数较高的值会减少渲染的帧数。如果
undefined
,则更改为模拟时间永远不会要求渲染。这个值会影响场景变化的渲染速率,例如照明,实体属性更新,和动画。
-
Default Value:
0.0
See:
-
Default Value:
0.0
mode : SceneMode
-
Default Value:
SceneMode.SCENE3D
moon : Moon
-
Default Value:
undefined
morphComplete : Event
-
Default Value:
Event()
morphStart : Event
-
Default Value:
Event()
-
Default Value:
1.0
-
Default Value:
1.75e6
Scene#pickPosition
函数,则返回
true
。
See:
true
,则启用使用深度缓冲区拾取半透明几何体的功能。请注意,
Scene#useDepthPicking
也必须为true才能使其正常工作。
必须在两次选择之间调用渲染。
启用后性能会下降。还有额外的绘制调用以写入深度半透明的几何体。
-
Default Value:
false
Example:
// picking the position of a translucent primitive
viewer.screenSpaceEventHandler.setInputAction(function onLeftClick(movement) {
var pickedFeature = viewer.scene.pick(movement.position);
if (!LSGlobe.defined(pickedFeature)) {
// nothing picked
return;
}
viewer.scene.render();
var worldPosition = viewer.scene.pickPosition(movement.position);
}, LSGlobe.ScreenSpaceEventType.LEFT_CLICK);
postProcessStages : PostProcessStageCollection
readonly postRender : Event
See:
readonly postUpdate : Event
readonly preRender : Event
See:
readonly preUpdate : Event
See:
readonly primitives : PrimitiveCollection
readonly renderError : Event
render
函数内引发错误时将引发的事件。Scene实例和引发的错误是传递给事件处理程序的仅有两个参数。默认情况下,引发此事件后不会重新引发错误,但是可以通过设置
rethrowRenderErrors
属性。
true
,则仅根据场景中的更改确定是否需要渲染帧。启用可以提高应用程序的性能,但需要使用
'>
Scene#requestRender
在此模式下显式渲染新框架。进行更改后,在许多情况下这是必要的API的其他部分。
-
Default Value:
false
See:
render
中发生的异常,以提高
renderError
事件。如果此属性为true,则会重新引发错误事件引发之后。如果此属性为false,则
render
函数引发事件后通常返回。
-
Default Value:
false
readonly screenSpaceCameraController : ScreenSpaceCameraController
shadowMap : ShadowMap
skyAtmosphere : SkyAtmosphere
-
Default Value:
undefined
skyBox : SkyBox
SkyBox
用于绘制星星。
-
Default Value:
undefined
See:
true
。
sphericalHarmonicCoefficients : Array.< Cartesian3 >
sun : Sun
Sun
。
-
Default Value:
undefined
-
Default Value:
true
terrainProvider : TerrainProvider
readonly terrainProviderChanged : Event
true
时,启用使用深度缓冲区的拾取。
-
Default Value:
true
true
时,将场景分为两个视口,左右眼具有立体视图。用于硬纸板和WebVR。
-
Default Value:
false
Methods
cartesianToCanvasCoordinates (position, result ) → Cartesian2
Name | Type | Description |
---|---|---|
position
|
Cartesian3 | 笛卡尔坐标中的位置。 |
result
|
Cartesian2 | 可选 一个可选对象,用于返回转换为画布坐标的输入位置。 |
Returns:
未定义
如果输入位置在椭球的中心附近。
Example:
// Output the canvas position of longitude/latitude (0, 0) every time the mouse moves.
var scene = widget.scene;
var ellipsoid = scene.globe.ellipsoid;
var position = LSGlobe.Cartesian3.fromDegrees(0.0, 0.0);
var handler = new LSGlobe.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(movement) {
console.log(scene.cartesianToCanvasCoordinates(position));
}, LSGlobe.ScreenSpaceEventType.MOUSE_MOVE);
clampToHeight (cartesian, objectsToExclude , width , result ) → Cartesian3
undefined
(如果没有场景几何要夹紧)。可用于夹紧场景中的地球物体,3D瓷砖或图元。
此功能仅钳制当前视图中渲染的Globe瓷砖和3D Tiles。夹到所有其他原语,无论其可见性如何。
Name | Type | Default | Description |
---|---|---|---|
cartesian
|
Cartesian3 | 笛卡尔位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不可钳制的图元,实体或3D Tiles功能列表。 | |
width
|
Number |
0.1
|
可选 交叉口的宽度(以米为单位)。 |
result
|
Cartesian3 | 可选 返回夹紧位置的可选对象。 |
Returns:
未定义
如果没有场景几何要固定。
Throws:
-
DeveloperError :clampToHeight仅在3D模式下受支持。
-
DeveloperError :clipToHeight需要深度纹理支持。检查clipToHeightSupported。
Example:
// Clamp an entity to the underlying scene geometry
var position = entity.position.getValue(LSGlobe.JulianDate.now());
entity.position = viewer.scene.clampToHeight(position);
See:
clampToHeightMostDetailed (cartesians, objectsToExclude , width ) → Promise.<Array.< Cartesian3 >>
Scene#clampToHeight
查询以查询
Cartesian3
职位在场景中使用3D Tileset的最大细节级别。返回在以下情况下解决的承诺查询完成。每个位置均已修改。如果由于没有几何形状而无法夹紧位置可以在该位置进行采样,或者发生另一个错误,数组中的元素设置为undefined。
Name | Type | Default | Description |
---|---|---|---|
cartesians
|
Array.< Cartesian3 > | 笛卡尔位置更新为夹紧位置。 | |
objectsToExclude
|
Array.<Object> | 可选 不可钳制的图元,实体或3D Tiles功能列表。 | |
width
|
Number |
0.1
|
可选 交叉口的宽度(以米为单位)。 |
Returns:
Throws:
-
DeveloperError :仅在3D模式下支持clipToHeightMostDetailed。
-
DeveloperError :clipToHeightMostDetailed需要深度纹理支持。检查clipToHeightSupported。
Example:
var cartesians = [
entities[0].position.getValue(LSGlobe.JulianDate.now()),
entities[1].position.getValue(LSGlobe.JulianDate.now())
];
var promise = viewer.scene.clampToHeightMostDetailed(cartesians);
promise.then(function(updatedCartesians) {
entities[0].position = updatedCartesians[0];
entities[1].position = updatedCartesians[1];
}
See:
一旦物体被破坏,就不应使用。调用除
isDestroyed
将导致
DeveloperError
异常。因此,如示例中所述,将返回值(
undefined
)分配给对象。
Throws:
-
DeveloperError :此对象已销毁,即调用destroy()。
Example:
scene = scene && scene.destroy();
See:
Name | Type | Default | Description |
---|---|---|---|
windowPosition
|
Cartesian2 | 窗口坐标以执行拾取。 | |
limit
|
Number | 可选 如果提供的话,请在收集到这么多的镐后停止钻孔。 | |
width
|
Number |
3
|
可选 拾取矩形的宽度。 |
height
|
Number |
3
|
可选 拾取矩形的高度。 |
Returns:
Throws:
-
DeveloperError :windowPosition未定义。
Example:
var pickedObjects = scene.drillPick(new LSGlobe.Cartesian2(100.0, 200.0));
See:
Name | Type | Description |
---|---|---|
format
|
String | 纹理格式。可以是格式名称或WebGL扩展名称,例如s3tc或WEBGL_compressed_texture_s3tc。 |
Returns:
Returns:
真正
该物体是否被破坏;除此以外,
假
。
See:
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 完成过渡动画的时间(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 完成过渡动画的时间(以秒为单位)。 |
Name | Type | Default | Description |
---|---|---|---|
duration
|
Number |
2.0
|
可选 完成过渡动画的时间(以秒为单位)。 |
拾取3D Tiles贴图集的特征后,
pick
返回
Cesium3DTileFeature
对象。
Name | Type | Default | Description |
---|---|---|---|
windowPosition
|
Cartesian2 | 窗口坐标以执行拾取。 | |
width
|
Number |
3
|
可选 拾取矩形的宽度。 |
height
|
Number |
3
|
可选 拾取矩形的高度。 |
Returns:
Example:
// On mouse over, color the feature yellow.
handler.setInputAction(function(movement) {
var feature = scene.pick(movement.endPosition);
if (feature instanceof LSGlobe.Cesium3DTileFeature) {
feature.color = LSGlobe.Color.YELLOW;
}
}, LSGlobe.ScreenSpaceEventType.MOUSE_MOVE);
pickPosition (windowPosition, result ) → Cartesian3
从2D深度缓冲区中重建的位置可能与那些位置略有不同在3D和哥伦布视图中重建。这是由于分布差异造成的透视图和正投影的深度值。
将
Scene#pickTranslucentDepth
设置为
true
,以包括半透明图元;否则,这本质上会选择半透明的基元。
Name | Type | Description |
---|---|---|
windowPosition
|
Cartesian2 | 窗口坐标以执行拾取。 |
result
|
Cartesian3 | 可选 恢复结果的对象。 |
Returns:
Throws:
-
DeveloperError :不支持从深度缓冲区中拾取。检查pickPositionSupported。
CesiumWidget
或
Viewer
是自动执行的。
Name | Type | Description |
---|---|---|
time
|
JulianDate | 可选 渲染的模拟时间。 |
undefined
场景几何要从其采样高度。输入位置的高度被忽略。可用于将物体夹在地球,3D瓷砖或场景中的图元。
此功能仅从当前视图中渲染的Globe瓷砖和3D Tile采样高度。样品高度不受可见性影响。
Name | Type | Default | Description |
---|---|---|---|
position
|
Cartographic | 制图位置到样品高度的起点。 | |
objectsToExclude
|
Array.<Object> | 可选 不能采样高度的基本体,实体或3D Tiles功能列表。 | |
width
|
Number |
0.1
|
可选 交叉口的宽度(以米为单位)。 |
Returns:
未定义
如果没有场景几何要从其采样高度。
Throws:
-
DeveloperError :sampleHeight仅在3D模式下受支持。
-
DeveloperError :sampleHeight需要深度纹理支持。检查sampleHeightSupported。
Example:
var position = new LSGlobe.Cartographic(-1.31968, 0.698874);
var height = viewer.scene.sampleHeight(position);
console.log(height);
See:
sampleHeightMostDetailed (positions, objectsToExclude , width ) → Promise.<Array.< Cartographic >>
Scene#sampleHeight
查询以查询
Cartographic
职位在场景中使用3D Tileset的最大细节级别。输入位置的高度将被忽略。返回查询完成时解决的promise。每个点的高度都已修改。如果由于无法在该位置采样几何而无法确定高度,或者发生了另一个错误,高度设置为未定义。
Name | Type | Default | Description |
---|---|---|---|
positions
|
Array.< Cartographic > | 制图位置将根据采样高度进行更新。 | |
objectsToExclude
|
Array.<Object> | 可选 不能采样高度的基本体,实体或3D Tiles功能列表。 | |
width
|
Number |
0.1
|
可选 交叉口的宽度(以米为单位)。 |
Returns:
Throws:
-
DeveloperError :sampleHeightMostDetailed仅在3D模式下受支持。
-
DeveloperError :sampleHeightMostDetailed需要深度纹理支持。检查sampleHeightSupported。
Example:
var positions = [
new LSGlobe.Cartographic(-1.31968, 0.69887),
new LSGlobe.Cartographic(-1.10489, 0.83923)
];
var promise = viewer.scene.sampleHeightMostDetailed(positions);
promise.then(function(updatedPosition) {
// positions[0].height and positions[1].height have been updated.
// updatedPositions is just a reference to positions.
}