BMWidget
隱式創(chuàng)建。 contextOptions
參數(shù)詳細信息:
默認值為:
{
webgl : {
alpha : false,
depth : true,
stencil : false,
antialias : true,
premultipliedAlpha : true,
preserveDrawingBuffer : false,
failIfMajorPerformanceCaveat : false
},
allowTextureFilterAnisotropic : true
}
webgl
屬性對應于用于創(chuàng)建的WebGLContextAttributes對象 WebGL上下文。
webgl.alpha
的默認值為false,與標準的WebGL默認值為true相比,可以提高性能。 如果應用程序需要使用alpha混合在其他HTML元素上方合成,請將webgl.alpha
設置為true。
其他webgl
屬性與WebGLContextAttributes的WebGL默認值匹配。
allowTextureFilterAnisotropic
的默認值為true,當支持WebGL擴展時,它將啟用各向異性紋理過濾。 將其設置為false將提高性能,但會損害視覺質量,尤其是對于地平線視圖。
Parameters:
(Object)
Name | Description |
---|---|
options.canvas
Canvas
|
要為其創(chuàng)建場景的HTML畫布元素。 |
options.contextOptions
Object
|
上下文和WebGL創(chuàng)建屬性。詳見上文。 |
options.creditContainer
Element
|
顯示學分的HTML元素。 |
options.creditViewport
Element
|
顯示信用彈出窗口的HTML元素。如果未指定,則視區(qū)將作為畫布的同級添加。 |
options.mapProjection
MapProjection
default new GeographicProjection()
|
要在二維和哥倫布視圖模式中使用的地圖投影。 |
options.orderIndependentTranslucency
Boolean
default true
|
如果為true,并且配置支持它,則使用與順序無關的半透明。 |
options.scene3DOnly
Boolean
default false
|
如果為真,則優(yōu)化3D模式的內存使用和性能,但禁用使用二維或哥倫布視圖的功能。 |
options.terrainExaggeration
Number
default 1.0
|
用于放大地形的標量。請注意,地形放大不會修改任何其他基本體,因為它們是相對于橢球體定位的。 |
options.shadows
Boolean
default false
|
確定陰影是否由太陽投射。 |
options.mapMode2D
MapMode2D
default MapMode2D.INFINITE_SCROLL
|
確定二維地圖是可旋轉的還是可以沿水平方向無限滾動。 |
options.requestRenderMode
Boolean
default false
|
如果為“真”,則僅在場景中的更改決定需要時才會渲染幀。啟用可以提高應用程序的性能,但需要使用Scene#requestRender 在此模式下顯式呈現(xiàn)新幀。在許多情況下,在對API其他部分中的場景進行更改之后,這是必需的。
|
options.maximumRenderTimeChange
Number
default 0.0
|
如果requestrendermode為true,則此值定義請求呈現(xiàn)之前允許的模擬時間的最大更改。 |
Example
// Create scene without anisotropic texture filtering
var scene = new bmgl.Scene({
canvas : canvas,
contextOptions : {
allowTextureFilterAnisotropic : false
}
});
Throws
-
DeveloperError : 選項和選項.canvas是必需的。
Members
backgroundColor : Color
Scene#skyBox
未定義。
-
Default Value:
Color.BLACK
See:
(readonly) camera : Camera
(readonly) canvas : Canvas
(readonly) clampToHeightSupported : Boolean
completeMorphOnUserInput : Boolean
-
Default Value:
true
debugCommandFilter : function
確定執(zhí)行哪些命令的函數(shù)。如下面的示例所示,函數(shù)接收命令的owner
作為參數(shù),并返回一個布爾值,指示是否應執(zhí)行命令。
默認為undefined
,表示執(zhí)行所有命令。
-
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 bmgl.BillboardCollection();
scene.debugCommandFilter = function(command) {
return command.owner === billboards;
};
(readonly) debugFrustumStatistics : Object
當Scene.debugShowFrustums
為true
時,這包含屬性,統(tǒng)計每個截錐執(zhí)行的命令數(shù)。totalCommands
是執(zhí)行的命令總數(shù),忽略重疊。commandsInFrustums
是一個具有重復執(zhí)行命令次數(shù)的數(shù)組,例如,有多少命令與兩個或三個截錐重疊。
-
Default Value:
undefined
debugShowCommands : Boolean
當true
時,命令隨機著色。這對于性能分析很有用,可以查看場景或模型的哪些部分是命令密集的,并且可以從批處理中受益。
-
Default Value:
false
debugShowDepthFrustum : Number
表示哪個截錐將顯示深度信息。
-
Default Value:
1
debugShowFramesPerSecond : Boolean
顯示每秒幀數(shù)和幀之間的時間。
-
Default Value:
false
debugShowFrustumPlanes : Boolean
當true
時,繪制輪廓以顯示相機截錐的邊界
-
Default Value:
false
debugShowFrustums : Boolean
當true
時,命令將根據(jù)它們重疊的截錐體進行著色。最近截錐體中的命令為紅色,下一個最近截錐體中的命令為綠色,最遠截錐體中的命令為藍色。如果一個命令與多個截錐重疊,則組合顏色組件,例如,與前兩個截錐重疊的命令為黃色。
-
Default Value:
false
debugShowGlobeDepth : Boolean
顯示所示截錐的深度信息。
-
Default Value:
false
(readonly) drawingBufferHeight : Number
See:
(readonly) drawingBufferWidth : Number
See:
eyeSeparation : Number
farToNearRatio : Number
該值用于為多個截錐體的每個截錐體創(chuàng)建近、遠值。僅當Scene#logarithmicDepthBuffer
為false
時使用。當logarithmicDepthBuffer
為true
時,使用Scene#logarithmicDepthFarToNearRatio
。
-
Default Value:
1000.0
focalLength : Number
fog : Fog
gamma : Number
-
Default Value:
2.2
globe : Globe
(readonly) groundPrimitives : PrimitiveCollection
highDynamicRange : Boolean
-
Default Value:
true
highDynamicRangeSupported : Boolean
-
Default Value:
true
(readonly) id : String
(readonly) imageryLayers : ImageryLayerCollection
imagerySplitPosition : Number
invertClassification : Boolean
false
時,3D瓦片將正常呈現(xiàn)。當true
時,分類的3D瓦片幾何體將正常呈現(xiàn),而非分類的3D瓦片幾何體將以乘以Scene#invertClassificationColor
的顏色呈現(xiàn)。
-
Default Value:
false
invertClassificationColor : Color
Scene#invertClassification
為true
時,未分類的3D瓦片幾何體的突出顯示顏色。當顏色的alpha小于1.0時,3D瓦片的未分類部分將無法與3D瓦片的分類位置正確混合。
{此外,當顏色的alpha小于1.0時,必須支持WebGL{深度{紋理和擴展{深度WebGL擴展。
-
Default Value:
Color.WHITE
(readonly) invertClassificationSupported : Boolean
Scene#invertClassification
,則返回true
。
(readonly) lastRenderTime : JulianDate
logarithmicDepthBuffer : Boolean
logarithmicDepthFarToNearRatio : Number
該值用于為多個截錐體的每個截錐體創(chuàng)建近、遠值。僅當Scene#logarithmicDepthBuffer
為true
時使用。當logarithmicDepthBuffer
為false
時,使用Scene#farToNearRatio
。
-
Default Value:
1e9
mapMode2D : MapMode2D
(readonly) mapProjection : MapProjection
-
Default Value:
new GeographicProjection()
(readonly) maximumAliasedLineWidth : Number
- glGet with
ALIASED_LINE_WIDTH_RANGE
.
See:
(readonly) maximumCubeMapSize : Number
- glGet with
GL_MAX_CUBE_MAP_TEXTURE_SIZE
.
See:
maximumRenderTimeChange : Number
Scene#requestRenderMode
為true
,則此值定義請求渲染之前允許的模擬時間的最大更改。值越小,渲染的幀數(shù)越多,值越大,渲染的幀數(shù)越少。如果undefined
,對模擬時間的更改將永遠不會請求渲染。此值會影響場景中更改(如照明、實體屬性更新和動畫)的渲染速率。
-
Default Value:
0.5
See:
minimumDisableDepthTestDistance : Number
-
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()
morphTime : Number
-
Default Value:
1.0
nearToFarDistance2D : Number
-
Default Value:
1.75e6
(readonly) orderIndependentTranslucency : Boolean
(readonly) pickPositionSupported : Boolean
Scene#pickPosition
函數(shù),則返回true
。
See:
pickTranslucentDepth : Boolean
true
時,啟用使用深度緩沖區(qū)拾取半透明幾何體。請注意,Scene#useDepthPicking
也必須為真,才能使其工作。渲染必須在拾取之間調用。
啟用時性能會降低。有額外的繪圖調用來寫入半透明幾何體的深度。
-
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 (!bmgl.defined(pickedFeature)) {
// nothing picked
return;
}
viewer.scene.render();
var worldPosition = viewer.scene.pickPosition(movement.position);
}, bmgl.ScreenSpaceEventType.LEFT_CLICK);
postProcessStages : PostProcessStageCollection
(readonly) postRender : Event
(readonly) postUpdate : Event
(readonly) preRender : Event
(readonly) preUpdate : Event
(readonly) primitives : PrimitiveCollection
(readonly) renderError : Event
render
函數(shù)中引發(fā)錯誤時將引發(fā)的事件。場景實例和拋出的錯誤是傳遞給事件處理程序的唯一兩個參數(shù)。默認情況下,在引發(fā)此事件后不會重新引發(fā)錯誤,但可以通過設置rethrowRenderErrors
屬性來更改錯誤。
requestRenderMode : Boolean
true
時,僅當場景中的更改決定需要時才會渲染幀。啟用可以提高應用程序的性能,但需要使用Scene#requestRender
在此模式下顯式呈現(xiàn)新幀。在許多情況下,在對API其他部分中的場景進行更改之后,這是必需的。
-
Default Value:
false
See:
rethrowRenderErrors : Boolean
render
中發(fā)生的異常始終被捕獲,以便引發(fā)renderError
事件。如果此屬性為true,則在引發(fā)事件后重新引發(fā)錯誤。如果此屬性為假,則在引發(fā)事件后,render
函數(shù)將正常返回。
-
Default Value:
false
(readonly) sampleHeightSupported : Boolean
(readonly) scene3DOnly : Boolean
(readonly) screenSpaceCameraController : ScreenSpaceCameraController
shadowMap : ShadowMap
skyAtmosphere : SkyAtmosphere
-
Default Value:
undefined
skyBox : SkyBox
SkyBox
用于繪制星星。
-
Default Value:
undefined
See:
specularEnvironmentMaps : String
(readonly) specularEnvironmentMapsSupported : Boolean
true
。
sphericalHarmonicCoefficients : Array.<Cartesian3>
sun : Sun
-
Default Value:
undefined
sunBloom : Boolean
-
Default Value:
true
sunColor : Cartesian3
-
Default Value:
Cartesian3(1.8, 1.85, 2.0)
terrainExaggeration : Number
terrainProvider : TerrainProvider
(readonly) terrainProviderChanged : Event
useDepthPicking : Boolean
true
時,使用深度緩沖區(qū)啟用拾取。
-
Default Value:
true
useWebVR : Boolean
true
時,將場景分割為兩個具有左右眼立體視圖的視區(qū)。用于紙板和網絡虛擬現(xiàn)實。
-
Default Value:
false
Methods
cartesianToCanvasCoordinates(position, result) → {Cartesian2}Parameters:
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 = bmgl.Cartesian3.fromDegrees(0.0, 0.0);
var handler = new bmgl.ScreenSpaceEventHandler(scene.canvas);
handler.setInputAction(function(movement) {
console.log(scene.cartesianToCanvasCoordinates(position));
}, bmgl.ScreenSpaceEventType.MOUSE_MOVE);
undefined
。可用于將對象夾持到場景中的球體、三維平鋪或基本體上。此功能僅限于當前視圖中呈現(xiàn)的球形瓦片和三維瓦片。鉗制到所有其他基本體,而不管它們的可見性如何。
Parameters:
(Array.<Object>)
基本體、實體或三維平鋪特征的列表,不夾在其中。
(Number)
(default 0.1
)
交叉口體積的寬度(米)。
Example
// Clamp an entity to the underlying scene geometry
var position = entity.position.getValue(bmgl.JulianDate.now());
entity.position = viewer.scene.clampToHeight(position);
Throws
-
DeveloperError : ClampToHeight僅在3D模式下受支持。
-
DeveloperError : ClampToHeight需要深度紋理支持。檢查支架高度。
Scene#clampToHeight
查詢Cartesian3
位置數(shù)組。返回在查詢完成時解決的承諾。每個位置都在適當?shù)奈恢眠M行了修改。如果由于在該位置無法對幾何圖形進行采樣而無法夾緊某個位置,或者發(fā)生其他錯誤,則陣列中的元素將設置為“未定義”。
Parameters:
(Array.<Object>)
基本體、實體或三維平鋪特征的列表,不夾在其中。
(Number)
(default 0.1
)
交叉口體積的寬度(米)。
Example
var cartesians = [
entities[0].position.getValue(bmgl.JulianDate.now()),
entities[1].position.getValue(bmgl.JulianDate.now())
];
var promise = viewer.scene.clampToHeightMostDetailed(cartesians);
promise.then(function(updatedCartesians) {
entities[0].position = updatedCartesians[0];
entities[1].position = updatedCartesians[1];
}
Throws
-
DeveloperError : ClampToHeightMostDetailed僅在3D模式下受支持。
-
DeveloperError : ClamptoHeightMostDetailed需要深度紋理支持。檢查支架高度。
See:
一旦對象被破壞,就不應使用它;調用除
isDestroyed
以外的任何函數(shù)都將導致DeveloperError
異常。因此,將返回值(undefined
)賦給對象,如示例中所述。
Throws
-
DeveloperError : 此對象已被銷毀,即調用destroy()。
See:
Parameters:
(Number)
如果提供,在收集了這么多鎬后停止鉆孔。
(Number)
(default 3
)
拾取矩形的寬度。
(Number)
(default 3
)
拾取矩形的高度。
Throws
-
DeveloperError : WindowPosition未定義。
See:
Parameters:
(String)
紋理格式。可以是格式名或WebGL擴展名,例如S3TC或WebGL_compressed_texture_S3TC。
See:
Parameters:
(Number)
(default 2.0
)
過渡動畫完成所需的時間量(秒)。
Parameters:
(Number)
(default 2.0
)
過渡動畫完成所需的時間量(秒)。
Parameters:
(Number)
(default 2.0
)
過渡動畫完成所需的時間量(秒)。
當拾取3D Tiles-Tileset的功能時,pick
返回BM3DTileFeature
對象。
Parameters:
(Number)
(default 3
)
拾取矩形的寬度。
(Number)
(default 3
)
拾取矩形的高度。
Example
// On mouse over, color the feature yellow.
handler.setInputAction(function(movement) {
var feature = scene.pick(movement.endPosition);
if (feature instanceof bmgl.BM3DTileFeature) {
feature.color = bmgl.Color.YELLOW;
}
}, bmgl.ScreenSpaceEventType.MOUSE_MOVE);
從二維深度緩沖區(qū)重建的位置可能與三維和哥倫布視圖重建的位置略有不同。這是由于透視投影和正交投影的深度值分布不同造成的。
設置Scene#pickTranslucentDepth
至true
以包括半透明基本體的深度;否則,這基本上是通過半透明基本體選取的。
Parameters:
Throws
-
DeveloperError : 不支持從深度緩沖區(qū)選取。檢查支持的選擇位置。
undefined
。輸入位置的高度被忽略。可用于將對象夾持到場景中的球體、三維平鋪或基本體上。此函數(shù)僅對當前視圖中渲染的球形瓦片和三維瓦片的高度進行采樣。從所有其他基本體采樣高度,而不考慮它們的可見性。
Parameters:
(Array.<Object>)
不從中采樣高度的基本體、實體或三維平鋪特征列表。
(Number)
(default 0.1
)
交叉口體積的寬度(米)。
Example
var position = new bmgl.Cartographic(-1.31968, 0.698874);
var height = viewer.scene.sampleHeight(position);
console.log(height);
Throws
-
DeveloperError : 只有在3D模式下才支持sampleheight。
-
DeveloperError : 樣品瓶需要深度紋理支持。檢查支持的樣本權重。
Scene#sampleHeight
查詢Cartographic
位置數(shù)組。輸入位置的高度將被忽略。返回在查詢完成時解決的承諾。每個點的高度都會在適當?shù)奈恢眠M行修改。如果由于無法在該位置對幾何圖形進行采樣而無法確定高度,或發(fā)生其他錯誤,則高度設置為“未定義”。
Parameters:
(Array.<Object>)
不從中采樣高度的基本體、實體或三維平鋪特征列表。
(Number)
(default 0.1
)
交叉口體積的寬度(米)。
Example
var positions = [
new bmgl.Cartographic(-1.31968, 0.69887),
new bmgl.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.
}
Throws
-
DeveloperError : 只有在3D模式下才支持sampleheight mostdetailed。
-
DeveloperError : sampleHeightmostDetailed需要深度紋理支持。檢查支持的樣本權重。