虚拟场景漫游的设计与实现探讨
所属栏目:计算机网络论文
发布时间:2011-08-18 08:27:15 更新时间:2023-07-11 17:54:28
虚拟场景漫游的设计与实现探讨
吴迪
摘要:随着计算机软硬件技术的发展,利用虚拟现实技术进行复杂场景的虚拟漫游已成为可能,利用这一技术我们可以足不出户游览风景胜地,可以漫游虚拟博物馆欣赏文物,可以游览虚拟校园欣赏校园景致等等。本文结合工程实例,阐述了虚拟建筑环境实时漫游系统的设计,并给出具体实现方法。
关键词:虚拟现实;动画漫游;三维建模
虚拟现实(Virtual Reality简称VR)是一项涉及计算机图形学、人机交互、人上智能等学科的综合技术,它的日的是用计算机来生成一个逼真的二维感觉世界.给观众以如同真实世界的体验。虚拟现实技术从出现经过十几年的发展已经逐步走进了人们的日常生活,无论是在游戏、广告宣传还是在建筑设计、军事仿真等领域都显小出强大魅力。在虚拟现实的发展过程中人们总结出一个虚拟现实系统应具有以下三个特征:沉浸感(Immersion)、交互性(Interaction)和想象力(Imagination)。它们分别表示虚拟环境模拟的真实程度,与虚拟环境进行交互的自然程度和用户在虚拟环境中的认知能力。因此增强沉浸感,提高交互的方便性以及丰富人们的想象力是进行复杂虚拟场景漫游所应遵循的原则。本文将结合某小区虚拟漫游系统的构建,探讨虚拟场景的建立及进行漫游的若干技术问题。
一、系统建模与优化
1模型的构建
虚拟漫游系统是一个以逼真的视觉、听觉、触觉为一体的特定范围的虚拟环境,它是一个真实的或假象的仿真虚拟空间,用户借助一定的装备在虚拟环境中进行虚拟漫游,从任意角度对虚拟环境中的对象进行观察,从而产生身临其境的感觉,同时也能对物体进行操作和规划,满足用户的所需要求。它的工作主要由两部分组成:漫游引擎的实现和三维场景的建模。三维场景建模就是构建虚拟校园环境,是漫游系统设计的核心问题之一。三维模型是整个漫游系统的基础,模型的好坏直接影响运行的效果和场景的逼真度。本系统采用3DSMAX进行建模,用它建立的模型有很强的仿真立体效果。
1)以三亚市海塘湾南区为虚拟对象,该小区建筑物以住宅楼为主。在这些楼群中,有主有次。收集数据时,首先要取得小区的总图,对小区里建筑物的分布有初步的了解,并确定漫游系统所涉及的范围和需要建模的建筑物。
2)创建几何模型
根据对层次结构的分析,遵循由下到上的原则,逐层逐块地利用建模软件 3DS MAX提供的点、线、面、体的创建和修改工具,进行虚拟场景的构建。对于需要精细建模的建筑物要用尽量使用精确的几何形体创建模型细节,对于要粗略建模的建筑物要尽量使用面数较少的几何体构建。
3)纹理映射
为了提高三维模型的逼真度,减少模型的多边形数量,采用纹理贴制的方法来代替用多边形表示模型的细节,从而大大降低了模型的多边形数量。对于精确建模的模型,可以用纹理贴图来表示极难构建而且又不是特别重要的模型,例如建筑屋顶上的橘红色瓦片,把所有的瓦片都构建出来是不可能的,这时就可以使用贴图来代替如图1。对于粗略的模型,要尽可能的使用纹理贴图来代替几何体来创建模型,例如周边的住宅楼,就可以忽略楼体形体的细节,使用一张贴图代替,建筑物模型效果如图2。
4) 3D精灵技术与广告牌技术
模拟树木作为场景中数目最多的外部景观,树木的逼真程度直接影响到整个场景的真实感。因此,单株树木的表示方法也是场景建模中的重要研究内容。一般来说,按照真实树木的形体进行详细建模是很难实现的。由于树的不规则形状,很难像建筑物建模那样用长方体、圆柱等基本几何体来表示一棵树。因此想通过精细建模的方法来表示大量的树木是行不通的。利用纹理映射来实现树木的简单表示,但也要采取必要的手段来保证场景中树木的立体感与真实性,文中使用 Billboard技术多边形面来模拟树的方法。Billboard技术使得当视点改变时,此多边形会绕指定的轴旋转从而保证实体始终面向着视点。只要时刻保持二维纹理树木图像的法线矢量指向观察者,就可以造成一种能够使观察者满意的三维树木的假象。如图3所示。
2 LOD的使用及碰撞检测
由于LOD技术在降低场景复杂度的同时也会增加系统的开销,所以在小区漫游系统中只将LOD技术应用于构建的比较精细的模型上。
为将要应用LOD技术的物体添加LOD属性:Virtools中的物体可以添加很多属性,例如,地板属性、碰撞检测属性等。把要应用LOD技术的物体添加LOD属性,在添加时可以将属性添加到模型中体积较大、面数较多的物体上去,其他体积较小并且不太重要的物体可以不添加 LOD属性,这样可以提高 LOD的效率。
Virtools软件的最大优点就是它提供了许多封装好的功能模块和参数操作, Collision Detection和Prevent Collision都有三个属性Geometry Precisi on。这个属性供用户选择碰撞检测的精度,它有三个选项: Automatic, BoudingBox和Faces。选项Automatic,在碰撞检测中各物体采用自身的精度;选项BoudingBox;宣布为障碍物的三维对象统一采用六面体的包围盒,由于在虚拟漫游中对物体之间的碰撞检测精度要求并不是太高,采用这种精度,既能达到预期效果,而且不影响速度,比较适合虚拟漫游系统中的碰撞检测;选项Faces,则是在面与面之间进行的碰撞检测,这种精度过于精细,影响漫游速度,故采用的较少。
二、漫游功能的设计
在虚拟场景漫游中,需要提供多种漫游控制功能,方便用户和虚拟场景之间的交互。本文设计和实现了几种漫游功能,如图4所示。
1)Unit:该小区有多种户型平面,本功能可让客户对小区中不同户型单元平面图进行浏览,并可以放大浏览,设置动态放大到一定的倍数,比如利用线性插值模块可以实现动放大到两倍就停止放大。
2)Single:单体住宅楼透视效果;可改变场景,转入到单体住宅楼环境中。这样可以提高运行速度,详细观看单体建筑的外观。
3)Indoor:住宅样板房间室内漫游;建立虚拟场景时,不可能对每栋楼的室内建立模型,其原因是工作量太大,电脑的资源有限。因此,建立几种户型的样板房,让客户感受不同户型房间内的空间、采光及家具的布置情况等,以帮助客户确定购房方案。
4)Outdoor:小区外景漫游;室外漫游提供了在虚、左右旋转、仰视、俯视、自动漫游、自由漫游等方式。在漫游中使用小地图功能,小地图的功能不仅能显示整个场景的外观,还能放映角色在地图中的大致位置 ,这就需要制作一个小区总平面图,本设计中,此图是由 CAD总平面图经过光栅后,用Photoshop填充制作而成的,整体效果精确、美观,红色矩形小方块代表虚拟角色,它会随着虚拟角色在场景中移动,实时动态地改变在总图中的位置。自动漫游是让用户在设计好的路线上观察建筑物。对关键点、设计精彩的位置或是寓意深刻的小区景观做适当停留,加入声音向客户说明,以吸引客户注意力。这个功能只需让相机沿着预设路径移动,不需要人工干涉,从而全面浏览场景。
自由漫游可以使用户随心所欲地在场景中任何一个地方走动,同时考虑碰撞检测,避免角色穿墙而入,或是站到一个不可能的位置。对自由漫游的过程,设计漫游过程的录制功能,对录制好的路线,可以回放,这样能为下次浏览节省时间。
5)Weather:在系统中适当增添在不同天气情况下小区的整体景色,如夜景、 雨雪天气等景观效果,可以提高漫游系统的趣味性,同时又能增加虚拟场景的真实感。
三、功能的实现
用virtools软件的BBs编程来实现上述功能,下面给出了部分功能的实现方法。
1主功能界面
使用了几个二维帧作为按钮,分别对每个按钮添加crate systemfong和pushbutt on行为模块 ,并设置相关的参数如返回按钮的script如图6。
2平面图的动态放大
可对户型平面图动态放大,实现方法是将linearprogre-sion拖拽到映射户型平面的二维帧上,再加入interpolator和setworld matrix行为模块,如下图,并设置interpolator的参数。
3小地图功能的实现
系统中,小键盘的上、下、左、右控制角色前进、后退、左右转向,并是相机随角色移动,实时控制场景的变化。小地图上的二维帧,红色矩形的位置点取决与角色所在的坐标点,然后使其在小地图的相对位置上移动。
四、结束语
虚拟现实是一项难度很大的综合技术,要达到逼真的感觉和实时的自然交互是非常不容易的。这一方面依赖于硬件性能的提高和像头盔等外设的使用,更重要的是依赖于虚拟场景的构建、显示和交互等技术的不断改进。
月期刊平台服务过的文章录用时间为1-3个月,依据20年经验,经月期刊专家预审通过后的文章,投稿通过率100%以上!