计算机工程
Computer Engineering
1999年　第25卷　第4期　Vol.25　No.4　1999



虚拟潜望镜视景系统的研制
崔汉国　王伟忠　冯雷　周朝晖
摘　要　介绍了一个基于虚拟现实技术模拟器中虚拟潜望镜视景系统的结构、功能及主要技术要点。系统在微机上实现。
关键词　虚拟环境多媒体计算机动画PC平台
The Development of Virtual Periscops’s 3D Scene System
Cui Hanguo Wang Weizhong Feng Lei Zhou Zhaohui
（Naval Academy of Engineering Wuhan 430033）
Abstract：A virtual Periscope's scene system used for simulator is developed on microcomputer.The structure,functions and some key technical details of the system are presented in this paper.
Key words:Virtual environment;Multimedia;Computer animation;PC platform
　　虚拟现实是一种高度逼真地模拟人在自然或特定环境中视、听、动等行为的人机界面技术，具有多感知性、存在性、交互性及自主性等重要特征，最终将成为人机交互的最高形式。基于虚拟现实技术的训练模拟器通常由视景系统、运动系统、操作负荷系统及多媒体计算机系统组成，形成一个虚拟的环境，用户通过视觉、听觉、触觉及运动感等来感受这个环境，从而产生身临其境的感受。由于人类的视觉占其感受信息的80%以上，故视景系统是基于虚拟现实技术模拟器中极为重要的组成部分，是 VR 的核心与基础，其目的是根据应用的需要来建立、生成相应的虚拟环境模型并进行人机交互。我们研制了一个虚拟潜望镜视景系统，它为操作人员实时提供一个与潜艇地理位置、战场环境及运动相对应的连续艇外景象：在模拟潜艇水下运动过程中，视景系统将提供操作人员通过潜望镜观测到的天空、海浪及其它水上景物；在模拟作战过程中，视景系统将提供操作人员通过潜望镜观测到的天空、海浪及目标舰的运动状况、鱼雷发射及射击效果的景象，从而完成虚拟海战等其它模拟训练任务。该系统在微机上用Visual C++语言实现，采用面向对象机制，建立在MFC和OpenGL上，支持多线程、异步对话，具有中文菜单、工具条、状态条及多窗口界面，操作简便快捷。 
1　系统结构及功能
　　虚拟潜望镜视景系统分为计算机实时图象生成系统和光学显示系统两大部分，由视景数据库、控制/管理计算机、几何处理器、图象显示处理器和光学显示系统组成[1](图1)。视景数据库用于生成、存储景象的三维数据，某个瞬时潜望镜操作人员所能看到的视景与潜艇所处的具体环境及潜望镜的观测方向有关；几何处理器完成各种与运动仿真及投影有关的坐标变换和遮挡、消隐处理等，将天空、海浪、目标舰及其它水上景物的三维数据转换为二维坐标数据；显示模块将几何处理模块传送来的二维数据进行扫描变换，并进行纹理、浓淡、能见度、透明、火光、抗混叠等各种逼真效果修正，最后将得到的图象数据传给帧缓冲器，控制显示器的RGB信号，输出模拟视频信号供显示输出。

