计算机应用
Computer Applications
1999年 第19卷　第8期 Vol.19　No.8 1999



虚拟现实在水坝系统中的实现
梁　民　刘珍平　张培仁　梁　兵　
　　摘　要　本文结合作者在“二滩大坝安全在线监控系统”项目中有关虚拟现实的开发实践，阐述了虚拟现实的概念及其在二滩水坝系统中的实现。
　　关键词　虚拟现实,三维显示
1　前言
　　虚拟现实作为当今计算机最热门的技术之一，它极大地突破了事物表达传统方法的局限，使人们可以将任何想象的环境虚拟实现，并且人们可以在其中以最自然的动作与这种虚拟现实进行交流。目前，虚拟现实技术已在认真地寻找行业性的应用，比如：虚拟现实教学系统、远程诊断、汽车制造设计等等。鉴于虚拟现实的强大优势，我们便将其首次应用于国内水利系统中，在SGI工作站上实现了二滩水坝的整个枢纽布置及其周围地理环境的虚拟环境，使得用户能够运用小小的鼠标突破物理、空间、时间的限制，充分领略作为中国第一高、世界第三高的二滩大坝的雄伟风姿，轻松徜徉于高240米、底宽56米、顶宽10米的大坝的任意一个部位。
　　虚拟现实是利用计算机将客观世界的局部仿造出来，并且允许用户利用自然的动作与这个仿造的局部世界进行交互，产生身临其境的感觉。“虚拟”指的是利用虚拟现实技术所产生的局部世界是虚构的，而“现实”说明对于进入这一虚构的局部世界的人来说，在感觉上是进入了现实世界。虚拟环境的特征是交互性和浸入性。一个基本的虚拟现实系统由虚拟环境发生器、虚拟环境、传感器件、作用器件及人组成。虚拟现实的模型图如下：


图1　虚拟现实的模型
2　二滩虚拟现实系统的实现
2.1　系统实现硬件环境
　　我们在SGI工作站Indigo2机型上实现虚拟现实系统。Indigo2是一种高性能的图形工作站，采用Mips 250MHz主频CPU R4000；具有两个PP1像素管道处理器，提供混合、深度和抖动；一个GE11几何图形/图像发生器；一个RE4光栅发生器、能作
　　120M/Sec像素填充。
2.2　三维建模
　　由于项目并未购买昂贵的SGI工作站建模软件，故我们利用PC机上较常见的Autocad和3DS软件进行建模。我们利用二滩大坝工程图纸，从中取出大坝模型、地下厂房模型及周围地形模型。
　　周围地形模型的抽取　由于二滩周围的地形勘探较早，只有依据航空拍摄人工描出的几张工程蓝图。所以地形的等高线矢量化成为三维地形建模的重点。模型抽取工作分为以下几个步骤：
　　a) 图纸的扫描(将图纸以256灰度方式扫入)，如果一开始就以二值图像方式扫入，效果会很差，甚至面目全非。故必须以256灰度方式扫入，经处理后转化成二值图象。
　　b) 预处理和阀值化(去噪音，改善图像质量并转化为二值图象)，将扫入的图像采用基于图像的边缘检测的“最近有效灰度阀值平均法”对图纸进行净化，尽量除去图中的噪音并且保持图形的原貌。最后二值化转化为黑白二值图像。
　　c) 细线化(将线段变为单位线宽)，将二值图像中很粗的线段全部转化为单位线宽的线段，采用基于轮廓搜索的方法。
　　细线化过程：对目标像素集R，确定骨架像素和R的轮廓像素，然后，移去所有不是骨架的轮廓像素，并且用这样求出的集代替R；重复这一过程，直至剩下仅由骨架像素所组成的集为止。
　　d) 矢量化(将图形文件格式转化为等高线数据文件)，将等高线的图形文件转化为坐标的数据文件。对于用于存储和显示的可以采用Freeman直线链码方法，对于等高线的矢量化采用方向优先搜索的改进方法。
　　基于三维显示用的等高线的矢量化有其特殊性，具体实现时我们注意了以下几点：等高线数据文件存储格式：等高线坐标数据以一个高层为一个数据文件存储；解决多分支的跟踪算法：此部分程序采用堆栈存储的方法。若搜索点周围有一条以上的路径（不包括搜索过来的路径），即有分支，则将此点坐标压入堆栈存储。沿一条路径搜索结束后再将压入堆栈的搜索点弹出，向另一支搜索。这样可解决多分支的问题；起始点确定的方法：由于每个高层值要当场输入，最好的方法是采用人机交互的方法输入高层值。
　　e) 依等高线数据生成三维模型，对等高线数据进行插值运算，生成可以读入3DS的asc三维空间网格文件。
　　网格点三维坐标生成：由用户输入网格大小，由图形左上点向右下点对网格结点进行线性插值，插值时从等高线数据文件中搜索距离此点最近等高线的坐标值和高层值，并对当前网格点进行线性插值，将X、Y、Z值写入点数据文件。
　　当所有网格点三维坐标生成完毕后，则根据网格点坐标生成网格面坐标，并进一步生成asc三维空间网格文件。
　　f) 将3DS模型数据和材料属性转化成SGI上所能使用的SuperView格式文件，并在工作站上运行我们编制的虚拟环境生成器来进行三维虚拟现实显示。
　　大坝模型、地下厂房模型的建立　大坝和地下厂房的工程图均属于精确的施工图纸，其建模方法类似。利用Autocad软件从施工设计CAD图中抽取较为精确的模型数据，输入3DS中进行建模，在3DS中逐步调整各种模型的材料属性，使之接近真实物体。最后，将3DS模型数据和材料属性转化成SGI工作站所能使用的SuperView格式文件。
　　建好的模型示意图如图2所示：


