近年来,随着计算机硬件技术的加速发展,虚拟现实技术在建筑环境实时漫游中的应用成为人们关注的热点.虚拟校园漫游是城市规划应用的基本功能之一,构造一个虚拟校园漫游系统,必须综合应用计算机图形技术、多媒体技术、传感器技术、显示技术以及网络技术等多种计算机领域的最新技术.文中根据第 2炮兵士官学校规划设计,应用虚拟现实技术开发了基于桌面系统的“虚拟校园实时漫游系统”,该系统以中档 Pc机为硬件平台,对实时漫游系统的各种优化算法进行了深入研究。
1 系统总体结构
为了保证整个场景能顺利、流畅地在普通高档微机上运行,同时达到实时漫游的功能,保证其安全、可靠地运行,按照任务侧重点的不同,可将整个系统分解成场景模型子系统、漫游引擎子系统、输入子系统 、渲染输 出子系统等,它们在功能上相对独立,通过数据接口相互联系,其总体结构如图 1所示.
2 模型及贴图的优化
2.1 三维复杂模型结构的优化
虚拟校园中有许多复杂结构模型,如果模型数据库中多边形数 目超过系统的计算能力,在虚拟场景中漫游时帧处理将无法及时完成,场景变换的平滑性会受到破坏 .为了提高运行系统的实时性,必须对模型进行简化处理,以减少数据库的多边形开销,从下面几个方面对模型进行简化:
1)使用 LOD表达复杂结构模型.虚拟校园中有许多复杂模型必须用 LOD来表达,以使运行系统中的多边形数控制在预算之内,有利于提高运行系统的实时性.
2)用纹理代替多边形表达结构细节.纹理映射能够在不增加多边形数目的前提下提高场景表达的详实程度,用 LOD模型配合一定细节程度的纹理来代替多边形模型会大大降低系统的绘制负载.
3)删除冗余多边形.删除数据库中的冗余多边形可以在一定程度上减少系统中的多边形数量,这些多边形可能是模型内部的细节结构,某些多边形的背面可能是位于某平面上的模型的底面,如地面上内部不需漫游的房屋的底面等.可以用 3DSMAX中的 Optimize修饰器进行简化 ,主要用于减少模型的面数.值得注意的是,Optimize必须在贴图之前进行,否则贴图会发生扭曲.
4)移除多边形的背面.虚拟校园环境中组成绝大多数模型的多边形都是单面可见,3DSMAX能 自动剔除多边形的背面,仅显示其前面,虚拟校园环境中除构成树木模型之外的绝大多数多边形都是单面可见的.为减轻系统的运行负载,提高渲染速度,如果多边形是单面可见,应确保其状态没被设定为 2side.
2.2 纹理映射优化
虚拟校园中所使用的纹理是用数码相机拍摄景物表面细节获得的数字图像来离散定义的,之后用3 DSMAX的纹理工具进行纹理映射和对纹理进行编辑 ;但系统中纹理的大小、数量和分辨率受运行系统中纹理存储空间的限制.所以为了在不降低模拟真实性的前提下,使纹理占据的系统资源(如存储空间)尽可能少,必须对纹理数据进行优化,以提高系统的运行实时性.
从以下几个方面对纹理数据进行优化:
1)纹理大小的合理确定.纹理大小应根据图形加速卡性能、运行系统的内存及人的视觉生理特性等合理确定.为有效节省内存,虚拟校园中所用纹理多数是512×512或更小.高分辨率的纹理只有当虚拟场景需近距离观看时才使用.
2)纹理内部格式分辨率的优化配置.纹理内部格式分辨率决定了如何改变纹理数据各颜色分量的字节配置,以得到不同格式纹理在诸如性能、效率或图像质量等方面的不同效果.虚拟校园中的纹理数据做了如下的优化处理:为节省内存 ,将源数据采集效果较好 的多数 RGB文件 内部 格式分 配为 TX— RGB一5,RGBA文件的内部格式分配为 TX—RGBA一4;有些纹理数据因为采集效果不理想,为保证图像质量,将其内部格式设定为 TX—RGB一12.
3)子纹理的运用.虚拟校园中有些表面的纹理细节差别较小,如不同路段的路面纹理等,采用子纹理进行处理,既避免了明显的雷同,又节省了内存.[
3 漫游引擎子系统的优化
3.1 建立一个好 的层次结构库
由于建立的模型的各个部分在层次图中分别对应一块面板,实时漫游系统将通过层次结构图来展示数据库组成,一个有序的、有条理的层次结构图将使您的模型在实时漫游系统中以最快的速度和最正确的方式显示出来.层次结构库也是一个可视化的数据结构库.这种结构像一棵倒立的大树,根在最上面,树枝、树叶在下面.它将展示出模型的结构组织,各个组成部分以小面板的形式按照一种或多种树形结构排列,这样的方式十分有利于模型的修改.通过在层次结构图中用鼠标点击并拖动小面板来编辑任意一个面,例如,单击便可编辑视图中的任一模型结构体,双击便可得到或修改结构体的属性.而且由于面在组中或实体中时按从左到右的顺序排列,如果其中有一部分是按错误的顺序排列,可以左移或右移面板来调整它们的顺序.在显示时,对于任意一点,Z—buffer将计算这一点附近所有物体到屏幕的距离 ,最近的物体的颜色将被赋给这一点,从而防止在建立面时需要对面进行转换或排序.另外,好的层次结构库能够更加方便地用于场景的挑选.换句话说,此虚拟场景结构可以根据当前视点来挑选场景中的哪一部分是可以看到的.在渲染开始时,对不可视的几何体元素不予处理,从而加强虚拟现实场景的渲染阶段的性能.
3.2 立体显示技术
立体显示对于实现虚拟现实的沉浸感是十分重要的,对立体显示的图像可以通过头盔、液晶光阀眼镜等观察获得沉浸感.立体视觉模型要求对2个视点分别进行计算,生成左眼和右眼视图.这时需要2个投影 中心.根据投影面、人眼以及观察对象之间的相对位置,可有负视差、正视差之分.下面以负视差为例,根据透视原理进行如下推导计算:设2眼距离为2 half—eye,若将之间的线段的中点定义为坐标系的原点,该线段位于中轴上,轴与投影平面垂直,使用右手系建立一个三维坐标系.2眼的坐标分别为(half-eye,0,0)、(一half-eye,0,0),设物体点坐标为,物体离视点的距离是 0distance,投影平面距视点的距离为.从 2眼分别看该物体投影点,在投影平面上该物体投影点的坐标分别为:其中 为了方便计算投影点的坐标,选用右眼的位置作坐标原点,经计算可得到
同理可得到 ,Y .当计算左画面时,r 为正值;计算右画面时,rhalf-eye为负值.产生出立体图像对以后,使用头盔或立体眼镜观察时让每只眼睛只能看到立体图像对中的一幅图像,这样就能给人以立体的感受.
3.3 纹理映射技术
纹理映射技术是近几年来发展最快的技术之一,广泛应用 于三维真实感 图形 的生成与显 示中…J.运用纹理映射可以方便地制作真实感图形而不用花更多的时间去考虑物体的表面细节 ,纹理映射的本质是对三维物体进行二维参数化,即先求得三维物体表面上任一点的二维参数值,进而得到该点的纹理值,最终生成三维图形表面上的纹理图案.在光滑曲面上添加纹理图案的核心问题是映射,因此纹理问题可以简化为从一个坐标系到另一个坐标系的变换.其中至少涉及 2个映射,一个是从纹理空间到景物空间,有时也称为曲面参数化;第 2个映射是从景物空间到图像(屏幕)空间,即取景变换.通常,这2个变换被合成为一个变换.下面讲述如何在绘制三维场景时使用纹理映射技术.
1)大环境——天空盒.
虚拟校园中,首先要构建大环境——天空,在一些三维建摸软件如 3D MAX或者 Maya中,通常使用天空盒来表现天空景象,如晴朗的白天、灯光绚烂的夜晚等,天空盒的模型可以使用一个半球体,通过对半球体的内表面进行纹理贴图来表现天空环境.但这种模型在进行贴图时容易出现球体两扳处的走样.为了避免这种情况,使用立方体(去捧底面)模型来模拟天空.
2)真实感地形的绘制.
真实感地形的绘制分为地形模型映射以及真实感地形生成 2部分,地形模型映射就是把数字形式的地形数据转换成 multigen公司的 vega系统的基本格式,并计算相关的参数(顶点和法向量等)的过程.首先把数字地形模型转成 vega原语 ,以生成 vega可识别的原语序列 ,vega不仅提供了点、线、多边形等建模原语 ,而且通过这些原语还可把地形模型数据表示成典型原语序列、线型原语序列及多边形原语序列.由于 vega要求多边形必须是凸多边形因此在软件实现中采用了三角面原语序列表达地形模型.由于 vega不直接计算每个顶点的法向量,因此若需获得较佳的视觉效果或模拟特殊的地景,在转换成 Vega的三角面串序列时,就需为每一个顶点计算出它的法向量;且所有顶点的法向量应保持一致 ,否则有的三角面将不可见.取每个顶点的法矢量为围绕该顶点所有三角面的法向量的平均值,这样可以实现地形的平滑效果.真实感地形是指通过对地形进行透视投影、消隐等操作后生成像照片那样的黑白图像或彩色图像,产生出虚拟效果.通过 vega的纹理映射技术将地貌图片与数字地形进行融合,从而提高地形的表现力.
4 结 论
目前国外基于桌面的实时漫游系统报道较少,许多成熟的产品基本上都是采用的全景图和简单的场景.本系统是使用桌面系统实现了虚拟校园的实时漫游并且造价低廉 ,所采用的优化算法具有以下优点:
1)对纹理影射进行了优化,使实时绘制过程中的计算量少,效果几乎没有损失.
2)优化后 的虚拟现实引擎占用很少内存,为实现微机上的虚拟校园漫游系统提供了基础.通过实例测试证明算法能有效地对桌面虚拟现实漫游引擎实施了改造,使之运行在普通桌面系统上,绘制后的效果不仅保留了原来模型的特征,还能满足实时漫游的需求.