一个多视图的三维GIS 的虚拟现实界面
来源:国土资源部信息中心
作者:孟凡荣(编译)
1 前言
虚拟现实为可视化显示3D GIS 数据提供了可能性。用户可以走进3D 环境中,观看新规划的建筑,可以欣赏风景的变化。然而,多数时候,与数据的交互受到视图限制。可能有多种形式的漫游和查询的方法,比如,用户可以在虚拟的环境中走动,可以指着屏幕上的对象查询GIS 数据库中的信息。然而,以更好的方法寻找GIS 数据库中的信息和获得更先进的GIS 功能的可能性受到限制。原因是在这样一个沉浸环境中,没有用于直接模拟交互的3D 的方法,或者不能通过鼠标和键盘的输入来明确表达GIS 查询。所以,紧跟着沉浸的VR 环境,需要其它可视化模型来支持交互。
1.1 设计阶段
在荷兰,根据每个阶段GIS 的用途不同,一个基础设施项目的方案设计可分成以下三个主要设计阶段:1.确定方针(设计研究), 2.建模(设计制定), 3.表达(决策)。
在确定方针阶段,GIS 的功能仅限于 2D 功能,进行地理对象的建立、处理和分析。仅显示对象的位置和范围,通过 2D 平面和地图进行可视化显示。在建模阶段,工程师更关心对象的总体布局,同样关心对象的大小、尺度和关系。在这个阶段,GIS 的使用从 2D 变为3D 的建模和分析。一个建筑的位置和周围环境的3D 比例模型用于3D 对象的可视化显示和操作。在表达阶段,设计者从艺术的角度对设计进行视觉效果的描绘,如CAD 渲染、粘贴纹理,或者形成更详细和真实的比例模型。可视化分析是这个设计阶段的主要任务,更真实的可视化可大大提高设计的表达能力。
总之,设计经历不同的阶段,每个阶段用特殊的方法进行分析和设计的可视化显示。所以我们用多视图的方法对每种视图采纳较好的虚拟现实显示系统。
1.2 虚拟现实
虚拟现实(VR )的基本概念是虚拟视图位置(在显示器上产生的图像)和观察者实际观察位置及视图方向的直接结合。
对观察者的观察位置进行连续跟踪并输入到显示系统中,以便计算出正确的立体透视显示。显示系统给出的图像和当前所见到的位置紧密结合,使用户产生“沉浸“的幻觉。当前的VR 系统从真实的沉浸到非沉浸显示都有。
头部装置的显示(HMD )是完全沉浸的VR 显示,可以有效地将单个用户与现实环境分离开来。沉浸的环境(CAVE )是可同时为多个用户提供立体环绕投影的多屏幕投影显示系统。其它(单屏幕)投影系统和CAVE 相比是较小的沉浸,但是可以保持3D 的视觉效果。这些系统较适合对很多人同时进行可视化显示。有趣的新发现是虚拟工作台:通过桌面投影的一张桌子,3D 图像可在桌子上或桌子内部进行可视化的显示。用户并非沉浸,而是从上面看显示的物体。它提供了通常和3D 比例模型相关的一种显示方式。最后,如果个人计算机能够提供非沉浸的立体显示,将把虚拟现实带到桌面系统中。
1.3 多视图方法
把不同的VR 可视化技术与三个设计阶段及交互模式结合起来,得出了下面的三种建模和可视化方式,也叫视图:平面视图、模型视图、现实视图(如图1 )。
平面视图将数据显示为传统的制图平面图。平面视图能在标准的监视器的窗口中显示。模型视图给出了基于部分符号化和数据的简单的三维显示的3D 鸟瞰图,较好的显示系统是虚拟工作台。现实视图给出了全沉浸的和图像真实的3D 显示,而且用沉浸的环境进行较好的视图显示。这些视图或模式可以在一个显示系统或多个显示系统中同时或间断应用,而每种视图提供了适用于(但不必限于此种)可视化和交互的交互指令。
Karma VI 系统是3D GIS 和VR 系统,它基于现有的GIS 和VR 技术来支持大的基础设施方案的设计、制作和表达。该系统用了多视图的方法,每个视图模式有较适合的VR 显示系统。其次,对于不同的视图模式,该系统的基本特点是能支持在VR 环境中对GIS 数据进行操作和编辑。
2 视 图
本节提出了多视图的方法并描述了可视化的方法及每种视图的较合适的显示系统。展望了每种视图中用到的地理数据的几何显示。讨论了用户界面的模式。
2.1 可视化和显示
平面视图:在这种视图中,地理数据以一种传统的制图格式进行可视化显示(图la )。空间对象通过ZD 点、线、面和符号来表达。专题数据通过标准的属性数据和分类技术进行可视化显示。平面视图类似于今天的大多数GIS 中的可视化。
模型视图:模型视图提供了地理数据所谓的鸟瞰图(图lb )。它使可视化显示2 . SD 和3D 数据成为可能。就像它是个一般的3D 比例模型一样,这种视图中可视化显示简单,用户从鸟瞰的角度从上往下看模型,模型视图和一般的3D 比例模型相似并非巧合。3D 模型提供了感兴趣区域的全透视图,同时给用户提供改变模型的能力,又可以看到这些变化总的效果。模型视图可视化的目的在于,让用户对他们的3D 地理数据建立模型。
现实视图:这是一个人对感兴趣的区域的沉浸视图。该视图的目的是用可视化和直观的输出模型表现区域的真实景色的变化。用户能走进地理数据一一可用详细的3D CAD 模型和纹理可视化显示地理数据(图 1c)。
对于每种视图,都有一个较适合的显示系统。平面视图在带有窗口和鼠标交互的监视器上是很有效的。对于模型视图,虚拟的工作台是较合适的显示系统。现实视图是用真正的沉浸达到最好的显示效果,比如,可以用HMD ,但带环绕投影的显示系统(如CAVE )更好。
然而,当转换视图时,不断转换显示系统不方便。所以,所有适用的显示系统应该支持所有的视图。比如,应当可以在现实视图中开窗显示平面视图。同样,应当可以在标准的监视器中显示现实视图,即使这是用纹理地图和模型实现的。2.5D TIN 能用来对地表建模。
2.2 用户界面
三种视图需要通过不同的导航方法与数据进行交互。平面视图最适合于确定、选择和查找数据。用户可以通过滚屏、漫游、缩放或通过超文本连接进行浏览。用户界面会适应现在的GIS 的大多数特点,利用标准的界面构件(如菜单和图标)。
模型视图可让用户对基础设施对象进行布局,比如建筑物、道路、桥梁。所以,对象可以按层进行分组和组织,用关系和约束条件进行操作。这些关系、约束条件、图层和其它的层结构必须支持操作和交互。可以通过姿势的改变、头部的移动或传统的设备进行视点的变化和漫游。
在现实视图中,主要通过观看基础控制地物和周围的环境直接漫游和评价。因为缺少全局的视图,在此视图中不认为对象的操作是有用的。用户的主要工作是从人的角度漫游三维的场景,通过3D 屏幕从视点进行导航,收集对象的属性和与视点距离等信息。在完全沉浸的环境中,像数据手套或“跟踪球”的输入装置更合适。
所有的视图都应该具有GIS 功能(即分析和查询),尽管每种视图用特定的交互方式来选择物体和进行分类查询的操作。比如,在现实视图中,用语音界面是非常自然的事,而在平面视图中用传统的界面方式会给用户提供更好的支持。
3 系统设计
为了实现上述概念,我们正在设计名为Karma VI 的3D GIS和VR 系统,系统采用标准的GIS 、VR 和CAD 组件。
然而,遗憾的是除在研究领域外,并不存在具有完全3D 能力的 GIS ,多数系统都具有2.5D 能力。所以我们在CAD 系统中选择了标准的 GIS 并模拟和存储建筑物及其它空间对象的全三维图像,把CAD 数据和GIS 数据结合起来。这意味着可在需要的时候将CAD 的数据输入到可视化的模块中。在GIS 中保持了2.5D 的CAD 数据。这种显示方法也适用于对模型视图进行模型关联。图2 显示了组件和不同的视图。
3.1 GIS
对于GIS ,该系统选择一个中央数据服务器,这样Karma VI 系统可以作为客户/服务器结构的客户端,利用相同的数据进行GIS 应用。而且,如果空间和属性数据能存储在一个中央数据库中,数据的一致性和完整性会保持得更好。另外,许多用户可同时访问相同的数据。
系统用ESRI 的空间数据库引擎( SDE )作为GIS 数据库服务器。SDE 可以在集中维护的数据库中存储和检索空间和属性数据,这个数据库是基于开放的关系数据库管理系统(RDBMS )标准,我们用Oracle 作为RDBMS 。
Karma VI 作为SDE 的客户端应用通过SDE 的客户包连接到服务器上。在服务器端是SDE 的服务程序、关系数据库管理系统和数据(图3 )。SDE 采用协同处理,这意味着处理同时发生在SDE 的客户端和服务器端,看哪个更决。
SDE 用连续的空间模型将空间数据增加到一个关系数据库管理系统中。在关系数据库模型中,数据存储在包含行和列的表中。行表示地物,列包含了地物的属性。属性可以有很多类,如日期型、字符串型和数字型。地物的几何形状是另一种取值类型,存储在列中用于确定几何数据的类型。
SDE 用独立的表存储几何数据和空间索引,用形状列中的一个关键字进行连接。几何数据用(x,y )坐标存储。点记录成单个的(x,y) 坐标,线是有序的坐标串,面是起点和终点相同的组线段的(x , y )坐标构成。形状数据可以是2D 也可能是2.5D 。
3.2 VR
为了VR 的可视化,正在开发许多构件来支持不同的视图。这些构件利用一个VR 的工具包。这些构件运行在所有可获得的设备上,如简单的监视器或较专用的设备,如CAVE 或虚拟的工作台。如果必要的话,每个系统可用多屏幕提供所有的视图。
这里选用WorldToolKit ( WTK )作为VR 的工具包。WTK 是用于可视化模拟和虚拟现实的可移植、跨平台的系统。Karma VI系统的交互和可视化的特征用WTK 的存储功能建立。对于不同的平台,如桌面工作台/PC ,虚拟工作台和CAVE 需要不同的用户交互方式和界面。在WTK 中用的数据模型的设计用于支持3D 模型的可视化和交互。如同其它需要可视化的对象一样,几何数据也存储在一个分层的“透视图”中(如图4 )。这个“透视图”由不同类型的节点构成,每种节点有不同的作用和功能。比如,几何数据可存储在一个几何节点中,一个“组”节点用来分组存放几种几何数据。一个“详细程度节点”( LOD )存储相同对象的几种表示方法。在任何给定的点上根据可视化要求的详细程度只能见到一种表示法。另外,每个节点也包括了用户自定义的数据。
尽管3D 的数据可以输入,但还需要和GIS 系统中的 2D 和2.5D 的数据保持一致。为了保持一致,GIS 坐标用来确定WTK 的平面、模型和现实视图的几何平面位置。从GIS 的数据中提取的形状属性数据用于正确地形成和显示2 . 5D 和3D 数据的几何形状。
3.3 CAD
CAD 模型数据从外部的CAD 系统输入。在这个阶段,3D 的CAD 模型的操作本身不是Karma VI系统的一部分。将来可能增加额外的功能用于操作来自该系统内的3D CAD 数据。
对于平面视图,由 2D 的形状数据产生 2D 多边形。这是面状地物的基本任务。然而,由于在WTK 中的几何体仅用到平面,点和线状地物必须做转换。所以,点用小三角形表示,对线进行缓冲处理。在模型视图中,这些 2D 的面由一个属性值突出出来,形成了2.5D 的几何体。在现实视图中, 2D 面用于定位3D CAD 对象。“高度”属性用于确定CAD 几何体的高度和模型的比例尺。在SDE 中用一个单独的表把CAD 对象与原始的GIS 形状联系起来,并将CAD 模型及其方向比例等参数存储在这个表中。
视图不同的几何显示存储在一个单独的“透视图”中,可用WTK 提供的LOD 节点结构方式来实现这个目的。LOD 节点为一个对象的几种几何显示的存储提供了可能性。我们可以根据特定的功能(比如视距)进行这些几何显示的变换。在Karma 系统中,应用了LOD 节点对2D 、2.5D 和3D 几何模型进行分组。LOD 节点包括了形状的数据库关键字,及2D 地理坐标的中心(图5 )。数据库关键字对于使Karma 和SDE 系统在传递查询和结果时保持对象一致性是必要的。每个几何模型以存储在LOD 节点中的地理坐标的中心定位。当移动其中一个模型时,这些坐标被更新,因而移动了所有模型,同时显示的视图在任何时候均保持一致。
经常有这样的现象,代表GIS 中的多种形状只有一个单一的CAD 对象。因此分割这个对象或为每种形状建立单独的CAD 的模型是不现实的。所以,CAD 模型能由一系列不同的形状共享。CAD 模型与数据库中的每个形状相关联。模型的中心通过存储在LOD 节点中这些形状的中心坐标平均值来计算。
Karma 中的“透视图”的基本结构如图6 所示。根节点分为四个子树或组。每个子树或组有自己的功能。“GIS ”组包括了所有加载的GIS 表,表本身包含有三种几何显示的LOD 节点。在透视图中还存储有用于可视化和用户交互的其它几项。
首先在“透视图”中加上一个或多个球状光资源,以充分照亮场景。在不久的将来,将增加“3D 用户界面”组,这个组包括3D 专用接口工具集,以支持在虚拟工作台和CAVE 系统中虚拟现实用户界面,某种程度上也可支持桌面系统虚拟现实用户界面。为了加强现实视图,许多其它的非GIS 相关的对象也将加入到“透视图”中。比如云、人、交通和植被。这些对象有的必须栩栩如,而且很多对象必须能发出声音。这样的现实视图特殊对象存储在“真实性”组中。
4 系统的应用
Karma 的一个重要特征是支持在VR 环境中对GIS 数据的操作和编辑。很多功能已经发展到可以直接通过VR 的界面操作、模拟和分析2D / 2.5D 数据。实际的操作、建模、分析在SDE 数据库中进行,而操作、建模、分析参数的设置在VR 环境中。比如当用户在模型视图中移动和旋转一个对象时,只将变换参数传送到SDE 数据库中,进行原始数据更新。为此我们采用客户/服务器结构,也可用外部的GIS 编辑和分析数据。
4.1 对象操作
目前Karma 系统只有GIS 对象基本的移动和旋转操作功能。通过这些功能,可以操作单个或一组GIS 对象。成组对象可以像单个对象一样进行移动和旋转。因为在2D / 2.5D 空间中定义所有的对象,所以只允许沿着垂直轴(Z )进行旋转。
4.2 缓冲操作
执行 2D 空间查询或缓冲是Karma 系统前端典型的GIS 操作,用户选择单个的GIS对象并设置缓冲参数,这些参数包括缓冲的半径和所要执行的空间查询的图层。参数信息发送到GIS 数据库,产生一个临时的缓冲对象,并且计算在这个缓冲对象中包含哪些对象,并高亮度突出显示这些对象。
4.3 不规则三角网
不规则三角网(TIN )是由许多相互连接的三角形组成一种2.5D 几何显示。TIN 通常用来对地表建模,在Karma 系统中TIN 能够可视化显示,可用于对一个区域进行直观分析。比如,一个包括树的位置的 2D 数据集可在TIN 模型上进行定位。这样,景观规划者可以分析对一片森林进行部分砍伐的视觉效果。
4.4 量测距离
如果精度不成问题,量测距离是简单的GIS 分析,能容易地整合到VR 环境中。在Karma VI 系统中,用户可通过点击或画一条3D 的线测量 2D 或3D GIS 对象之间的距离。这可以实现快速分析对象与对象的距离、CAD 模型维数和分析对象高度。
5 展 望
目前,这个3D GIS 和VR 的原型运行在PC 、虚拟的工作台上和CAVE 环境中。GIS 数据的基本几何操作只是移动和旋转,还有空间缓冲查询等。为了支持更多的操作功能,必须开发基于约束条件的模型,以支持“智能”几何操作。不久的将来,将更深入开发3D GIS 功能,比如3D 网络分析、3D 缓冲、体积计算等。为了显示分析的结果,需要一个具有渲染和制作纹理工具的通用指令集。
为了更精确地分析和模拟,系统采用通用应用界面会更方便,这将允许远程从数据库检索GIS 数据进行模拟,然后将数据以3D 对象形式、对象移动、符号可视化形式返回结果。
由于空间数据量大,可视化显示 GIS数据会出现问题。继GIS 数据之后还有巨大的CAD 数据必须可视化显示。所以,为了真实的显示,保证具有足够的图形操作功能,必须优化系统。WTK 中保障LOD 技术的应用;对具有不同详细程度的相同对象分不同版本进行存储,但在任何给定的时间只有其中的一个可以显示。任何时候观察者要靠近对象,可以选择详细程度高的几何体。详细程度低的几何体由较少的面组成,所以比较详细的几何体需要较少的计算时间。相似的技术,如动态对象加载,当详细的 GIS或CAD 对象不可见时,它们只占用内存和有限的处理器时间。为减少内存的应用,只有当观察者离这些对象足够近才能看见它们的时候,才把它们加载到内存中。
下一步是优化系统的图形操作功能,还将开发这些用户界面。这些界面应该是易于使用、直观和有效的。这在桌面系统中是个大问题,在真正的VR 环境(如虚拟工作台或CAVE )中就更困难。比如,在CAVE 系统中用键盘进行文本的输入是不可能的。必须开发执行语音命令的语音识别系统。需要开发一种图形和语音的综合对话框,让用户进行特定的查询。还有,在3D 环境中显示字母数字结果是个问题,特别是当大量的信息返回的时候。信息必须以这样一种方式提交给用户,就是用户不能失去他的沉浸感觉。这意味着信息只满足用户视野的一小部分,或者信息完全融入到3D 现实中。除了解决结构语言和口语的输入和输出外,还要开发可视化的工具来使用户访问GIS 数据和获取系统的模拟功能。
下一步将向该系统提供技术方面的界面,供设计制定者使用,帮助制定政策和决策的界面也是有用的。如果不同的设计方案的景观可以显示和进行评价,那么该系统将是解决互操作问题的一个有价值的工具。