三维场景类,它是所有三维图形对象和状态的容器,通常不直接创建场景,而是由CesiumWidget隐式创建。
contextOptions参数详细信息
默认值为: { webgl : { alpha : false, depth : true, stencil : false, antialias : true, premultipliedAlpha : true, preserveDrawingBuffer : false, failIfMajorPerformanceCaveat : false },
allowTextureFilterAnisotropic : true }
webgl属性对应用于创建WebGL环境的WebGLContextAttributes对象。
webgl.alpha默认为false,与标准WebGL默认值为true相比,这可以提高性能。
其他webgl属性与WebGLContextAttributes.的WebGL默认值匹配。
allowTextureFilterAnisotropic默认为true,这允许在支持WebGL扩展时进行各向异性纹理过滤。设置为false可以提高性能,但会损害视觉质量,特别是对于水平视角
Name | Type | Description | ||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
options |
Object |
optional
对象具有以下属性:
|
Throws:
-
DeveloperError : options and options.canvas are required.
- CesiumWidget
- WebGLContextAttributes
Example:
// 创建一个场景
var scene = new LSGlobe.Scene({
canvas : canvas,
contextOptions : {
allowTextureFilterAnisotropic : false
}
});
See:
Members
-
readonlycamera : Camera
-
获取当前场景的相机对象
-
获取与场景绑定的canvas对象
-
WebGL中绘制缓存的高度
See:
-
WebGL中绘制缓存的宽度
See:
-
用于纸板或WebVR的眼睛间隔距离(米)
-
使用纸板或WebVR时,使用的焦距
-
globe : Globe
-
获取或设置深度测试
-
获取groundPrimitives对象集合
-
获取场景的唯一标示
-
readonlyimageryLayers : ImageryLayerCollection
-
获取三维地球上影像层的集合
-
获取或设置视口中影像分割条的位置。取值范围为0.0~1.0
-
3D Tiles正常渲染时,该值为false。分类3D Tile几何体将正常渲染,未分类的3D Tile几何体使用颜色乘以
Scene#invertClassificationColor
渲染-
Default Value:
false
-
invertClassificationColor : Color
-
当
Scene#invertClassification
为true时,未分类的3D Tile为高亮显示。当alpha值小于1.0时,3D Tile的未分类部分 将无法与3D Tile的分类位置正确混合。此外,当颜色的alpha值小于1.0时,必须支持WEBGL_depth_texture和EXT_frag_depth WebGL扩展-
Default Value:
Color.WHITE
-
获取上次渲染场景时的模拟时间。如果场景尚未渲染,则返回undefined
-
用来设置2D地图是否可以旋转,或者是否可以无限制的在水平方向上移
-
获取在二维和Columbus 视图模式下使用的地图投影
-
Default Value:
new GeographicProjection()
-
在像素里所能显示的最大线宽。支持用webGL去实现。至少是一个像素
- glGet with
ALIASED_LINE_WIDTH_RANGE
.
See:
- glGet with
-
立方体纹理边缘的最大像素长度
- glGet with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
See:
- glGet with
-
如果
Scene#requestRenderMode
是true,则此值定义在请求呈现之前允许的模拟时间的最大更改。 较低的值会增加渲染帧的帧数,较高的值会减少渲染的帧数。如果undefined,对模拟时间的更改将永远不会请求渲染。 此值会影响场景中的渲染率,如光照、实体属性更新和动画-
Default Value:
0.5
See:
-
距离相机的距离(此时广告板,标签和点等的深度测试无效) 例如,为了防止裁剪地形。当把这个属性值设置为0的时候,深度测试就会一直开启;当值比0小的时候,深度测试将一直关闭。 如果设置了广告板,标签,点的disableDepthTestDistance属性值将会覆盖它
-
Default Value:
0.0
-
获取或者设置当前场景的模式
-
Default Value:
SceneMode.SCENE3D
-
R如果支持拾取位置的功能,则返回true
-
readonlypitCollection : LSPitCollection
-
获取场景地形开挖对象的集合
-
获取在渲染场景后立即引发的事件。事件的订阅者接收scene实例作为第一个参数,将当前时间作为第二个参数
-
获取在场景更新后以及渲染场景之前立即引发的事件。事件的订阅者接收scene作为第一个参数,将当前事件作为第二个参数
-
获取在场景更新后以及渲染场景之前将引发的事件。事件的订阅者接收scene作为第一个参数,将当前时间作为第二个参数
-
获取在更新或呈现场景之前将引发的事件,事件的订阅接受scene实例作为第一个参数,将当前事件作为第二个参数
-
获取primitives对象的集合
-
当render函数里有错误发生时,触发此事件
-
当场景需要渲染的时候,渲染帧就发生。启用它可以提高程序的性能,但是需要使用
Scene#requestRender
在这种模式下显式地呈现新框架。在对API的其他部分的场景进行改进之后,在很多情况下这是必要的-
Default Value:
false
See:
-
获取场景是否仅支3D显示
-
获取相机输入的控制参数
-
场景地表透明度
-
获取或设置地球的地形服务提供者。
-
地形服务提供者改变事件
-
获取或设置场景是否用单个视景体
-
Default Value:
true
-
获取或设置是否开启WebVR
-
Default Value:
false
-
获取场景水面对象的集合
Methods
-
将笛卡尔坐标转换成canvas坐标。这通常用于去定位一个HTML元素(与之在同样屏幕位置的场景中的一个对象)
Name Type Description position
Cartesian3 笛卡尔坐标系中的位置. result
Cartesian2 optional 可选对象(返回转换成canvas坐标系时的输入坐标) Returns:
如果未提供的话,则返回修改过的结果参数或者是新的笛卡尔二维坐标值。如果输入位置靠近球心,值是未定义的Example:
// 随着鼠标移动,每时每刻都输出一个canvas的(0,0)格式的经纬度位置信息 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);
-
将笛卡尔坐标转换成canvas坐标。这通常用于去定位一个HTML元素(与之在同样屏幕位置的场景中的一个对象)
Name Type Description position
Cartesian3 在笛卡尔坐标系中的位置 result
Cartesian2 optional 可选对象(返回转换成canvas坐标系时的输入坐标) Returns:
如果未提供的话,则返回修改过的结果参数或者是新的笛卡尔二维坐标值。如果输入位置靠近球心,值是未定义的Example:
// 随着鼠标移动,每时每刻都输出一个canvas的(0,0)格式的经纬度位置信息 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);
-
立即结束一个有效的转换
-
通过这个对象销毁webGL资源。销毁一个对象时候允许确定性的webGL资源的释放,而不是依靠垃圾回收站去销毁这个对象
Returns:
Throws:
-
DeveloperError : 对象被销毁响应destroy()函数
Example:
scene = scene && scene.destroy();
See:
-
-
返回一系列对象。对于所有在特定屏幕坐标位置的primitives来说,每个对象都有一个primitive属性。 其他属性的设置也会依赖于primitive的类型。返回列表中的primitives是通过他们在场景中的可见顺序(从前往后)进行排序
Name Type Description windowPosition
Cartesian2 执行拾取的窗口坐标 limit
Number optional 如果提供这个参数,在进行多次的pick之后将会停止drilling. Returns:
对象数组,每个对象包含一个选取的primitives.Throws:
-
DeveloperError : 窗口坐标未定义
Example:
var pickedObjects = scene.drillPick(new LSGlobe.Cartesian2(100.0, 200.0));
-
-
判断是否支持压缩纹理形式
Name Type Description format
String 纹理格式。可以是格式名称或WebGL扩展名称,例如 s3tc或WEBGL_compressed_texture_s3tc Returns:
是否支持该格式 -
如果对象被销毁返回true,否则,false
Returns:
true
如果对象被销毁 否则,false
.See:
-
异步转换场景2D模式.
Name Type Default Description duration
Number 2.0
optional 时间的值,以秒为单位,表示结束转换所需要的时间 -
异步地把场景转成3D
Name Type Default Description duration
Number 2.0
optional 时间的值,以秒为单位,表示结束转换所需要的时间 -
异步地把场景转换成Columbus View
Name Type Default Description duration
Number 2.0
optional 时间的值,以秒为单位,表示结束转换所需要的时间 -
返回一个拥有primitive属性的对象(特定窗口坐标对应的场景中的第一个(最上面)的primitive对象。 或者返回undefined,如果定位处没有对象, 其他的属性的设置很有可能依赖于primitive对象的类, Dtiles对象被拾取,pick方法返回3DTileFeature对象
Name Type Description windowPosition
Cartesian2 执行拾取的窗口坐标 Returns:
包含拾取的primitive对象Throws:
-
DeveloperError : 窗口坐标未定义
Example:
// 鼠标移动时,设置feature颜色为黄色 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
-
从屏幕位置和深度纹理中获取笛卡尔坐标
Name Type Description windowPosition
Cartesian2 执行拾取的窗口坐标 result
Cartesian3 optional 待还原结果的对象 Returns:
笛卡尔坐标位置Throws:
-
DeveloperError : 不支持从深度纹理中拾取,请检查pickPositionSupported.
-
-
Requests a new rendered frame when
Scene#requestRenderMode
is set totrue
. The render rate will not exceed theCesiumWidget#targetFrameRate
.