- 相关推荐
小研三维虚拟场景漫游系统的设计与实现
1、引言
虚拟现实(Virtual Reality,简称VR)是人们对计算机仿真环境进行可视化操作和交互的一种全新方式,与传统人机界面相比,在技术思想上有了质的飞跃。利用计算机生成虚拟环境,通过视、听、触,甚至味觉等多种通道的实时模拟和实时交互[1]。虚拟现实技术融合了计算机图形学、数字图像处理、人工智能、传感器、多媒体技术、网络以及并行技术等多个信息技术分支的最新发展成果,大大推进了计算机技术的发展,已被广泛应用于军事模拟、视景仿真、飞机汽车制造、科学可视化等领域[2]。虚拟漫游是虚拟现实技术的重要应用,实现了对三维景观的数字化和虚拟化[3],在虚拟场景中漫游具有实时性和交互性,使用户产生了身临其境的感受。
2、构建面向漫游的三维虚拟场景
构建虚拟场景是整个漫游系统的基础,模型的质量好坏直接影响了场景的逼真程度和运行的效果。本文采用Maya软件进行建模,得到模型具有很强的逼真度。虚拟漫游系统中场景的构建主要采用几何建模技术进行建模,根据不同的需求,将多边形建模、曲面建模等多种方法结合起来应用。正式建模之前,首先要获得整个场景的地图数据,确定需要哪些建筑物以及每个建筑物所处的位置。本文主要是通过照片和录像资料采集数据,照片由于分辨率较高并且是静态的,通常用来描述场景细节信息,同时也作为纹理贴图的主要参照来源。录像资料收集的范围比较广,更适合记录建筑物之间的相对位置。
在建模的过程中,可以将场景分为若干个模块,主次分明,重点的建筑物需要对其精细建模,次要的建筑物则可以粗略建模,逐层逐块的利用Maya提供的强大建模功能和修改工具进行建模。需要精细建模的部分尽量采用精确的几何体,而粗略的部分可以使用面片数较少的几何体构建,争取用最少的多边形达到理想的效果。但是,在建好的模型中往往会出现冗余的多边形,不仅增加了面片数,而且在漫游的过程中会出现画面闪烁的现象。为此,可通过删除一些琐碎、细小的部分等方法对模型做初步的简化。另外,可以采用纹理贴图代替多边形表示模型细节的方法来减少多边形的数量,也保证了模型的逼真度。
3、基于LOD技术的场景优化
在虚拟现实的视景仿真中,为提高视景生成的效果,达到实时绘制的要求,本文根据侧重不同,采用精细建模与粗略建模相结合,并运用LOD(level of details)场景简化技术,减少绘制多边形的数量,提高渲染效率。
3.1、LOD简介
LOD(Level Of Detail)层次细节模型,是指对同一个场景或场景的不同部分建立多个相似的模型,不同的模型对物体的细节描述不同。同一个物体,观察者的位置不同,所能看到该物体的细节程度也不同。LOD技术根据这一原理,在生成场景时以视点与物体的距离为准则,距离较近的调入精细的模型,距离较远的调入粗略模型。这样既节约了绘制时间,又不影响场景的逼真度,大大提高了计算效率。LOD技术在复杂的三维场景快速绘制、交互式可视化、三维动画、虚拟现实等领域都得到了广泛的应用[3]。
LOD模型可分为离散的LOD模型和连续的LOD模型。离散的LOD模型是按不同的细节程度,对同一个模型制作多个模型放在场景库中。这样的一系列模型之间互不关联,且数据冗余大,在不同分辨率之间转换的时候会引起视觉上的跳跃现象[4]。连续的LOD模型在一个时间上只保留该层次细节的模型,根据需要利用算法实时生成其他层次细节的模型。这样几乎没有冗余数据,而且视觉上的连续性很好,但是由于算法复杂,模型生成较慢。本文为了保证视觉效果,采用连续的LOD模型来优化场景,并且只应用于精细模型。
3.2、在Virtools中实现LOD过程
在Virtools中实现LOD模型优化的过程包括以下几个步骤:
1、在Level Manager部分选择需要应用LOD技术的物体,为其添加LOD属性。在添加属性时选择面片数较多的物体,面片数少的或者不重要的物体可不应用LOD技术,这样可以提高优化效率。也可以通过在Scripts脚本中拖放Set LOD Attribute BB来添加LOD属性。
2、LOD属性参数编辑窗口如所示,参数包括Virtools提供的几种网格简化算法,如Multiple Meshes、Character Animation、Patch Mesh和LOD Alpha。
参数还包括LOD模型的选择标准,如Screen Mag、Screen Min、Face Mag、Face Min,其中Screen Mag表示物体的放大尺寸,如果物体在屏幕上的投影占整个屏幕的比例超过Screen Mag,网格简化就会停止,此时物体的面片数由Face Mag决定。如果物体在屏幕上的投影占整个屏幕的比例小于Screen Mag,简化开始,面片数减少。投影比例小于下限Screen Min,网格简化也会停止,此时物体的面片数由Face Min确定。系统会根据设定好参数调节每次简化边折叠的次数,控制简化程度。清楚地说明了物体面片数与投影比例之间的关系。
3、LOD渐进网格简化是最经常用到的简化算法,物体的面片被自动移除。注意到,LOD参数编辑窗口中没有LOD Progressive Mesh选项,这是由于构造渐进网格是一个代价很高的过程,在漫游的同时进行构造渐进网格的过程会消耗大量的系统资源,影响系统的实时性,所以要在系统正式运行之前完成该过程。在Mesh Setup窗口中叉选Progressive Mesh选项, Virtools会自动将物体的网格转化为渐进网格,对于复杂的模型这个过程会持续一段时间。
4、最后,在Scripts脚本中添加LOD Manager Options BB,控制LOD简化过程的开启和关闭。
4、漫游引擎的设计
在虚拟场景漫游系统中,为了方便用户与场景之间的交互,需要提供多种漫游控制功能。包括了视角的前进、后退、左右平移、重置观察点位置、左右旋转、旋转视图以及视角的上升、下降。在虚拟场景中建立一个摄像机模拟用户的观察点,当观察点的位置和视线的方向改变时,看到的场景部分也会随之改变。系统实时获取视点的位置信息,改变参数重新绘制场景,实现了用户在移动过程中,从不同位置、不同角度观察场景。
4.1、交互模式漫游
在复杂的三维虚拟场景中漫游,主要依靠键盘和鼠标作为输入手段。实现原理是预先为鼠标、键盘等输出设备设置对用的操作内容,当用户按下某一功能键,即获取相应的动作信息,并将该信息传递给场景绘制模块。然后绘制模块调整参数,重新绘制场景。随着用户不断地操作,场景会呈现出不同的姿态和角度。
本文中用户按下W键向前移动(靠近屏幕方向),按下S键后退(远离屏幕方向)。按下A键向右走,D键向左走。用户可通过在视图上按下鼠标左键并拖动旋转视图,环视场景。另外,通过Z键和X键调整观察点的高度,按下R键回到初始时的观察位置。是交互式漫游的程序脚本,Mouse Waiter BB、Rotate BB实现了鼠标旋转视图,Switch On Key BB定义各个功能键以及调用每个键对应的动作。是交互式漫游的效果图。
4.2、自动模式漫游
在虚拟场景中自动漫游可以完全脱离用户的手动操作而独立完成。主要设计思想:首先设计一条漫游路径曲线,当漫游动作开始后,观察点沿着这条预设的路径移动,这样连续转换观察点的位置,连续重新绘制新状态的场景,达到了自动漫游的效果和目的。漫游路径曲线可在建模软件中提前设计并计算好,在模型导入交互设计软件时将路径曲线一并导出。只需相机沿着路径移动并同时依此重绘场景,而不需要人为干预,即可实现自由动态显示。由于漫游路径是预先设定好的,相对于交互式漫游,限制了观察点的位置变换,灵活性较差。
是自动漫游的程序脚本,Curve Follow BB控制摄像机沿着设定的路径曲线移动,通过设置参数控制移动的时间和速度,Position On Curve BB能够保证摄像机在路径上移动的方向和位置。Curve Follow BB中的Position Curve选项由一条曲线描述摄像机移动过程中的速度,曲线的最低点表示过程的开始,最高点表示过程的结束,曲线的斜率和正负代表摄像机移动速度的大小和方向。
5、结束语
三维虚拟场景漫游系统的实现融合了三维造型技术、虚拟现实技术和可视化技术。本文采用Maya软件构建了虚拟场景的三维模型,利用渐进网格算法生成场景模型的连续LOD描述,达到场景优化的目的,有效地提升了三维漫游场景渲染速度。采用Virtools软件设计了漫游引擎,简单方便,容易掌握。通过实时的交互操作,使用户更具有真实感和临场感。
中国硕士论文网提供大量免费硕士毕业论文,如有业务需求请咨询网站客服人员!
参考文献
[1] Grigore C.Burdea(美), Philippe Coiffet(法). 虚拟现实技术(第二版)[M]. 北京:电子工业出版社, 2005.
[2] 申蔚, 夏立文. 虚拟现实技术[M]. 北京:北京希望电子出版社, 2002.
[3] 周演, 陈天滋. 三维虚拟漫游技术的研究[J]. 计算机工程与技术, 2012, 30(5):1209-1211.
[4] 尚建嘎, 吴丹等. 基于微机的三维图形引擎体系结构研究[J]. 现代计算机,2002, 135:47-50.
【小研三维虚拟场景漫游系统的设计与实现】相关文章:
基于网络的远程虚拟仪器系统的实现03-07
谈动漫游戏中的场景设计03-20
新闻发布系统的设计和实现03-07
基于PQRM的PACS系统设计与实现03-07
高校信息查询系统的设计与实现03-28
学生成绩管理系统的设计与实现03-18
浅析网络招生录取系统的设计与实现03-29