1、 本科毕业设计说明书(论文) 第 34 页 共 34 页目次1 引言21.1 本课题的意义和背景21.2 本论文的主要工作内容22 虚拟漫游系统的研究32.1 漫游系统简介32.2 国内外虚拟场景漫游技术研究状况42.3 建模软件分析62.4 图形驱动软件分析83 三维场景建模83.1 MuItiGen Creator建模技术83.2 视景模型的建立94 图形驱动174.1 图形驱动软件Vega174.2 虚拟场景漫游的实现194.3 漫游设定过程中所遇到的问题215 VEGA中查询技术的实现225.1 Vega的API函数简介225.2 Pickfly简介225.3 Vega程序实现236
2、运行结果29结论30致谢31参 考 文 献321 引言1.1 本课题的意义和背景虚拟现实(Virtual Reality缩写为VR,又称灵境技术)是近年来十分活跃的技术研究领域。它依托于计算机科学、数学、力学、声学、光学、机械学、生物学乃至美学和社会学等多种学科,是一系列高新技术的汇集,包括计算机图形学、图像处理与模式识别、智能接口技术、人上智能、多传感器技术以及高度并行的实时计算技术,还包括人的行为学研究等多项关键技术。目前,其应用己广泛涉及军事、教育培训、工程设计、商业、医学、影视、艺术、娱乐等众多领域,并带来了巨大的经济效益1,2。在现实生活中,伴随着计算机及网络技术的飞速发展,数字化潮
3、流己是全球经济发展的必然趋势,场景视景仿真技术已作为数字场景的支撑技术之一。国内在这一领域与一些发达国家相比,由于起步较晚,还有一定的差距,特别是从事底层开发,差距更大,因此,掌握国外一些世界领先级软件的性能,并对其进行二次应用开发显得尤为重要。MULTIGEN VEGA作为一套理想的实时视景仿真工具,给用户提供了一种处理复杂仿真事件的便捷手段3,4。本课题通过使用MULTIGEN CREATOR建模工具建造运动场的三维模型、用Vega视图驱动软件进行二次开发,实现了一个具有三维虚拟场景显示、漫游及实体查询功能的虚拟现实系统。在课题的实现不仅要求掌握MULTIGEN软件环境和建模技术,同时也要
4、对MULTIGEN VEGA的界面设计和二次开发工具包(VEGA API)有较深入的了解。1.2 本论文的主要工作内容 本论文重点对虚拟现实建模技术方法和实时漫游技术的实现进行了研究和探讨。其具体安排如下所示: 第1章为绪论。在阐述虚拟现实建模的意义和背景的基础上,明确了本课题的意义,同时概括了本论文的主要内容。 第2章介绍了虚拟漫游技术,主要内容有:虚拟漫游系统的相关概念;国内外虚拟场景漫游技术研究状况,着重讨论了虚拟场景漫游技术种类,及本课题所使用的技术类型;介绍了当前比较流行的建模和图形驱动软件及其特点,从而明确了本课题所使用的软件。第3章介绍了三维场景建模,包括本课题模型制作的详细过程
5、及其中遇到的问题和相应的解决方法。第4章阐述了图形驱动软件Vega的特点,以及在本课题中使用Vega实现虚拟场景漫游的过程,同时也总结了在课题实现过程中遇到的问题和相应的解决方法。第5章讲述如何使用vc+来实现Vega中的信息查询功能。第6章展示最后的运行结果。2 虚拟漫游系统的研究2.1 漫游系统简介漫游系统包括一个逼真的视、听、触觉一体化的特定范围的虚拟环境,它是一个真实空间或假想空间的实时仿真虚拟空间,用户借助必要的装备以自然的方式在该虚拟空间中漫游,从任意角度对环境中虚拟对象进行观察,从而产生身临其境的感觉,同进也可以对其中的物体进行规划和操作。一般来说,虚拟场景漫游系统具有图2-1所
6、示的总体框图5。图2-1 虚拟漫游系统总体框图近年来CAD技术的普及,使得设计者可以用计算机进行三维建模,利用效果图和三维动画来表现真实世界的三维空间。然而,效果图只能提供静态局部的视觉体验;动画虽然有较强的动态三维表现力,但不具备实时的交互性,人是被动的,而且是对方案的修改以及观察路线的变化需要重新计算,几天甚至几周才能够看到结果,基本上不能辅助设计师动态地推敲和调整方案。尤其是目前的动画,需要相当高的投入,而只能实现简单、固定的演示功能,因此也未能在设计领域被广泛采用。虚拟漫游系统则可以很好地解决上述问题。漫游系统将以前的平面设计变成具体形象的三维场景,没有时间限制,并且场景中的三维景观具
7、有实时交互性。在设计成果的展示方面,虚拟漫游系统更具有传统技术不可比拟的优势。漫游系统中的沉浸感和互动性不但能够让用户获得身临其境的直观体验,同时还能随时获取项目的数据资料,而且更可以导出视频文件用来制作多媒体宣传资料,进一步提高项目的宣传展示效果。例如,英国的Skye岛大桥的规划设计,在环境保护问题上有争议,受到公众关注。后来应用虚拟现实技术,逼真地向公众展示了设计建成后的大桥及周围环境的形貌,以及作环岛飞行和驾车通过大桥的动态视觉感,受到公众的欢迎,大桥的设计方案也得到了肯定。2.2 国内外虚拟场景漫游技术研究状况目前国内外研究的虚拟场景漫游在实现方法上可分为两种,主要按照虚拟场景的构造方
8、法来区分。一种是传统的基于几何建模的虚拟漫游技术,另一种是新兴的基于实景图像的虚拟漫游技术5。2.2.1 基于建模的虚拟漫游技术 基于建模的虚拟漫游技术(简称建模法)以计算机图形学为基础,首先对真实场景进行抽象,用多边形构造虚拟景观(包括地形、建筑、实体、树木)的三维几何建模,并建立虚拟环境中的光照和材质模型,然后进行纹理映射及控制参数设定,最后通过软件控制根据观察者的位置、光照、消隐信息,在输出设备上实时渲染绘制视景画面,从而完成对整个场景的漫游。图2-2是建模法的流程框图。图2-2 建模法的流程框图 建模法实现的漫游系统中虚拟景观大多具有精确对应的几何模型,得到的场景显得比较细腻、逼真,同
9、时便于用户与虚拟场景中虚拟对象的交互,以及对虚拟对象的深度信息进行直接获取:即使在规划设计阶段,只要有相关的建筑图纸,按照对应比例与尺寸,一样能够完成场景的构建与漫游,即能够实现虚物实化。建模法应用时间较长,技术路线比较成熟,国内外都研发了许多建模工具及控制集成软件,这些都使得建模法目前实际应用比较广泛。但是,建模法也存在许多工作不足:一是对复杂场景进行详细建模太过烦琐。工作量大,费时费力;二是当场景模型复杂时,实时显示的计算量较大,难以将实时交互与高质量图形环境结合起来,场景难以达到完全逼真:三是场景实时渲染绘制对计算机软硬件要求较高。随着视景建模、图形快速显示、实时交互等相关技术的发展及硬
10、件性能的不断提高,建模法在虚拟漫游领域还是很有用武之地的。本课题所实现的运动场采用了基于几何建模的方法。2.2.2 基于图像的虚拟漫游技术基于图像的虚拟漫游技术(简称图像法)不依赖于三维几何建模,而是利用照相机采集的离散图像或摄像采集的连续视频作为基础数据,经过图像处理生成真实的全景图像,然后通过合适的空间模型把多幅全景图像组织为虚拟实景空间,用户在这个空间中可以前进、后退、环视、仰视、俯视、近看、远看等操作,从而实现全方位三维场景漫游的效果。图2-3是图像法的流程框图。图2-3 图像法的流程框图虚拟实景空间的生成主要依赖于全景图像生成器和空间编辑器。前者负责把多幅相互间有少量重叠区域的普通图
11、像或连续的视频拼接为全景图像,把众多的全景图像组织为虚拟实景空间的功能则是由空间编辑器实现,常用的处理方法有图像透视交换、图像拼合、图像变形、图像合成与裁剪等。浏览器提供给最终用户漫游虚拟实景空间时使用,它采用全景图像数据预调,视点空间缓冲预调、视图变形、图像平滑过渡等一系列关键技术使得用户视点转移时场景能够平滑过渡,从而保证了用户视觉的一致性,使用户产生在实景空间中行走的感觉。图像法能生成反映真实场景的高质量的图像环境,由于不需复杂建模,漫游效果及处理时间与场景内容的复杂度无关,不需要专业的图形加速设备,对硬件的要求不及几何建模那么高,而且通过真实图像完全可以实现实物虚化,可以应用于旅游景点
12、、虚拟场馆介绍以及远地空间再现等许多方面,是目前国际上的研究热点之一。但图像法首先要求获得基于真实场景的实景图像(Real World Images),因此当真实场景并不存在,或还只处于设计规划阶段时,在场景构造上它就无能为力了:而且由于场景中的虚拟物体是图像中的二维对象,因而用户很难,甚至不能与这些二维对象进行交互:另外,获得实景图像需要高性能的照相与摄影装备,得到的大量图像文件也需要大量的存储空间,这些都使它的应用受到了一些限制。2.2.3 基于图形与图像混合建模的虚拟漫游技术 上述的两种实现虚拟漫游技术方法中,建模法可称为基于几何模型的建模和绘制(Geometry-Based Model
13、ing and RenderingGBMR),又称为基于图形的建模和绘制(Graphic-Based Modeling and Rendering),而图像法要称为基于图像的建模和绘制(Image -Based Modeling and Rendering-IBMR)。这两种方法各有优缺点,如果采用基于图形与图像混合建模技术就能将两者的优点集合于一体,在应用中扬长避短。混合建模技术的基本思想是先利用IBMR构造虚拟场景的环境来获得逼真的视觉效果,同进对虚拟环境中用户要与之交互的对象利用GBMR来进行实体构建,这样既增加了场景真实感,又能保证实时性与交互性,提高用户的沉浸感。混合建模虽然具有各种
14、优点,但其实现也带来了很多技术上的困难。首先是虚拟实体对象(即实体模型)与纯粹对象(即二维图像中的对象)之间在虚拟世界坐标系中的坐标位置、摆设方向上要精确匹配,其次是虚拟实体对象几何模型,在虚拟光源照射下所产生的实体亮度、阴影强度及方向与纯粹虚对象的亮度、阴影强度和方向也要准确匹配,另外,这种虚实无缝连接还要满足实时交互性,即随着用户视角、位置的改变要能立即生成新的视点图像,而且对实体对象的操作要能立即得到反馈。这些都对虚拟现实混合建模的算法提出了很高的要求。因此,混合建模技术现在还处于探索研究阶段,还没有得到广泛应用。 GBMR方法在实现时为了降低场景的复杂度,经常也采用图像作为纹理来替代实
15、体模型的表面细节甚至整个模型,但其对纹理图像的使用并没有象IBMR中对连续图像进行拼合、组织、编码以形成场景,因此,这种图形与图像的混合使用与真正意义上的混合建模技术还有很大的距离。2.3 建模软件分析 从80年代初到90年代,是虚拟环境技术开始进入实际应用的阶段。这个时期,国外开发出一系列的虚拟现实系统,最开始应用于航天、国防,近年来逐渐应用于交通、电力、管理等等行业。在虚拟环境系统中只有交互设备是不够的,还必须提供基本的软件支撑环境,使用户能方便的构造虚拟世界并与虚拟世界进行高级交互。以下就几个典型的软件进行分析:(1)Multigen Multigen是在图形工作站上比较知名的实时三维模
16、型建模工具软件系统,由Multigen公司出品,具有良好的性能,系统可靠、稳定性好,可交互构造三维模型用于创建相关联的现实事物。它的平台主要是著名的SGI公司提供的系统产品,并有支持NT的简化版本。Multigen是基于Open Flight,即Multigen公司的描述数据库格式的工业标准。Open Flight包括了绝大多数的应用数据类型和结构,确保实时三维性能和交互性的逻辑关系,在提供优质视觉的同时优化内存占用。同时,它还提供其他多种数据格式转换工具,如Alisa/Wavefront,AutoCAD DXF, 3DMAX, Photoshop Image Files、Inventor等。
17、这使有些已有的用其他软件建模的三维模型得到充分利用。它还具有动态数据库重组、动态仪表生成、实时地形生成等功能,并提供扩展工具SDK(系统开发工具),可定制生成适合用户的特殊需求。(2) AutoCAD AutoCAD是一个开放型的CAD软件包,用它绘制图形具有极高的精度,AutoCAD的双精度浮点运算可以精确到小数点后16位,无论怎样频繁地编辑图形,都能保持图形的精确。它提供了丰富的基本绘图对象,具有完善的图形绘制功能和编辑功能,内含AutoLISP语言和ADS, ARX开发系统,利于用户进行二次开发。AutoCAD提供了多种接口文件(如SCR, DXF, IGES等),便于与高级语言进行信息
18、交换,或者与其他CAD系统进行相互的图形转换。在图纸的设置和输出方面,AutoCAD能够把三维模型输出为精美的、符合工业标准的工程图纸,这在同类软件中是出类拔萃的。但它的缺点是灯光渲染和动画功能方面不如3DS Max强大。(3) 3D Studio Max Autodesk公司的3D Studio Max是三维动画软件,近年来在三维仿真中也有应用,它支持Windows 95/98, Windows NT平台,具有多线程运算能力,支持多处理器的并行运算、建模和动画能力丰富,材质编辑系统也很出色。另外,如Nurbs, Dispace Mokify、摄像机跟踪、运动捕获等,原本只限于专业软件中才可能
19、具有的功能,现在也被引入到了3DS Max中。3DS Max最大的优点在于插件特别多,其中许多插件是非常专业的,如专用于设计火烟、云效果的Aferburn,制作肌肉的Metareye等,利用这些插件可以制作出更加精彩的效果,但缺点是渲染质感相对较差,不管从渲染质量和渲染速度上来讲,同Softimage 3D这类软件还是有差距。(4) Lightwave 3D Lightwave 3D是NewTek公司推出的,也是全球唯一支持大多数工作平台的3D软件。在Windows 95/98/NT, SGI, SunMicro System,PowerMac, DEC Alpha等各种平台上都有统一的界面,
20、操作相对比较简单,易学易用。其优势在于渲染质感非常优秀,而缺点是功能还不够完善,造型动作不够灵活。它在影视艺术制作市场中,Lightwave 3D的软件装机率占所有动画软件的一半。泰坦尼克号中的泰坦尼克号模型,就是用Lightwave制作的。综上所述,Multigen由于其出色的数据结构设计,更适合实时仿真应用的开发,而其他几个软件可以实现更复杂、渲染效果更精美的应用开发。根据以上软件的特点和实验室的条件,本课题采用三维仿真软件Multigen进行漫游系统的建模。2.4 图形驱动软件分析在三维场景漫游仿真领域,有两种技术路线可以选择:基于Open GL和C从底层做起;基于Vega等经过二次封装
21、的软件开发。前者的优势是灵活,可以适用于各种应用,但前提是用户有较好的程序设计能力,而这恰恰是一般用户所不具备的;后者就是为了弥补前者的缺点应运而生的,其优点在于无需大量编码,可以提高系统的开发效率。由于Vega包括友好的图形环境界面Lynx,通过图形用户界面初始化所有Vega程序需要的要素:如观察者、加入的场景元素、物体、地形地貌、环境、灯光以及渲染的视窗等。用户可以将物体放在场景中的任何位置,可以对场景和环境进行预先的渲染,这将大大的减少用户所需要的编程工作。Vega还具有完整的C+语言应用程序接口API。鉴于本课题的时间有限,故选用Vega作为图形驱动软件,同时为了实现查询功能,要结合V
22、ega API和VC+进行程序设计。3 三维场景建模3.1 MuItiGen Creator建模技术Multigen Creator是Multigen paradigm公司最新推出的一套高逼真度、最佳优化的实时三维建模工具,它能够满足视景仿真、交互式游戏开发、城市仿真以及其它的应用领域。Multigen Creator是唯一将多边形建模、矢量建模和地形生成集成在一个软件包中的手动建模工具,能进行矢量编辑和建模、地形表面生成。 Multigen Creator强大的工具核心为25种不同的图像生成器提供自己的建模系统和定制的功能。先进的实时功能如细节等级、多边形删减、逻辑删减、绘制优先级、分离平面
23、等是OpenFlight成为最受欢迎的实时三维图像格式的几个原因,这种数据格式己成为视景仿真领域事实上的行业标准。许多重要的VR开发环境都与它兼容。Multigen Creator的建模环境提供同时交互的、多重显示和用户定义的三维图形观察器和一个有二维层次的结构图。所有的显示是交互的和充分关联的。这种灵便的组合加速了数据库的组织、模型生成、修改编辑、赋予属性和结构关系的定义。由于其先进的功能,优化的文件格式,使得该软件成为当前面向虚拟现实建模的主流,并在各个工程领域的虚拟现实研究开发中得以广泛采用6-9。3.2 视景模型的建立3.2.1 建模的基本知识几何模型的描述与建立是计算机图形学中重要的
24、研究领域。首先,在计算机中建立起三维几何模型。在给定观察点和观察方向后,使用计算机的硬件功能,实现消隐、光照以及投影这一成像的全过程,从而产生几何模型的图像。几何对象的几何模型描述了虚拟对象的形状和它们的外观(纹理、颜色、表面反射系数等)。几何模型具有两个信息,一个包含点的位置信息,另一个是它的拓扑结构信息,用来说明这些点之间的连接。 整个模型数据库的建立都是在Creator软件中完成的,该软件最大的优点在于它能够充分考虑实时性的需要,用最简单的信息表达复杂的结构,而且它能够有效的借助光源、材质、纹理等加强场景的逼真度而不影响实时的渲染速度。用建模要遵循几条基本原则,其一应建立凸多边形,凹多边
25、形会影响实时显示的效果,出现凹多边形时应把它分解成若干个凸多边形;其二不要使两个面产生覆盖现象,因为当两个面的深度值一样时,场景渲染就会无法确定覆盖部分的显示,出现扭曲等现象,当两个面确实要重叠时,应该采用一定的处理手段,可以用子面的方法,也就是说把一个面作为另一个面的子面,即两个面在数据库中不是同级关系,而是上下级关系,或者就把相互覆盖的两个面作为几个面来建模以消除覆盖现象。同时,一个场景中的对象模型的组织结构(在Multigen中称为场景数据库)对视景系统的运行质量有极大的影响。适当的组织结构(数据库结构)是用户创建满足自身需要模型的关键技术。目前,树状层次结构被广泛用作模型的组织结构。C
26、reator的建模环境提供同时交互的、多重显示和用户定义的三维图形观察器和一个有二维层次的结构图。如图3-1所示为层次结构视图,所有的显示是交互的并是充分关联的:这种灵活的组合加速了数据库的组织、模型生成、修改编辑、赋予属性和结构关系的定义。图3-1 层次结构视图在建模过程中,即使是最简单的模型,也应该调整层次结构视图,而达到优化的目的。层次结构视图(Herarchy view)及其修改上具(Herarchy Tools)是与用户交互的,并且通过鼠标点击或选择后拖曳达到重新安排结构的目的,若用鼠标双选项,则会打开相应目录的属性表。调整的原则为: 1)建立这个模型的最终目的(即要达到的程度,需要
27、用到的技术): 2)优化口标实时模型系统限制(如限制软硬件平台、颜色、多边形数口、利质、光源和纹理等参数): 3)模型系统的背景要简单、真实; 4)提高模型系统中重要部分的精度。3.2.1 运动场模型的建立操场的建模是项很复杂的工作,虽然它涉及的建模技术并不难,但是建模的工作量很大,最后产生的面和实体很多。前面介绍过,在Multigen creator中,一个场景中的对象模型的组织结构对视景系统的运行质量有极大的影响。因此为了提高运行质量,建模之前需要对运动场各个部分进行适当的分类,制定出合适的层次结构视图。随后,再搜集运动场的各项尺寸参数,通过视图得到各种部分的尺寸和依托关系,并且考虑清楚大
28、致的建模流程和步骤。在实际的建模的过程中,可以把运动场分成地面、主门、看台、外部花坛等四大部分来分别建模,而这四个部分也是层次结构视图中二级结构中的主要部分,最后再将这四个模型组合装配,就形成了运动场的三维几何模型。(1) 地面模型由跑道和主地面通道组成。主地面绘制成长方体,跑道由两个半圆加一个长方形绘制。运动场外围由一个大圆制成,然后使用切割工具切割为如图3-2所示的外围图形图3-2 运动场地面模型随后我们为了提高运动场的逼真度,将使用creator中的帖图工具,而我这次使用的图形是用数码相机在运动场中拍摄取景,然后用photoshop软件进行处理后得到的帖图材质。使用帖图材质后的运动场地面
29、模型如图3-3所示。图3-3 经过帖图后的地面模型(2)主门模型 在进行主门模型的建立前,我将先制作一个楼梯模型,并由此来说明主门建立的方法。在Creator中提供很多建模的方法,多边体的绘制通常是先画出一个的多边形,然后通过拉伸生成出多边体。在这里楼梯的侧面就是一个多边型。我将使用多边型绘制工具绘制出楼梯的侧面,如图3-4图3-4 楼梯侧面模型随后我将使用体工具拉伸工具将模型进行一定的拉伸,使其成为成为一个立体图形,再帖图后成为如图3-5所示。楼梯模型我先留着,后面我还将在模型中引用。图3-5 楼梯模型主门上半部分的建立,也是和楼梯的建立步骤一样,我就不做更多说明。模型如图3-6所示。图3-
30、6 主门上半部分模型对于主门下半部分的建立,我先建立支柱的横截面,然后用面跟踪工具,将面定位到要将支柱植入的那个面上,最后使用“植入”这个工具即可。主门模型如图3-7所示。图3-7 主门模型(3)看台模型看台模型的建立,其步骤和楼梯的建立方法一样,只是侧面图形略显复杂,需要仔细参考实体模型。在这里我要说下模型的比例问题,当创建一个模型后可能模型大小不合适。这个时候我们就要用“比例”工具,将模型比例弄到合适的大小。同时还要使用“移动”工具,将模型移到合适的位置。以上介绍的那些工具都是在本次模型中多次使用到的,后面的模型介绍中就不做更多说明。看台,主门,楼梯三者之间的组合后的模型如图3-8和3-9
31、所示。图3-8 运动场前半部分模型图3-9 运动场大部分模型(4)花坛模型最后我们将建造运动场前的花坛和路面,路面的建立比较简单,我就不做说明了,对于花坛的建立我使用了圆面工具的建立,然后进行适当的拉伸,其效果如图3-10所示。图3-10 花坛模型运动场模型到这里已经基本建完。在进行了多余面的处理后,其整体模型如图3-11所示。图3-11 运动场完成后的模型3.2.3 建模过程中应注意的问题(1)模型格式的转换虽然Multigen Creator提供了非常简便的建模工具,但是它对曲面的处理比较弱,而且对于一个庞大的大型场景建模,我们还需要其他的辅助建模软件,如:3Dmax ,VRML等。Mul
32、tigen Creator只支持3种文件导入格式(dxfobj,3ds) ,因此首先要借助于模型格式转换工具(如3D Explorer, Po1,yTrans,本文采用PolyTrans ),PolyTrans支持很多种格式的转换,如3ds,3d2,ioh,lw,flt等,然后可以把这些转换成Multigen Creator支持的flt格式。由于场景数据极为庞大,无法同时转换,我们首先将场景划分成多个独立的物体,将这些物体分别进行格式转换,生成单独的场景文件,最后在Vega中综合形成完整的虚拟场景。(2)造型的整理 为了适应实时漫游的需求,在进行了格式转换过后,仍然需要对造型进行整理,这些工作
33、包括:将造型按照建筑物,材质,纹理以及形状分组,并存储为树形结构:重新构造那些在格式转换过程中发生变形(如曲面拉伸体可能会发生扭曲变形现象)的造型;造型简化,构造LOD层次,进行纹理转换等。简化模型的规则如下:l 去掉隐藏的多边形;l 当模型不太影响视觉效果时,可用二维图形代替三维模型;l 以简单的轮廓代替复杂模型的细节;l 由纹理来代替细节。(3)造型的合并针对不同的场景,应采用不同的合并方法. 对于小场景,造型不多,需要合并的文件数目较少,可以采用以一个文件为主的复制粘贴的方法,生成最后的文件,将其他造型通过粘贴拷贝大当前文件中并放置于合适的位置,同时在层级目录结构中调整层次关系,可以达到
34、整合场景的目的,其优点是方法简单易用,生成后的文件模型不会发生转移存储目录后就丢失纹理的事情,并且便于保存,其缺点是生成的FLT文件较大,调入场景的速度慢,不利于实时漫游,因此仅适用于简单场景。,并行式分布处理模式,对于复杂场景,单体造型较多,不宜采用上述处理方法,一般以一个主体文件,通过使用外部引用的功能,将其他造型文件导入,这样每个造型的纹理文件和三维模型文件都能保持独立,从而使最后的整合文件较小,因此,在计算机处理场景时,不会因为一次性调入过多的图形和纹理而死机或者使得漫游速度过慢。(4)纹理在虚拟场景的构造中,纹理拼贴是实现实时场景真实感的一个极为重要的途径,虽然Multigen Cr
35、eator对纹理的格式,大小等并没有很大的限制,但Vega对纹理的要求很严格,那些不满足要求的纹理均不能正确显示,为了虚拟漫游的需要,应将所应用到的纹理图像作如下修改:l 纹理的格式,将纹理文件转换成Vega支持的文件格式:RGB,RGBA,INT,INTA,BMP,JPG;l 纹理的大小,将纹理的大小修改为Vega中所规定的长度2的n次方;l 带a的纹理,如果RGB文件中包含了a值,则文件的后缀名必须是RGBA才能在Vega中正确显示。 总之,利用Multigen Creator建模过程中,应在确保真实感的前提下,尽量减少数据量,对模型的简化应考虑到交互虚拟现实的要求,在组织结构图时,须对结
36、构图进行优化调整,使之具有规律性,便于在Vega程序设计中控制。4 图形驱动4.1 图形驱动软件Vega4.1.1 什么是Vega Vega是美国Multigen-Paradigm公司用于虚拟现实、实时视景仿真、声音仿真以及其它可视化领域的世界领先级应用软件工具。它支持快速复杂的视觉仿真程序,能为用户提供一种处理复杂事件的便捷手段。Vega是在SGI Performer软件的基础上发展起来的,为Performer增加了许多重要的特性。它将易用的工具和高级仿真功能巧妙的结合起来,使用户以简单的操作迅速地创建、编辑和运行复杂的仿真应用程序。由于Vega大幅度地减少了源代码的编程,使软件的维护和实时
37、性能的进一步优化变得更加容易,从而大大地提高了工作效率。使用Vega可以迅速创建各种实时交互的3D环境,以满足不同行业的需求。Vega包括友好的图形环境界面、完整的C语言应用程序接口API、丰富的相关实用库函数和一批可选的功能模块,能满足多种特殊的仿真要求,因此可以将Vega的应用领域扩展到各个领域。无论对于专业的程序员还是仿真爱好者,Vega都是理想的实用工具10-14。4.1.2 什么是LynXLynX是用来设定和预览Vega应用程序的图形式用户界面。在Vega中,应用程序可以是用户在Vega开发环境下独立开发的程序,也可以是使用Vega本身所自带的软件包来执行一个基本Vega应用程序。图
38、4-1 Vega的界面LynX图形环境是点击式的,用户只需要用鼠标的左、中、右键点击即可驱动图形中的对象物以及动画中的实时控制。它可在不干涉源代码的前提下便捷地改变应用程序的性能,如显示通道、多CPU资源分配、视点、观察者、特殊效果、时间尺度、系统配置、模型和数据库等。此外,LynX的开放性使用户可以根据自己的特殊需求赋予其新的功能。LynX的预览功能可使用户实时地看到修改的效果。事实上,这个强大而全面的仿真工具可以帮助用户轻而易举的完成工作任务。Vega使用LynX界面定义和预览Vega的应用程序。在Vega中包含了创建一个应用程序所必须的全部API,但是简单的应用程序仅靠LynX就可以实现
39、,LynX允许用户在不写源代码的情况下即可以配置一个应用程序。在许多场合,对于一个仿真应用程序可以同时使用LynX和Vega的API函数15-17。 编制实时仿真程序是一项极为枯燥和烦琐的复杂任务,但是LynX和Vega可以减少开发者的大量精力并能实现用户的理想效果。图4. 1就是LynX的界面。LynX通过提供一个点击式的界面,使得编辑ADF (Application Definition File)文件变得很简单,每一个类事件都有一个系统预设置的例示,这些类的成员变量可以被分配合适的值。LynX不仅可以编辑由Vega所定义的类,LynX还是完全可以配置的,在外观上动态的改变自己,并且在执行
40、上按照简单的ASCI配置文件。这些改变包括进入面板的数据量和在这些面板上出现的交互式的图形控制。应用程序ADF在重新编辑的时候不需要扩展或者修改LynX的面板。 用户可以在LynX的配置文件里面加入新的值,新的面板将会出现,这种技术事实上就是,可选的Vega模块如何和Vega的LynX图形用户界面之间的无缝连接问题。我们也可以从LynX的配置文件里删除某一个控制面板或者控制面板的控制数据输入,因此可以将LynX图形用户界面变成只相对于特定用户的界面。通过这种方法,LynX可以变成开发环境的一部分,也可以是完整仿真的一部分。4.2 虚拟场景漫游的实现LynX的图形用户界面所包含的面板有,应用程序
41、面板、通道面板,剪贴对象物面板、颜色面板、定制统计表面板、数据库管理器面板、环境效果面板、环境面板、图形状态面板、输入设备面板、相交矢量面板、光照面板、运动模型面板、导航器面板、对象物面板、观察者面板、路径面板、场景运动体面板、场景面板、系统面板、体面板、窗口面板。在本次设计中,主要用到的是Observers、Scenes、Motion Models和Objects,因此,下面简单介绍一些这几个面板的功能:1)对象物面板(Objects):对象物是许多几何体的一个集合。在一个场景中涉及许多对象物,合起来代表一种可见的情景景物。对象物从一个数据集中导出,初始状态的表示由数据库构造工具进行定义。2
42、)观察者面板(Observers):这个面板能够创建并且管理观察者的类事件。一个观察者类似于一台摄像机或一台放置在数据库中的传感器。观察者控制装载管理并且被锁定在一个场景运动体上,也可以由一个运动模型控制。观测一个场景必须要有一个观察者。观察者使用通道来决定场景的观测体,就像照相机使用镜头来决定摄像区域一样。通道和照相机镜头在许多方面是相似的,但是通道更灵活。3)运动模型面板(Motion Models):这个面板可以创建或者管理运动模型类事件。一旦创建了这个事件,就把一个运动模型加入到一个观察者的类事件中,或加到一个场景运动体的类事件中。每种运动模型的类型允许用户用一台输入设备交互的控制加入
43、的观察者或场景运动体的位置和方向。4)场景面板(Scenes):场景是为一个观察者所设观看对象物的集合。场景中的任何数字可以同时在Vega中激活。多个观察者可以同时观看同样的场景。可以为一个场景添加对象物,也可以从中删除。一旦一个对象物添加到场景中,它就变成可视的。本课题中设置Vega中Lynx主要步骤如下:第一步:选择Object(对象)按钮,设定虚拟场景中要加入的地形,建筑物等三维模型文件,在这里我加入在上面用creator软件制作的运动场三维模型。第二步:选择Scene(场景)按钮,设定虚拟场景中要显示的全部目标。第三步:选择Observers(观察者)按钮,设定在虚拟场景中进行观察的方
44、式。第四步:选择Motion Models(运动方式)按钮,设定观察者在虚拟场景中的运动方式。第五步:选择tool工具栏中的tool path按钮,设定观察者在虚拟场景中的运动路径。如图4-2所示。第六步:选择preview工具栏中的active preview按钮,就可以看到你在前面所设置的场景漫游图形,如图4-3所示。图4-2 路径的设置图4-3 场景漫游图4.3 漫游设定过程中所遇到的问题在Vega 这个软件环境中,对于纹理帖图的要求很高。首先是纹理的格式,将纹理文件转换成Vega支持的文件格式:RGB,RGBA,INT,INTA,BMP,JPG;第二是纹理的大小,将纹理的大小修改为Ve
45、ga中所规定的长度2的n次方;第三带a的纹理,如果RGB文件中包含了a值,则文件的后缀名必须是RGBA才能在Vega中正确显示。在进行漫游仿真的过程中,最初没有注意到前面模型纹理大小的问题,从而造成仿真运行的失败。如图4-4所示。图4-4 漫游仿真失败的界面为了解决图形大小的问题,使用了photoshop软件,对纹理材质的大小进行了处理。其处理界面如图4-5所示。同时,为了提高模型的运行效率,最好要将纹理材质的格式转换成RGB图形格式。在photoshop中,可以通过上网下载相应的格式插件,这样就可以将原来的纹理格式转换成所需要的RGB格式。图4-5 纹理大小处理界面5 Vega中查询技术的实
46、现5.1 Vega的API函数简介18Vega是一个类库,每个类都是一个API的集合,在其中进行变量设置、变量获取以及专用函数调用。完整的VegaAPI函数需要在整个函数名前加两个字母“vg”作为前缀,这是用来识别Vega产品部件的代码,当连接多个库函数时帮助避免函数重名。紧跟vg之后的是一个以动词加名词形式的函数名,名词通常为类名,而动词是执行操作的描述。每个词的第一个字母要大写而不能是用下划线符。下面简单介绍几个本次课程设计用到的函数:vgProp:用来设置最初属性或一个类事件的属性。vgGetProp:为一个给定属性的类事件返回属性值。这两个函数是配合使用的,它可以大大减少函数使用的数量
47、。vgName:设置类事件的名称,名称可由任意长度的字符串组成,使用该名称能获得一个指向类事件的指针,也可用于调试。vgGetName:拷贝引用类对象的字符串名到用户字符数组;vgDelete:删除指定的类对象;vgUpdate:更新类对象,许多Vega类对象都需要周期性的更新以保持其值的有效性,大多数对象通过vgSync和vgFrame每帧更新,但系统之外创建的对象则需要周期性的更新;vgUserData:赋予一个指针到一些实例的用户自定义数据;vgGetUserData:获得用户数据的指针;vgPosVec:定义位置和方向;vgGetPosVec:获得矢量信息;vgDelPos:删除一个位置值;vgCopyPos:复制一个位置值;5.2 Pickfly简介本次设计中在Motion Models中选择的Motion Model Type是Pickfly,它有很多自身独特的功能,因此在这里对该运动模型作简要介绍。它是一个模拟飞行动作的模型,使用三键鼠标进行飞行控制。按下鼠标中间进行基本向前运动。按下鼠标左键提供向前的加速度,再按下鼠标左键可增加加速率。一直按住鼠标中键可以进行基本倒退运动。按下鼠标右键可以完成反方向的加速度。抬起鼠标中键将停止所有运动。这其中有些参数需要设置:在Motion Model Type中选中Pickfly以后,下面会出现速度和加速度的数值