图1　视景系统结构 
本系统具有以下功能：(1)敌舰既可以是单舰航行，亦可以是多舰编队航行(可有多种舰型供选择)；(2)用户可随时改变以下要素并实时引起虚拟视景动态变化：①我舰的航向、航速；②潜望镜观测方向、观测高度(当潜望镜降至海平面以下时，则播放水下景象的视频)、观测放大倍数(1.5X、6X)；③任一敌舰的航向、航速；④鱼雷发射的深度等；(3)系统可以不同的声音生动地表现出鱼雷发射及命中目标时的音响效果，并可对鱼雷命中目标时的状态进行"照相"、存储及进行鱼雷发射次数、训练时间等的统计、分析工作；(4)系统可提供白天及黑夜等多种天气状况下的景象。
2　 若干技术要点
2.1　面向对象技术
　　面向对象技术是一种围绕真实世界的概念来组织模型的思考方法，它使描述问题的问题空间和解决问题的方法空间在结构上尽可能一致，其基本构造是对象，对象将数据结构与数据操作合并在一个实体中，例如景物模型集为D，其中包含有许多子模型Di(天空、海浪、岛屿、敌舰、鱼雷等)，D=∪Di，每个模型都是一个对象，每一种对象都有自己的属性和行为，对象与对象间通过 "消息"相互作用，即对象统一了数据和对数据的处理、对象间的"消息"统一了数据流和控制流。类把具有相同功能的对象归并，是功能相同实例对象的抽象，它定义的是对象类型，描述了属于该类型的所有对象的性质。我们在编程中使用Visual C++完成整个三维图形应用，从图形类库中派生出新的类，用这些类组成图形模型集，并把图形操作对象和图形模型对象联系在一起，从而实现对图形模型的操作。
2.2　 三维视景模型的生成
　　构造三维视景模型的主要工作包括模型化和描述生成两大部分，模型化是对环境动态性、交互性及外部形状特征的抽象，描述生成主要利用计算机辅助设计技术进行几何模型的交互式构造。视景模型可以分为两类，其一是自然视景(如天空、海浪等)，其二是人工视景(如敌舰、鱼雷、岛屿等)。
　　自然视景(天空、海浪等)是三维视景的重要组成部分,它的模拟一直是计算机图形学中具有挑战性的研究方向之一,其原因在于白云及海浪的形状具有不规则性、复杂性及随意性,它们的产生要满足一定的条件,在运动过程中还要受到多种力的作用,其模型多为偏微分方程组,求解难度大。文献[2]从水力学方程组出发，提出了一个基于物理模型的模拟流水及波浪的计算机动画方法，利用该方法，通过方便和直观地调整方程的初始条件，可以真实地模拟出流水和波浪的不同状态，如急流、瀑布及不同形态的波浪等，效果良好，但在SGI INDIGO2上平均需要5分钟才能生成一帧画面。为了快速生成天空及海浪等自然景物，我们采用的是贴纹理的方法，OpenGL也支持这种功能。纹理可分为颜色纹理和几何纹理两种，颜色纹理取决于景物表面的光学属性，而几何纹理则与景物表面的微观几何形状有关。贴纹理是把一个指定图象的一部分映射到允许贴纹理的每一个图元上，通常此映射是针对矩形光栅图象的，而对于非矩形的光栅图象(如天空、海浪、舰艇的舰体表面及岛屿的表面等)则需要综合应用融合技术和纹理映射技术来实现，详细情况见文献[3]。纹理技术能大幅度地提高三维视景的逼真度，当然由于逼真度效果的提高将加重几何处理器和显示处理器的处理负担，因此也会降低系统的实时性，实际应用中应根据实际情况在逼真度和实时性之间作出折衷。
　　人工视景(敌舰、岛屿、鱼雷等)是以向量或参数方式存储的图象数据，其点、线、面符合广义的欧拉定理。对于这类数据的模型构造，从技术上来讲可分为以下2个步骤：第一步是几何建模，主要包括用多边形或三角形拼构成对象的立体外形；第二步是形象建模，主要包括对几何模型的结果进行纹理、颜色、光照等处理。OpenGL是使用专用图形处理硬件的软件接口，该接口由数百个过程与函数组成，支持用户对高质量三维对象的图形(象)操作，然而它在许多方面都只提供了最底层的操作，例如在物体建模方面，OpenGL基本库仅提供了点、线、多边形这些基本图元的生成函数，对复杂几何物体的建模则没有提供直接实现功能，需要用户利用虚拟环境生成工具来完成。从头开始设计一个虚拟环境生成工具来构造三维视景模型是不明智的，我们的方法是利用AutoCAD和3DS交互地建立起敌舰、岛屿、鱼雷等三维视景的几何模型，待满意后利用名为 Wcvt2pov的转换软件将*.DXF或*.3DS类型的文件转换为符合OpenGL格式的C类型文件，用显示列表予以显示、处理。三维视景对象的几何描述直接影响整个视景图象的复杂性、真实性及绘制的速度。
2.3　三维视景显示
　　视景的显示主要包括以下几个步骤：(1)计算生成具有真实感(包括颜色及立体感、运动感)的环境对象(如敌舰、岛屿、鱼雷等)；(2)从背景图象库中检索获取具有真实感的背景图象(如天空、海浪及敌舰和岛屿的表面等)；(3)经过扫描转换将环境对象统一在同一坐标系中；(4)运动视景的显示。
　　虚拟潜望镜视景系统是一种对时间要求很高的应用，是一种典型的限时计算、显示问题，且视景是一个随时间变化的三维世界，为了表现出视景随潜望镜视向的变化情况，需要连续地显示视景的运动图象。要提高视景图形(图象)的显示速度，高性能的CPU和图形加速部件是视景显示的基本硬件需求，同时还需要在软件方面精心设计算法，一个实践证明非常有效的方法是降低视景的复杂度〖4〗。实时性和图形处理能力是虚拟视景的关键技术。 
　　(1)  视域聚焦性与LOD(Level of Detail)特征
　　实时视景一般具有以下两个特征：(1)用户在观察视景时其注意力一般均集中于目标(可能是多个)及其周围很小的区域,而对其它区域的景物一般并不非常注意,因此目标所在局部区域的视景模型就应复杂些,而其它区域的视景模型就可以选得简单一些,我们将用户注视某个对象时对象所在的局部区域清晰而其它区域模糊这个特征称为视域聚焦性；(2)若某个对象在屏幕上所占的面积大,则它对整个场景的贡献也大,其细节模型也就应复杂一些,因此当视点移动速度快或离目标远时,可采用粗略的模型显示,反之采用较细致的模型显示,这个特征称为LOD特征,该特征不仅可以有效地提高显示速度,而且符合人类的视觉感受。LOD技术为每个对象建立多个相似的模型,不同的模型对景物的细节描述不同,景物细节的描述越精确,模型也就越复杂。基于以上分析,我们在系统实现中动态地根据对象在屏幕上所占区域的大小及用户视点的不同,为每个对象选择不同的细节模型,从而有效减少需要处理、显示多边形的数目,详细情况见文献[5]。
　　(2)逼真度效果

