飞行仿真虚拟可视化技术
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.1 视景建模需求分析

计算机生成视景的工作主要包括以下几个步骤:

①计算生成具有真实感的物体,真实感包括颜色、光照、立体感和运动感;

②计算生成或直接从图像库中获取具有真实感的背景图像;

③经过扫描变换将物体和背景统一在同一坐标系中。

视景系统主要是指飞行仿真时观察到的景象。Creator系列软件将多边形建模、矢量建模、大面积地形精确生成三种功能集成在一起[34],它的逻辑化、层次化的OpenFlight数据格式(Flt)是可视化的数据库标准,也是视景仿真领域的行业执行标准。本书使用Creator进行视景建模[35,36],主要进行虚拟可视化系统中的飞机、导弹可视化建模,仪表可视化建模和大面积地形建模。

在飞机、导弹可视化建模中,考虑根据Creator的空间方式和逻辑方式相结合来组织数据库,将飞机模型数据库分为可动部分和不可动部分;考虑到后续的飞行仿真过程,为了使导弹能够进行发射,导弹应该单独建立模型。

在仪表可视化建模中,根据仪表的不同形式,利用Creator仪表建模模块,分别建立飞机座舱中常见的盘式量表、矩形量表、柱形量表、地平仪等仪表[37]

视景系统主要模型需求分析见表2-1:

表2-1 视景系统主要模型的需求分析

2.1.1 视景生成过程

视景仿真系统由三部分组成:视景数据库、图像生成器和显示系统。视景数据库包括几何定义数据、仿真环境需要的色彩和纹理数据;图像生成器绘制的内容是仿真器从视点方面定义的,这些数据存储在视景数据库中;显示系统可以是投影仪、CRT显示器或者头盔显示器等。

视景数据库由两部分组成,图像数据和图形数据。图像数据以直接方法或间接方法存储,图形数据以向量方式或参数方式存储。由于视景是一个随时间变化的三维世界的再现,因此,除了有像三维投影和立方体视觉等与光学有关的待解问题外,还有物体在空间中运动的实际的实时计算问题。

视景中的图像是计算机根据环境的需要,利用给定的条件和模型,在对图像数据和图形数据计算后生成的,一幅视景图像的决定条件除了语音之外还有三个:

①生成条件与模型;

②图像数据;

③图形数据。

因为图形数据易于存储计算和管理,所以占用的存储空间和信道传输带宽也小,而图像数据则需要占用大量的存储空间,而且在阴影等处理上也比图形要困难一些,有时甚至是不可能的。早期的VR系统限于条件,大多数不使用图像数据而仅使用图形数据。但只使用图形数据往往不能满足用户的要求,因为有时为了使视景逼真,例如,希望视景是在月球或行星上的,那么仅仅利用图形学的方法至少在目前是生成不出这样的图像的,所以必须将实际拍摄的图像用特殊形式加进去才会显示得逼真。当然,尽管现在存储器的成本下降得很快,但VR中对图像的存储、传输和计算问题的处理仍要十分小心,因为所用图像的数据量太大,几百兆、上千兆的存储容量对于运动图像来说是很小的。

2.1.2 视景的内部表示

(1)图形表示

图形的最基本表示单位是点和线,图形的常用单位是多边形,图形中另外的一部分基本常用概念包括曲线和曲面。

众所周知,计算机处理的是离散的数据,计算机所产生的图形显示设备对于程序设计用户来说只相当于一个帧存储器,因而,显示图形就是写存储器操作。

直线的计算机内部表示方法有两种:网栅和矢量。网栅表示是按点阵表示图像的方法,它对应直接表示模式;矢量表示通常是用直线的起点和终点坐标表示线段的,它对应图形库和图形函数的描述。多边形的计算机内部表示则采取网栅和顶点表示。矢量所表达的是连续量,而网栅所表达的是离散量,所以从矢量到网栅的映射是一种多对一的映射。

(2)图像表示

①二维图像的表示 在计算机存储、处理和显示的图像中一种最常见而且是最基本的表达就是二维数据矩阵表达,其中每一个矩阵元素代表对应点的灰度值,这种表达有时也称为直接表达或位图表达。这种表达的优点是直接对应于光栅显示设备,因而不必经过任何计算就可以在显示器上显示,这是图形所无法比拟的。这一点对于运动图像的显示特别重要。同时大多图像数据预处理算法可以直接对该表达矩阵实施操作。尽管如此,这一表达方法仍然有以下不足:

·这种表示本身没有直接包含任何关于图像中对象几何结构的信息;

·这种表示方法具有很大的冗余度,这种冗余对于存储和计算都是存在的。

在二维图像中所有的对象都可以看作是由各种不同形状、不同大小区域构成的,因而,从这一点出发可以分为两类不同的表示方法——基于边界和基于区域的方法。

