Scene
优质
小牛编辑
137浏览
2023-12-01
new LSGlobe.Scene(options)
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
- 获取当前场景的相机对象
readonlycanvas : Canvas
- 获取与场景绑定的canvas对象
readonlydrawingBufferHeight : Number
- WebGL中绘制缓存的高度
readonlydrawingBufferWidth : Number
- WebGL中绘制缓存的宽度
eyeSeparation : Number
- 用于纸板或WebVR的眼睛间隔距离(米)
focalLength : Number
- 使用纸板或WebVR时,使用的焦距
globe : Globe
- 获取或设置深度测试
readonlygroundPrimitives : PrimitiveCollection
- 获取groundPrimitives对象集合
readonlyid : String
- 获取场景的唯一标示
readonlyimageryLayers : ImageryLayerCollection
- 获取三维地球上影像层的集合
imagerySplitPosition : Number
- 获取或设置视口中影像分割条的位置。取值范围为0.0~1.0
invertClassification : Boolean
- 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
readonlylastRenderTime : JulianDate
- 获取上次渲染场景时的模拟时间。如果场景尚未渲染,则返回undefined
mapMode2D : Boolean
- 用来设置2D地图是否可以旋转,或者是否可以无限制的在水平方向上移
readonlymapProjection : MapProjection
- 获取在二维和Columbus 视图模式下使用的地图投影
- Default Value:
new GeographicProjection()
readonlymaximumAliasedLineWidth : Number
- 在像素里所能显示的最大线宽。支持用webGL去实现。至少是一个像素
- glGet with
ALIASED_LINE_WIDTH_RANGE
.
See:
- glGet with
readonlymaximumCubeMapSize : Number
- 立方体纹理边缘的最大像素长度
- glGet with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
See:
- glGet with
maximumRenderTimeChange : Number
- 如果
Scene#requestRenderMode
是true,则此值定义在请求呈现之前允许的模拟时间的最大更改。较低的值会增加渲染帧的帧数,较高的值会减少渲染的帧数。如果undefined,对模拟时间的更改将永远不会请求渲染。此值会影响场景中的渲染率,如光照、实体属性更新和动画- Default Value:
0.5
See:
minimumDisableDepthTestDistance : Number
- 距离相机的距离(此时广告板,标签和点等的深度测试无效)例如,为了防止裁剪地形。当把这个属性值设置为0的时候,深度测试就会一直开启;当值比0小的时候,深度测试将一直关闭。如果设置了广告板,标签,点的disableDepthTestDistance属性值将会覆盖它
- Default Value:
0.0
mode : SceneMode
- 获取或者设置当前场景的模式
- Default Value:
SceneMode.SCENE3D
readonlypickPositionSupported : Boolean
- R如果支持拾取位置的功能,则返回true
readonlypitCollection : LSPitCollection
- 获取场景地形开挖对象的集合
readonlypostRender : Event
- 获取在渲染场景后立即引发的事件。事件的订阅者接收scene实例作为第一个参数,将当前时间作为第二个参数
readonlypostUpdate : Event
- 获取在场景更新后以及渲染场景之前立即引发的事件。事件的订阅者接收scene作为第一个参数,将当前事件作为第二个参数
readonlypreRender : Event
- 获取在场景更新后以及渲染场景之前将引发的事件。事件的订阅者接收scene作为第一个参数,将当前时间作为第二个参数
readonlypreUpdate : Event
- 获取在更新或呈现场景之前将引发的事件,事件的订阅接受scene实例作为第一个参数,将当前事件作为第二个参数
readonlyprimitives : PrimitiveCollection
- 获取primitives对象的集合
readonlyrenderError : Event
- 当render函数里有错误发生时,触发此事件
requestRenderMode : Boolean
- 当场景需要渲染的时候,渲染帧就发生。启用它可以提高程序的性能,但是需要使用
Scene#requestRender
在这种模式下显式地呈现新框架。在对API的其他部分的场景进行改进之后,在很多情况下这是必要的 readonlyscene3DOnly : Boolean
- 获取场景是否仅支3D显示
readonlyscreenSpaceCameraController : ScreenSpaceCameraController
- 获取相机输入的控制参数
readonlysetSurfaceTransparency : LSSetSurfaceTransparency
- 场景地表透明度
terrainLayers : TerrainProvider
- 获取或设置地球的地形服务提供者。
readonlyterrainProviderChanged : Event
- 地形服务提供者改变事件
useSingleFrustum : Boolean
- 获取或设置场景是否用单个视景体
- Default Value:
true
useWebVR : Boolean
- 获取或设置是否开启WebVR
- Default Value:
false
readonlywaterCollection : LSWaterCollection
- 获取场景水面对象的集合
Methods
cartesianToCanvasCoordinates(position, result) → Cartesian2
- 将笛卡尔坐标转换成canvas坐标。这通常用于去定位一个HTML元素(与之在同样屏幕位置的场景中的一个对象)
Name Type Description position
笛卡尔坐标系中的位置. 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);
cartesianToCanvasCoordinates(position, result) → Cartesian2
- 将笛卡尔坐标转换成canvas坐标。这通常用于去定位一个HTML元素(与之在同样屏幕位置的场景中的一个对象)
Name Type Description position
在笛卡尔坐标系中的位置 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);
completeMorph()
- 立即结束一个有效的转换
destroy() → undefined
- 通过这个对象销毁webGL资源。销毁一个对象时候允许确定性的webGL资源的释放,而不是依靠垃圾回收站去销毁这个对象
Returns:
Throws:
DeveloperError
: 对象被销毁响应destroy()函数
Example:
scene = scene && scene.destroy();
See:
drillPick(windowPosition, limit) → Array.<Object>
- 返回一系列对象。对于所有在特定屏幕坐标位置的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));
getCompressedTextureFormatSupported(format) → boolean
- 判断是否支持压缩纹理形式
Name Type Description format
String
纹理格式。可以是格式名称或WebGL扩展名称,例如 s3tc或WEBGL_compressed_texture_s3tc Returns:
是否支持该格式
isDestroyed() → Boolean
- 如果对象被销毁返回true,否则,false
Returns:
true
如果对象被销毁 否则,false
.See:
morphTo2D(duration)
- 异步转换场景2D模式.
Name Type Default Description duration
Number
2.0
optional
时间的值,以秒为单位,表示结束转换所需要的时间 morphTo3D(duration)
- 异步地把场景转成3D
Name Type Default Description duration
Number
2.0
optional
时间的值,以秒为单位,表示结束转换所需要的时间 morphToColumbusView(duration)
- 异步地把场景转换成Columbus View
Name Type Default Description duration
Number
2.0
optional
时间的值,以秒为单位,表示结束转换所需要的时间 pick(windowPosition) → Object
- 返回一个拥有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
optional
待还原结果的对象Returns:
笛卡尔坐标位置
Throws:
DeveloperError
: 不支持从深度纹理中拾取,请检查pickPositionSupported.
requestRender()
- Requests a new rendered frame when
Scene#requestRenderMode
is set totrue
.The render rate will not exceed theCesiumWidget#targetFrameRate
.