图2　图例
　　对于天空，系统使天空的图象随潜望镜视点(视向、视距)的变化而变化；对于运动的海浪，一方面使海浪的图象随潜望镜视点的变化而变化，另一方面对帖纹理的海浪模型进行扰动，从而获得其不规则的表面形状和运动效果：海浪的纹理以余弦波状曲面的方式运动，运动效果可通过调整余弦波的振幅及相位等参数来达到。
　　一个余弦波状曲面可表示为如下形式：
z(x,y,z,t)=Acos(K(X-Ct))
其中A为振幅，K为波向量(u,v,w)，X为向量(x,y,z),C为速度向量，t为时间。
　　运行结果表明：系统建立了符合实际的虚拟视景环境，运动的蓝天白云(或星空)、海浪、三维目标舰、鱼雷及静止的岛屿融为一体，系统具有良好的交互性能和视听效果及分析、统计功能，图例见图2。进一步的工作将更加密切地结合实际，将系统应用于潜艇潜浮过程中艇长的基本指挥、鱼雷攻击、导弹发射及潜艇水下避碰、定位等实际训练中。
作者简介：崔汉国　男,33岁,副教授,主要研究方向为计算机图形学、工程信息的可视化及虚拟环境
作者单位：海军工程学院武汉　430033
参考文献
　1　汪成为，高文，王行仁.灵境(虚拟现实)技术的理论、实践及应用.清华大学、广西科学技术出版社，1996-09
　2　徐迎庆，苏成，李华，刘慎权，齐东旭.基于物理模型的流水及波浪模拟.计算机学报(计算机图形学专辑)，1996，19(增刊)：153～159
　3　陈华斌，邱静，张爱军.利用OpenGL开发视景仿真软件系统.微计算机世界，1997-06：47～ 49
　4　潘志庚，马小虎，石教英.虚拟环境中多细节层次模型自动生成算法.软件学报，1996，(9)：526～531
　5　崔汉国，张惠，陈玉林.虚拟环境中视景的表示与生成.海军工程学院学报，1997-03：12～17
收稿日期:1998-06-01