②三维图像的表示 在图像中,二维表示对于图像处理很重要,但是显示及推理时,三维表示对图像处理的要求往往更为细致。在三维中可以分为对曲线和曲面的表示。在这里按照此分类讨论三维图像的表示问题。

三维曲线表示:在视觉处理中得到的三维曲线往往不是理想的曲线,中间可能存在不连续,这样与二维类似,三维B样条就是其表示方法之一。

三维曲面表示:计算机视觉的中心问题之一就是恢复三维深度,因而三维曲面的表示就非常重要。近20年来,计算机图形学在多变量曲线插值、Coons曲面、B样条、有理曲线/曲面等有较好发展。其中,Coons、Gordon创立了Coons-Gordon型曲面,提出了由曲线边界或曲线网格构造曲面的简便方法,特别有利于多张曲面的拼接。Bezier研究了以逼近为基础的构造曲线与曲面的方法,并首先推向了工业界,为CAD在制造业的应用做出了极大的贡献,至今一些著名软件如UGII等仍保留着Bezier曲线、曲面。之后,一方面,Forrest、Gordon、Riesefeld等对Bezier方法进行了进一步的探讨和改进,从中找出了此方法与Bernstein多项式及B样条理论之间的密切联系,从而使B样条曲线、曲面得到了广泛应用。B样条克服了Bezier方法的不足之处,具有局部修改方便,形态控制灵活、直观,凸包性好等优良特性,成为构造曲线、曲面的主要工具。另一方面,有理形式的曲线、曲面也受到了人们的注视,Forrest、Ball引入了二次、三次曲线。1975年,美国的Versprolle在其博士论文中率先提出了非均匀有理B样条。之后,Tiller,Piegl等对NURBS的发展作出了重要贡献。现在,国外几乎所有的商品化三维图形软件都号称使用了NURBS,而且数据交换标准IGES、PDDI、STEP都已经收入了NURBS曲线、曲面,使之成为工业标准。

(3)视景的高层内部表示

视景的高层表示中遇到的首要问题是如何表示三维物体,包括如何表示单一三维物体的结构信息及多个三维物体空间关系信息等,即在更高层次上设计虚拟环境中的视景。

我们所看到的和所能接触到的世界主要是由刚性物体组成的。当给人们一个以前从未见过的陌生物体时,人们会利用包括视觉、听觉、触觉等感官从多个不同的观察点去搜集了解有关该物体的物理结构和信息。这种详细搜索并存储物体信息的过程便称为模型生成。我们不难从一幅照片中看出其中物体的相对空间关系。换句话说,人们能够通过从图片中标识定位然后描述出物体的方位,这种图片可以对应于实际世界某一视点观察到的有限范围内的信息。这种图片在视景仿真系统中可以由数字值组成的输入矩阵表示,这些数字值可表示灰度、深度或其他标量信息,通常被称为图像。

视景高层内部表示的方法包括物体的结构与物体的多视特征表示法,其中结构表示法中包括边界法、广义锥法和结构立体几何法;物体的多视特征表示法包括特征法与特征视图表示法。

2.1.3 视景三维建模技术

为了给用户创建一个逼真的环境,使其有身临其境的感受,必要的条件之一就是根据需要能在虚拟现实系统中逼真地显示出客观世界中的一切对象。不只是要求所显示的对象在外形上与真实对象酷似,而且要求它们在形态、光照、质感等方面都十分逼真。

虚拟环境的建模是整个视景仿真系统建立的基础,主要包括三维视觉建模和三维听觉建模。其中,视觉建模主要包括几何建模、运动建模、物理建模、对象行为建模以及模型分割等。听觉建模通常只是把交互的声音响应增加到用户和对象的活动中。尽管我们可以利用某些CAD的工具,视景仿真环境建模与传统CAD和动画建模有着本质上的不同。其主要差别有:视景仿真建模中比CAD系统建模要说明的内容要多,除说明造型外还要说明许多系统连接,如自由度。由于要实时运行三维模型,其建模方法与以造型为主的建模有很大的不同,大多用其他技术如纹理来提高逼真度,而不是增加几何造型复杂度。

(1)几何建模

几何模型是用来描述对象内部固有的几何性质的抽象模型,所表示的内容包括:

①对象中基本的轮廓和形状,以及反映基本表面特点的属性,如颜色等;

②基元间的连接性,即基元结构或对象的拓扑特性。连接性的描述可以用矩阵、树、网络等;

③应用中要求的数值和说明信息。这些信息不一定是与几何形状有关的,例如基元的名称,基元的物理特性等。

对象中基元的轮廓和形状可以用点、直线、多边形图形、曲线或曲面方程以及图像等方法表示,到底用什么方法表示取决于对存储和计算开销的综合考虑。抽象的表示利于存储,但使用时需要重新计算;具体的表示可以节省生成的计算时间,但存储和访问存储所需用的时间和空间开销比较大。

几何模型一般可以表示成分层结构,因而我们有可能使用自顶向下的方法将一个几何对象分解,也可以使用自底向上的构造方法重构一个几何对象。

