方法概述
名称 | 返回类型 | 总结 | 对象 | |
---|---|---|---|---|
更多信息 将外部渲染器添加到视图。 | 更多信息 | externalRenderers | ||
更多信息 请贝尼特斯弗尔松场景视图构件使用特定网页图像呈现。 | 更多信息 | externalRenderers | ||
Number[]|Float32Array | 更多信息 将位置从内部渲染坐标系转换为输出空间参考。 | 更多信息 | externalRenderers | |
RenderCamera | 更多信息 获取视图的当前相机的渲染表示。 | 更多信息 | externalRenderers | |
更多信息 从视图中移除一个外部渲染器。 | 更多信息 | externalRenderers | ||
Number[]|Float32Array | 更多信息 计算一个 4x4 仿射变换矩阵,该矩阵构成从局部笛卡尔坐标系到虚拟世界坐标系的线性坐标变换。 | 更多信息 | externalRenderers | |
更多信息 请求重绘视图。 | 更多信息 | externalRenderers | ||
Number[]|Float32Array | 更多信息 将位置从给定的空间参考转换到内部渲染坐标系。 | 更多信息 | externalRenderers |
方法详情
-
add(view, renderer)static
-
向视图中添加一个外部渲染器。 外部渲染器是由一个对象,该对象包含一些方法和属性定义界定 ExternalRenderer。
参数:view SceneView附加外部渲染器的视图。
renderer ExternalRenderer外部渲染器。
-
forceWebGLContext(version)static
-
请求 SceneView 使用特定的 WebGL 版本进行渲染。 在创建视图之前调用此函数。 默认情况下,SceneView 在支持它的平台上使用 WebGL 2。 我们建议在未来的实现中使用 WebGL 2。
参数:version Number所需的上下文版本。
-
fromRenderCoordinates(view, srcCoordinates, srcStart, destCoordinates, destStart, destSpatialReference, count){Number[]|Float32Array}static
-
将位置从内部渲染坐标系转换为输出空间参考。 允许的输出空间参考是有限的,取决于 viewingMode:
- 在
global
模式下,它可以是 Web Mercator 或 WGS84。 - 在
local
模式下,它必须匹配 view.spatialReference,并且对该函数的调用只是将坐标从srcCoordinates
复制到destCoordinates
。
如果不满足这些条件,则不会向
destCoordinates
写入任何内容,并且该函数返回null
。参数:view SceneView与输入视图坐标。
srcCoordinates Number[]|Float32Array一个或多个向量的线性数组,被解释为 XYZ 坐标。 例如,两个位置向量将表示为
[x1, y1, z1, x2, y2, z2]
。 这必须至少包含srcStart + 3 * count
个元素。srcStart NumbersrcCoordinates
中的索引坐标将从其开始读取。destCoordinates Number[]|Float32Array对结果将在其中写入数组的引用。
destStart NumberdestCoordinates
中的索引坐标将在其中开始写。destSpatialReference SpatialReference空间输出的参考坐标。当
null
时,使用view.spatialReference
。count Number要转换的顶点的数量。
返回:类型 描述 Number[] | Float32Array 如果操作成功,则返回对 destCoordinates
的引用,否则返回null
。例子:let cameraPositionGeographic = new Array(3); externalRenderers.fromRenderCoordinates(view, context.camera.eye, 0, cameraPositionGeographic, 0, SpatialReference.WGS84, 1);
- 在
-
-
获取视图的当前相机的渲染表示。 这与在渲染上下文中为外部渲染器传递的相机相同。
参数:view SceneView从中获取渲染相机的视图。
返回:类型 描述 RenderCamera 返回一个渲染相机实例。
-
remove(view, renderer)static
-
从视图中移除外部渲染器。
参数:view SceneView要从中删除外部渲染器的视图。
renderer ExternalRenderer外部渲染器。
-
-
计算一个 4x4 仿射变换矩阵,该矩阵构成从局部笛卡尔坐标系到虚拟世界坐标系的线性坐标变换。 例如,此矩阵可用于将 3D 模型的顶点转换为渲染坐标系。
局部笛卡尔系统由其原点和以下轴定义定义:
- X: 东
- Y: 北
- Z: 高度
当 view.viewingMode 是全球时,线性变换不考虑地球曲率或其他非线性投影方面。因此,生成的坐标只会在局部笛卡尔坐标系.原点周围的一个小区域内显示正确。
允许空间取决
来源
于 viewingMode 参考:- 在
全球
模式下,它可以是 Web Mercator 或 WGS84。 - 在
局部
模式下,它必须匹配 view.spatialReference。
如果不满足这些条件,则不会向
dest
写入任何内容,并且该函数将返回null
。参数:view SceneView将使用转换的视图。
origin Number[]|Float32Array本地笛卡尔坐标系中原点的全局坐标。
srcSpatialReference SpatialReferenceoptional原点坐标的空间参考。 如果未定义,则改为使用
view.spatialReference
dest Number[]|Float32Arrayoptional对将存储 16 个矩阵元素的数组的引用。 生成的矩阵遵循 OpenGL 约定,其中平移分量占据第 13、14 和 15 个元素。 如果未定义,则返回一个新创建的矩阵。
返回:类型 描述 Number[] | Float32Array 如果操作成功,则返回对 dest
的引用;否则返回null
。例子:// places a tetrahedron in New York let verticesLocal = [[10, 10, 10], [10, −10, −10], [−10, 10, −10], [−10, −10, 10]], transformation = new Array(16), geographicCoordinates = [ // lon lat elevation -74, 40.71, 10] externalRenderers.renderCoordinateTransformAt(view, geographicCoordinates, SpatialReference.WGS84, transformation); let verticesGlobal = verticesLocal.map(function(vertexLocal) { // transform the coordinates with the computed transformation (using the synthax of glMatrix, see http://glmatrix.net) return vec3.transformMat4(new Array(3), vertexLocal, transformation); });
-
requestRender(view)static
-
视图重绘请求。
参数:view SceneView外部渲染器附加的视图。
-
toRenderCoordinates(view, srcCoordinates, srcStart, srcSpatialReference, destCoordinates, destStart, count){Number[]|Float32Array}static
-
将位置从给定的空间参考转换到内部渲染坐标系。 允许的输入空间参考是有限的,取决于 viewingMode:
- 在
全局
模式下,它可以是 Web Mercator 或 WGS84。 - 在
局部
模式下,它必须匹配 view.spatialReference; 对该函数的调用只是将坐标从srcCoordinates
复制到destCoordinates
。
如果不满足这些条件,没有向
destCoordinates
写入任何内容,并且该函数返回null
。参数:view SceneView将在其中使用坐标的视图。
srcCoordinates Number[]|Float32Array一个或多个向量的线性数组,被解释为 XYZ 坐标。 例如,两个位置向量将表示为
[x1, y1, z1, x2, y2, z2]
。 这必须至少包含srcStart + 3 * count
个元素。srcStart NumbersrcCoordinates
开始读的坐标中的索引。srcSpatialReference SpatialReference输入坐标的空间参考。 如果为
null
,则改用view.spatialReference
。destCoordinates Number[]|Float32Array对将写入结果的数组的引用。
destStart Number对开始写入坐标的
destCoordinates
中的索引。count Number要变换的顶点数。
返回:类别 描述 Number[] | Float32Array 如果操作成功,则返回对 destCoordinates
的引用,否则返回null
。例子:// A linear list of coordinate triples let geographicCoordinates = [ // lon lat elevation -117.19, 34.05, 414, 47.39, 8.51, 408]; // Allocate storage for the result let renderCoordinates = new Array(6); externalRenderers.toRenderCoordinates(view, geographicCoordinates, 0, SpatialReference.WGS84, renderCoordinates, 0, 2);
- 在
类型定义
-
ColorAndIntensity Object
-
RGB 颜色值和强度值的元组。
- 属性:
-
color Vec3
值介于 0 和 1 之间的 RGB 颜色。
intensity Number标量强度值,应根据该值缩放颜色以进行合成。
-
ExternalRenderer Object
-
使用回调和属性定义外部渲染器。
- 属性:
-
setup RenderContextCallback
通常在将外部渲染器添加到视图后或 SceneView 准备就绪时调用一次。 如果就绪状态循环,则可能会再次调用它,例如当将不同的 Map 分配给视图时。 接收 RenderContext 类型的单个参数。
render RenderContextCallback在每一帧中调用以执行状态更新和绘制调用。 接收 RenderContext 类型的单个参数。
dispose RenderContextCallback当从视图中移除外部渲染器时调用,或者当视图的就绪状态变为 false 时调用。 接收 RenderContext 类型的单个参数。
-
RenderCamera Object
-
在 RenderContext 中传递给渲染器回调的相机对象。 这与相机不同。 所有属性都是只读的,并根据内部渲染坐标系定义(请参阅本页顶部的坐标系部分)。
向量(
Vec3
和Vec4
)以数组的形式呈现。 矩阵 (Mat4
) 呈现为具有 16 个元素的线性数组,遵循 OpenGL 约定,其中平移分量占据第 13、14 和 15 个元素。- 属性:
-
viewMatrix Mat4
将坐标从世界空间转换到相机空间的 4x4 矩阵。
viewInverseTransposeMatrix Mat4viewMatrix
的逆转置,用于将法线从世界空间转换到相机空间。projectionMatrix Mat4一个4x4的矩阵,它定义透视投影变换。
eye Vec3内部笛卡尔渲染坐标系中的摄像机的位置。
center Vec3摄像机目标点("看")内部笛卡尔渲染坐标系中的位置。
up Vec3摄像机载体。
near Number到近裁剪面的距离。
far Number到远平面的距离。
fovX Number水平视图的字段。
fovY Number垂直视图的字段。
pixelRatio Number渲染像素比率。 这可用于调整屏幕尺寸,以便在以 HiDPI 呈现时正确匹配 CSS 像素尺寸。
viewport Vec4视区(x、y、宽度、高度)。
-
RenderContext Object
-
该对象作为参数传递给每次调用以
setup
和render
外部渲染器。- 属性:
-
WebGL 渲染上下文。
camera RenderCamera用于渲染当前帧的相机。
sunLight SunLightSceneView 用于渲染当前帧的光照。
resetWebGLState Function提供了一个方便的功能,用于在使用后完全重置 WebGL 状态。
bindRenderTarget Function绑定外部渲染器应该渲染到的颜色和深度缓冲区。
-
RenderContextCallback(context)
-
使用渲染上下文调用的回调(用于外部渲染器的设置和渲染阶段)。
参数:context RenderContextoptional渲染上下文。
-
SunLight Object
-
描述 SceneView 使用的光照,源自其太阳光照模型。 它由一个定向朗伯(
diffuse
)项和一个常数(ambient
)项组成,应该在 Phong 反射模型 的意义上进行处理。- 属性:
-
direction Vec3
渲染坐标中的入射光方向。
diffuse ColorAndIntensity漫射光的颜色和强度。
ambient ColorAndIntensity环境光的颜色和强度。