图2　枢纽布置三维模型列表
2.3　虚拟环境发生器
　　SGI Indigo2工作站是性能较好的图形工作站，它自带了许多高性能的图形库，以方便用户开发，其中，Performance库就是专门用于虚拟环境、视觉仿真的图形库。Performance面向硬件结构，能提供多通道的高解析度（1280×1024）输出，并支持多个CPU。根据硬件配置，Performance能自动调整选择最佳运行状态，以产生每秒30帧的光滑画面输出。Performance还支持第三方厂家的数据文件。我们利用Performance库强大的功能，编制了虚拟环境发生程序。只要输入三维模型文件，便可生成虚拟现实世界。虚拟环境发生程序的结构框图如图3所示。


图3　虚拟环境发生程序的结构框图
　　由于大坝模型组成部分众多(如图2所示)，若将全部模型调入，数据量巨大，运行速度慢，视觉感官不甚流畅，所以我们提供了可选择性地调入所需三维模型的功能，用户可根据需要调入模型，例如，用户可只调入大坝的模块，而无须将地下厂房和地形模块调入。另外，考虑到用户在复杂繁多的二滩虚拟环境中漫游容易迷失方向，我们又特意编制一程序与虚拟环境发生程序进行通讯，建立数据通道，实时取得用户视点的当前三维位置，并在虚拟环境界面旁边生成一个俯视的平面示意图，图内一小圆点随用户视点变化而移动(如图4所示)。类似于某些汽车游戏中的汽车当前位置示意图。


图4　左图为某一视点下的虚拟现实三维图，右图为俯视的平面示意图
　　（俯视的平面示意图中接近底部有一圆点代表当前视点位置）
2.4　交互方式
　　本系统的交互手段较为简单，用户利用鼠标与虚拟环境进行交互，通过鼠标控制漫游方向及速度，另外，还可通过从菜单中设置运动方式改变交互方式。
　　根据运动规律，模拟人在虚拟环境中的运动情况，我们提供了三种运动模式：跟踪（Track）、行走（Drive）、飞行（Fly）。
　　用户可利用这三种方式轻松游览于二滩环境中。其中，跟踪可以用鼠标任意移动、翻转对象（用户的视点在对象外部）；行走模拟人在地面的行走状态；飞行可以设置碰撞模式，碰撞模式若开启，则会有反弹效果，碰撞模式若关闭则为可穿墙状态，用户可穿越障碍物任意飞翔进行漫游，能力大大超过电影《超人》中的超人。
3　虚拟现实在水利系统中的应用前景
3.1　用于大型水利设施的设计中
　　由于大型水利设施的建造不同于一般的建筑，它往往投资大，周期长，不可能事先进行试验，比如已建成的二滩大坝，正在建的三峡大坝，坝高都在200米以上，耗资巨大。所以一个合理可行的大坝施工设计是事关国民生计的大事。
　　在大坝设计阶段中，通常用传统的二维图纸设计方法，这种方法由于是二维的，它限制了人们的空间设计能力，若能结合先进的三维虚拟现实技术，可用来考察设计出的大坝是否结构合理，有无需改进之处，如有，进行改进；改进后，重新建模进行虚拟现实显示，再次考察改进；如此经过若干次反馈，最终将会得到令人满意的设计结果。在计算机进行模拟建造的投资与大坝实际建造的投资相比是微不足道的，但却能取得很好的经济效益。
3.2　电子沙盘
　　大坝一旦建成，对于它的许多结构，水利专家和旅游者只能进行远观，无法看清楚具体的构造，比如大坝的表、中、底孔及大坝内部的一些结构等。一旦有了虚拟现实环境，用户不但可以细看任何结构，甚至可以享有现实世界不可能有的能力，穿越墙壁任意游览。
3.3　可以模拟一定物理条件下大坝的安全状态
　　如给定假设的某一外界作用，可观察大坝的运行状态。例如，我们利用SGI高档机型上的特定软件再现了二滩大坝中孔泄洪、中表孔对撞泄洪等宏伟壮观的场面。
作者简介：梁　民　刘珍平　研究生。主要研究方向：三维图形、科学可视化、数据库应用。　
　　　　　张培仁　教授。主要研究方向：远程监控网络、现场总线等。　梁　兵　讲师。主要
　　　　　研究方向：应用数学。
作者单位：梁　民　刘珍平　张培仁　中国科学技术大学自动化系　安徽．合肥（230027）
　　　　　梁　兵　成都电子机械高等专科学校数学系　四川．成都（610031）
参考文献
　［1］　王维平,胡晓峰,沙基昌.灵境技术及其在仿真中应用展望.系统仿真学报，1995;7
　［2］　敬万钧，刘锦德.虚拟现实中的视觉系统与其实现技术.计算机应用，1997，17(3)
收稿日期:1999-03-24(修改稿)　