对象形状能通过PHIGS、Stardase或GL、XGL等图形库从头创建,但一般都要利用一定的建模工具。最简便的方法就是使用传统的CAD,当然得到高质量的三维可视化数据库的最好方法是使用专门的视景仿真建模工具。

虚拟对象外表的真实感主要取决于它的表面反射和纹理。以前,提高一个对象真实感的办法是增加物体的多边形细节。在需要实时仿真时,增加多边形会使图形处理速度变得缓慢。现代图形硬件平台具有实时纹理处理能力,例如SGIOnyx2工作站允许三维的图像数据覆盖到多边形上。这意味着在维持图形速度的同时,可用少量的多边形和纹理增强真实感。纹理中的最小元素被称为纹理元素。每个纹理元素由红、绿、蓝、亮度和透明度Alpha组成。

纹理给视景仿真带来了许多好处。首先,它增加了细节水平以及景物真实感;其次,由于透视变换,纹理提供了更好的三维线索;最后,纹理大大减少了视景多边形的数目,因而提高了刷新频率。

纹理能用下面两种方法生成:一个是用图像绘制软件交互地创建编辑和储存纹理位图,另一个是用照片拍下所需的纹理,然后扫描得到。目前,已有商品化的纹理数据库出售。很多高级的图形平台,通过提供复杂实时纹理硬件来提高真实感。

(2)运动建模

仅仅建立静态的三维几何体对视景仿真来讲是不够的。在虚拟环境中,物体的特性涉及位置改变、旋转、碰撞、缩放、表面变形等。

物体位置包括物体的移动、旋转和缩放。在视景仿真中,我们不仅对绝对坐标感兴趣,也对三维对象相对坐标感兴趣。对每个对象都给予一个坐标系统,称之为对象坐标系统。这个坐标系统的位置随物体的移动而改变。

在视景仿真系统中,我们经常需要检查对象A是否与对象B碰撞,例如用户的手是否已触到了虚拟的球。碰撞检测需要计算两个物体的相对位置。如果要对两个对象上的每一个点都做碰撞计算,就要花很多时间。很多视景仿真系统在实时计算中采用矩形边界检测以节省时间,但把精确性降低了。事实上,这种方法类似光线跟踪技术中的包围盒技术。

(3)物理建模

虚拟对象物理建模包括定义对象的质量、重量、惯性、光滑度或粗糙度、硬度、形状改变模式等,这些特性与几何建模和行为规则结合起来,形成更真实的虚拟物理模型。

计算机物理仿真作为传统的数量分析和预测的工具,具有一定的作用。建立仿真系统需要物理学和计算机图形学配合。

建立动态虚拟物体对象的关键在于适当地对动态约束处理,将简单的对象合并成复杂的对象,如可以用来表示一些拼图和滑梯等对象,或者将一堆零件装配成机器。动态约束也允许用户定义所期望对象的形式和行为。

在物理系统中增加或删除约束将从结构上改变系统运动方程,约束的改变导致力的变化。交互环境必须反映这些变化,可以自动地求解新的运动方程,且没有明显的滞后现象发生。

(4)对象行为建模

除了建立对象运动和物理特性对用户行为直接反应的数学模型外,我们还可以建立与用户输入无关的对象行为模型。

行为,简单地说,是指动态实体活动、变化以及与环境和其他动态实体之间的动态关系。它的目标是模拟不同的动态对象,例如:植物、动物、飞机等的行为。虚拟环境中实体的行为可划分为“确定性的”和“非确定性的”两种基本类型。描述某一实体的行为是“确定性的”是指:它的状态是时间的一元函数,也就是说,我们可以确定实体在任意给定的仿真过程中的完整状态。“非确定性的”是指:其行为是不可预见的,具有一定智能的实体,如人、动物,其行为是不可预见的。

行为建模就是在创建模型的同时,不仅赋予模型的外形、质感等表现特征,同时也赋予模型物理属性和“与生俱来”的行为与反应能力,并且服从一定的客观规律。

(5)模型分割

虚拟环境的几何体和物理建模所得到的是一个非常复杂的模型,大量的多边形使绘制速度大大减慢。如果现有RAM不能满足绘制对大量内存的需求,则会导致大量的内存交换,从而降低系统的交互速度。

这些问题在建筑仿真中也会出现。因为要虚拟化整个大型建筑的地板、办公室、客厅、门窗、走廊、楼梯等,这样一个模型可能有成千上万的多边形。同样的问题也存在于虚拟外科手术的仿真上。我们知道,人的结构是非常复杂的,我们不可能在满足交互速率的条件下以足够的细节去绘制出人体的真实图形。

任何应用都可能面对建模复杂度问题。在建立模型中,可采用几个办法,如单元分割、变化细节、分辨率显示、脱线预先计算以及内存管理技术等,来提高系统运行的实时性。