漫游系统的设计原理

2024-05-11

漫游系统的设计原理(精选九篇)

漫游系统的设计原理 篇1

近几年来,建筑物尤其室内建筑的虚拟漫游吸引了很多人的目光。虚拟漫游技术是虚拟现实(VR)技术的重要分支,在建筑、旅游、游戏、航空航天、医学等多种行业发展很快。由于有可贵的3I特性———沉浸感、交互性和构想性,使得沿用固定漫游路径等手段的其他漫游技术和系统无法与之相比。虚拟建筑是指客观上并不存在是完全虚构的,或者虽有设计数据但尚未建造的建筑物。虚拟建筑场景漫游是一种应用越来越广泛、前景十分看好的技术领域。在建筑设计、城乡规划、室内装潢等建筑行业,在虚拟战争演练场和作战指挥模拟训练方面,在游戏设计与娱乐行业,乃至在促进未来新艺术形式诞生等方面,它都大有用武之地,而且代表着这些行业的新技术和新水平。

2 虚拟建筑场景漫游系统的功能设计

为了能够真实地展示整个虚拟建筑的环境,我们需要一个角色能够在虚拟环境中被用户控制。角色可以按照用户的需求在场景中做走、跑、转身、等待、开门等动作。角色的运动路径由用户控制。在漫游视觉效果上,用户可以根据个人视觉习惯选择角色视角模式或追踪观察模式。场景模型中门的运动效果可以根据实际生活中的自动门和手动门结合场景中角色的距离或动作进行相应的交互动作。在运动和交互的过程中还需要让角色像现实生活一样,不能漂浮在地面上或穿墙而过。

3 虚拟建筑场景漫游系统的设计原理

给系统中的任何对象要添加交互或行为方式,都需要使用Virtools软件提供的“行为模块(Building Blocks)”。Building Blocks原意为堆积木,其包含的行为按照相应的规则和条理拖放给相应的对象,并按设计员的逻辑思维执行。行为模块的结构如图2所示。

其中水平方向上的引脚代表脚本事件流程控制:

On/Off:流程的输入为开或关;

Contact/No Contact:流程的输出为有结果或没结果。

垂直方向上的引脚代表参数数据处理流程,上方是参数的输入,下方是参数运算的输出。

行为模块的执行流程:

1)行为模块尚未被启动;

2)至少一个“流程输入”被驱动,这时行为模块开始运作;

3)行为模块读取“参数输入”数值,并以此数值为指示运作;

4)至少一个“流程输出”被驱动,这时行为模块停止动作;

5)部分的行为模块就会停止运作,回到1)的状态,但是部分行为模块会再自行驱动,并进入3)的状态。

整个运行过程根据行为模块流程的连接方式有:

一次执行:In→Out。

重复执行:Loop In→Loop Out。

选择执行(由用户决定):On/Off→On Exit/Off Exit。

要使整个系统能够流畅地按设计者的思维方式来执行,还需要将这些行为模块进行连接,我们称为“行为连接”,以执行流程的联系工作。在执行过程中会有某个行为模块的参数输出是另一个行为模块的参数输入,此时我们需要进行“参数连接”,来负责数据的传递,如图3所示。

4 虚拟建筑场景漫游系统的关键技术与方法

4.1 角色动作控制

角色控制常用的行为模块有“角色控制(Character Controller)”,“键盘控制(Keyboard Controller)”,“不限量的动作控制(Unlimited Controller)”,“键盘地图(Keyboard Mapper)”。“Character Controller”行为模块只能设置4个基本动作(stand、walk、walk backward、ran)。“Keyboard Controller”只有系统默认的数字键盘上8(控制前进)、4(控制左转)、6(控制右转)、2(控制后退),不能根据用户的需要进行设置。“Unlimited Controller”可以填加用户想要的所有动作。“Keyboard Mapper”可以把键盘上所有的键按设计员的需求进行随意设置。前两者主要用于角色的基本动作控制,后两者适用拥有多种动作数据以上的角色,可以做更细节的人物动作控制。

4.2 角色重力设置

为了让角色始终在地面上运动,而不是陷入地面或漂浮在空气中,需要设置虚拟对象中地面的“Floor”属性。要使角色能够识别“Floor”并保持在地板上运动,还需要给角色添加行为模块“Enhangce Character Keep On Floor”。

4.3 角色碰撞设置

虚拟的环境要表现真实世界的状况还需要建立角色和墙面、物体等的碰撞属性。在没有设置碰撞效果的情况下,角色会穿越墙面或物体。碰撞效果的建立有3种方式:

1)建立对象的碰撞属性(Obstacle attribute);

2)建立组合对象(Group);

3)绘制碰撞范围(Grid与Layer)。

碰撞效果的设计逻辑就是无论使用哪种方法,首先告诉Virtools谁是“障碍物”或障碍物的范围,最后是告诉Virtools谁要受“障碍物”的影响,需要给受“障碍物”的影响的对象添加“Prevent Conllision”行为模块,“Object Slider”行为模块或“Layer Slider”行为模块。

4.4 角色阴影设置

阴影设置牵涉到两个对象,阴影的产生对象(角色)和阴影的呈现对象(地板、墙面等)。我们需要对阴影的产生对象添加ShadowCaster行为模块,对阴影的呈现对象逐个给它们的“Attribute”设置添加“Shadow Caster Receiver”属性。

4.5 门开关控制

门开关动作主要有两种类型:自动门和手动门。自动门需要通过判断进门的对象和门之间的距离来确定开关。判断角色与门之间的距离通常用“Preximity”行为模块。我们可以通过设定“Preximity”的距离参数。当小于参数值是时候执行“开门”,大于参数值的时候执行“关门”。门的运动主要用“Bezier Progression”、“Rotate”和“Translate”行为模块来实现。“Bezier Progression”是用来控制对象扭曲运动的,扭曲的方式如果是旋转就用“Rotate”,位移则用“Translate”。如果是手动门,需要对门设置一个等待消息的行为模块“Wait Massage”。如果想让整个效果更逼真,还可以给角色制作开门的动作。

4.6 影机设置

在漫游系统的视觉效果上主要采用摄象机来完成。在很多游戏和漫游系统中主要采用的是第一人称摄象机和跟随摄象机。第一人称摄象机的设置位置很重要,一般需要调整角色的位置然后添加摄象机,效果为角色眼睛看到的环境。跟随摄象机除了需要设置摄象机与角色的距离,还需要用“Keep at Constant Distance”行为模块来让摄象机与角色保持一定的距离,然后用“Look At”行为模块来让摄像机开始。

5 总结与展望

本文通过讲解Virtools的设计原理,分析系统的功能结构,给读者展示了在Virtools环境中开发设计虚拟建筑漫游系统的过程。所有的脚本都通过了测试。

系统在设计上还可以加上Culling以增加执行的效能,但设计和计算Culling是非常复杂,在这里没有做详细描述。对于房间的一些装饰物品可以增加LOD Object属性,这样也可以增加执行的效能,使物体在远处时显示最少的面,在近处时显示最多的面。

摘要:Virtools是目前开发虚拟漫游系统和游戏功能强大的整合软件。该文主要通介绍在Virtools软件环境下设置场景元素的重力、碰撞属性,角色动作控制和摄象机设置等,实现可以人机交互的虚拟建筑场景漫游系统。

关键词:虚拟建筑,漫游系统,Virtools

参考文献

[1]胡小强.虚拟现实技术[M].北京:北京邮电大学出版社,2005.

[2]刘祥.虚拟现实技术辅助建筑设计[M].北京:机械工业出版社,2005.

[3]张宇.Creating animation for Games3ds Max8&Virtools游戏动画设计[M].北京:海洋出版社,2006.

[4]傅晟,彭群生.一个桌面型虚拟建筑环境实时漫游系统的设计与实现[J].计算机学报,21(9):793-799.

展馆漫游系统设计与实现论文 篇2

关键词:

关键词:展馆漫游;模块构建;警史馆

虚拟漫游,是虚拟现实技术的一个重要分支,它能够使表达内容直观形象,用户可以通过与系统的人机交互,身临其近地感受到操作场景互动逼真。笔者以武警工程大学电子技术系展馆为蓝本,将虚拟建筑场景建模和虚拟漫游技术结合应用在虚拟展馆中。基础模块构建

参照真实警史馆蓝本只有一个房间,主要使用基础几何体进行建模。

2.1 虚拟警史馆侧墙构建

在该警史馆三维模型中,侧墙模型虽是一个不规则的几何体,但可以在基础几何体建模的基础上进行一定变换操作来进行创建。通过多边形几何体的“连接”和“挤出”两种功能的交互使用,生成侧墙侧面的物品架模型,从而完成虚拟警史馆侧墙模型的搭建,见图1。

图1 侧墙模型

2.2 虚拟警史馆展柜构建

警史馆展柜是一个不规则的组合几何体,分为玻璃罩、柜门、侧板和底面四个部分,其基本构建方法是先通过基础几何体建模方法创建展柜的板材模型,并把每个板材转换为可编辑多边形,之后再对每块板材进行修改变换,最后将所有板材模型组合在一起形成展柜模型,见图2。

图2 展柜模型

2.3 添加材质和灯光渲染

3ds max自带强大的材质和灯光渲染系统,可为用户提供丰富的材质和灯光效果。在展馆基础模型搭建完成后,要通过软件的材质编辑器功能为场景中的模型附加材质和灯光,见图3。

图3 通过材质编辑器添加地板材质交互模块实现

展馆建模完成后,需要在Unity3d软件中实现虚拟警史馆的漫游交互功能。

3.1 添加脚本文件实现漫游功能

为场景摄像机添加脚本文件,可实现场景摄像机具有随着键盘控制键左右旋转和前后移动的功能,从而使场景在运行时具有第一视角观察的效果,并可以通过键盘的控制使人的虚拟视角在场景中移动和旋转,通过这些操作可以使用户更方便的了解场景中的内容,见图4。

图4 实现场景摄像机交互功能

3.2 添加刚体和碰撞检测组件实现防穿功能

为防止漫游时摄像机穿过场景对象产生失去视角的现象,使用户造成不便,所以要通过添加一定的组件消除这一问题。

通过为该选择对象添加了刚体组件,修改场景中的虚拟物体的属性使其具备物理实体的质量、重力、弹性等等特性,增大对象的移动阻力,防止场景对象在发生碰撞后因为弹性碰撞发生位移。同时,选择离散碰撞检测选项,该属性可控制避免高速运动的对象穿过其他的对象而未发生碰撞。最后,冻结x和y轴位置,使对象在选中的轴向上的移动和旋转无效。这样,就不会在碰撞后发生弹性位移现象,从而实现防止穿过的功能。结 语

本系统以电子技术系展馆为真实蓝本,通过建模软件Autodek 3ds max实现整体三维场景模型搭建,以及三维交互软件Unity3d实现漫游交互模块的开发设计,该虚拟漫游系统的功能完全符合实际参观教学需求,能够为虚拟场景摄像机添加脚本文件实现了全场景第一视角漫游交互功能。

参考文献

图书馆三维虚拟实景漫游系统的设计 篇3

关键词 三维虚拟实景;图书馆;漫游系统

中图分类号:G258.6 文献标识码:B 文章编号:1671—489X(2012)30—0060—02

1 三维虚拟实景

1.1 三维虚拟实景简介

三维虚拟实景基于全景图片,全景图片视场涵盖双眼正常有效视角以上乃至360°的完整场景范围,其在Java、Quick Time、ActiveX或Flash等计算机技术的支持下实现真实场景的还原展示。由多个全景图的实景展示节点组成,采用多媒体人机交互界面和交互信息导航方式,结合导航地图、控制按钮、热点区域、超链接、皮肤系统、音乐、解说等辅助元素可以形成三维虚拟实景漫游系统。用户观看三维虚拟实景漫游系统时,三维立体空间感强,犹如身在真实场景中[1]。

1.2 制作三维虚拟实景漫游系统的方法和工具

三维虚拟实景漫游系统制作分“照片拍摄”“照片拼接为全景图”和“三维虚拟实景漫游制作”三阶段。

1)照片拍摄:选用按一次快门能拍180°视角照片的8 mm鱼眼镜头相机,1个拍摄点要拍4张照片才能拼合成一张全景图。拍摄时,三脚架位置、高度不变,云台可绕三脚架的垂直中轴线水平旋转,相机固定在可旋转的云台上,拍好一张照片后水平旋转云台90°接着拍下一张。

2)照片拼接为全景图:在一个拍摄点拍摄的4张照片经软件自动拼接或人工找拼接点拼接,合成一张全景图。

3)三维虚拟实景漫游制作:先期设计系统构架和界面风格,连同制作好的辅助元件导入设计软件进行制作、合成。

制作三维虚拟实景漫游系统的工具: 1)硬件设备,“尼康D300”数码相机机身、“SIGMA 8MM”鱼眼镜头和电子快门线各1套,高性能多媒体计算机1套;定制的三脚架和旋转云台1套;2)软件工具,“杰图”研发的拼图软件“造景师”,“杰图”研发的三维虚拟实景漫游制作与合成软件“漫游大师”,图片处理软件“Adobe Photoshop”,音频处理软件“Adobe Audition”。

2 图书馆三维虚拟实景漫游系统的设计目标

图书馆三维虚拟实景漫游系统是对图书馆的虚拟化立体展示。与用户近距离参观实物相比,虚拟化立体展示能给用户更好的影像精度、视觉角度、艺术观感等体验,用户在浏览时可对反映实物信息的影像进行放大、缩小、360°旋转,获取实地参观无法也不能获取的部分信息,最关键的是不必亲赴实地,耗费精力少。图书馆虚拟化立体展示的内容有图书馆各区域的位置分布、环境布局等地理信息,还有图书馆功能、服务信息、使用导航等使用资讯。通过三维虚拟实景技术,用户浏览图书馆三维虚拟实景漫游系统,就如真的进入图书馆实地一样,只需点击鼠标就能全方位地了解与熟悉图书馆。

3 图书馆三维虚拟实景漫游系统的设计实现

3.1 照片拍摄与拼接

照片拍摄是三维虚拟实景漫游制作的核心部分。

1)拍摄对象:图书馆所在建筑物的外部,图书阅览室、期刊阅览室、电子阅览室等功能区,进出图书馆及各功能区的出入口部位。

2)拍摄选点:一个功能区通常选3~4个拍摄点,拍摄点一般选大多数人习惯的观看点。如图书馆所在建筑物的外部可选3个拍摄点:第一个拍摄点选在建筑物前面,用于拍远景;第二个拍摄点选在图书馆大门前;第三个拍摄点选在建筑物后面,同样拍远景。图书阅览室可选4个拍摄点:入口处1个,主功能区选2个,出口处1个,其中出、入口处所在点在后期设置导航。

3)拍摄:架好三脚架,拍好一张照片后水平旋转云台90°接着拍下一张,共拍4张。旋转云台时三脚架若有移动,则需重拍此前所拍的全部照片——三脚架移动后,相邻2张照片的拼接边缘相对位置发生变化,照片拼接会失败。

完成照片拍摄后,将照片导入“造景师”进行拼合。若4张照片满足“曝光度相差不大”“物景影像在拼接处有相同部位的影像匹配”等智能拼接条件,软件会自动拼接好照片;若4张照片中有一张照片满足不了智能拼接条件,则需人工在照片上根据影像寻找、编辑拼接点以人工方式拼接。

3.2 系统构架和界面设计

系统构架的核心是实现导航功能和关联全部元件。导航功能依靠“全景图播放次序”和“地图”实现。

1)全景图播放次序设计。依图书馆实际出、入馆次序和各功能区实现功能的次序设计导航,具体次序为:建筑物外景→大门入口(入馆)→服务总台(1楼)→第一阅览室(1楼)→期刊阅览室(2楼)→自习室(2楼)→电子阅览室(3楼)→第四阅览室(4楼)→第五阅览室(5楼)→第六阅览室(6楼)→第七阅览室(7樓)→书吧(1楼)→展览室(1楼)→报告厅(1楼)→大门出口(出馆)。

2)地图设计。一类为图书馆所在建筑物的3D影像图,一类为楼层平面图,建筑物3D图与楼层平面图按实际位置关系关联。

界面是图书馆三维虚拟实景漫游系统的封面和入口,也具有构架系统的作用,其在配色、造型、风格等方面应体现图书馆特色。界面主要由主界面皮肤、载入界面、地图、热点链接、缩略图、按钮、文字等元件组合而成。主界面皮肤中有“图书馆三维虚拟实景漫游系统”文字,留有空白处放置“场景播放器”“缩略图”“地图播放器”等元件。

3.3 系统功能实现

“按钮”“区域雷达”“缩略图”“热点链接”等是“漫游大师”中最常用的元件。1)“按钮”提供控制操作,可布局在主界面皮肤和场景播放区内;2)“区域雷达”设置在地图中,只用在地图上,其雷达扇形指示区与正在播放场景的某一方向一一对应;3)“缩略图”是设置在主界面皮肤上的实景图的缩略图标;4)“热点链接”能设置在全景图、地图和主界面皮肤中,链接目标有全景图、地图、文字、音视频等。

实现系统功能时,“热点链接”元件使用最频繁。1)场景链接:一个场景中可设置多个热点链接,点击热点链接图标后跳转至目标场景。2)展示细节:在场景中点击一本书的影像时,热点链接就会弹出该书的编目信息。3)展示服务类型、借阅流程、规章制度:点击入口或服务总台场景中设置的热点链接时,弹出相关信息提示。

系统制作次序:导入主界面皮肤→制作载入界面→设置场景播放器(场景播放器是呈现全景图的窗口)→在“场景列表区”按“全景图播放次序”导入全景图→设置地图播放器(地图播放器是呈现地图的窗口)→在“地图列表区”按先3D地图、后楼层平面图的次序导入地图→设置按钮功能与属性→设置播放进度条→设置“缩略图”→设置热点链接(先设置场景链接,再设置细节展示链接,最后设置展示其他内容链接)→设置区域雷达→加入音频解说→各功能验证→修改与完善→发布作品。

4 结束语

设计实施图书馆三维虚拟实景漫游系统,前提是明确设计目标,核心是拍好全景照片,关键是设计好构架和界面,重点是实现系统功能。

参考文献

虚拟小区漫游系统的设计与实现 篇4

1 虚拟漫游系统简介

虚拟漫游系统大体可以分为四类:桌面虚拟现实系统、沉浸虚拟现实系统、分布式虚拟现实系统及叠加式虚拟现实系统,这四类系统各有特点[3]。本文所建立的系统属于桌面虚拟现实系统,特点是利用普通计算机构建漫游系统,并通过鼠标、键盘等工具来实现人与漫游系统的自然交互。

针对不同的虚拟漫游系统,其开发工具有很多,本文选用了3DS MAX和Virtools,3DS MAX是非常优秀的三维建模软件,用其来完成小区场景和场景中各种模型的构建;Virtools是一套多功能三维开发工具,能实现小区的漫游功能。

2 虚拟小区漫游系统的设计与实现

2.1 系统总设定目标

在设计之初,该系统的设定目标是客户可以通过各种方式来对小区进行观察和了解,例如通过自动漫游或者自主漫游方式。自动漫游方式下,用户只需对想要观察的地方进行路径选择,便可观看系统设定好的漫游路线上的场景;自主漫游方式下,用户通过鼠标、键盘等对漫游场景及路径进行自主控制,自由度大,可随意观察整个小区场景,并具有前后左右的行走、转向或者俯仰等行为。通过该系统,用户对整个小区环境及具体户型有一个整体充分地了解。

2.2 系统模型构建

模型的构造是构建一个虚拟小区漫游系统的根基,模型构造的好坏直接影响到小区虚拟场景的真实与否,而虚拟场景的真实性又是虚拟漫游系统的显著特点。

为了保证小区结构的真实性,小区漫游系统是在原来小区原始设计图—AutoCAD平面图的基础上进行构建的。将CAD文件导入3DS MAX后,通过挤压方式先构建粗略的楼体框架,然后再根据每个楼的自身特色(如单元门朝向、室内户型等)构建其内部模型,除此之外,构建小区中的公共设施(如草地、道路、健身器材等)模型。在构建这些模型的过程中,一方面要注意建模应该遵循由整体到局部,由粗略到细节的原则,另一方面要注意面的问题,如果面的个数太多,将会影响漫游的速度,给人不逼真的感觉,因此在建模时要注意删除多余的冗余面,从而达到提高渲染速度的目的。

完成所有模型的构建之后,此时得到的模型是比较粗糙的原始模型,逼真程度不是很高,为了达到高度仿真效果以及给客户最真实的感受,这就需要使用材质和贴图来增加模型的外观。利用3DS MAX提供的材质编辑器Material Editor,建立系统中所有三维模型所需的材质与贴图,并添加到模型上面。

拥有了材质与贴图之后,模型的仿真度比原来要高,但是缺少真实的自然光泽,比如日照的反光效果等。利用系统提供的各种样式的灯,可以为整个场景添加灯光,这样就得到了与真实场景仿真度极高的三维虚拟场景,至此,模型构造工作才彻底完成。

2.3 三维模型的导出

在3DS MAX中构造的小区三维场景,在Virtools中是不可以使用的,因为Virtools只支持固定格式的外部文件,因此需要将构建好的场景输出为Virtools支持的.nmo格式。利用MAX的文件/输出菜单命令,可以将当前场景导出保存为.nmo格式,方便后期在Virtools中使用。

2.4 将三维场景导入Virtools并美化

从MAX中导出的.nmo格式的文件,在VT中不能直接打开,只能将其导入其中才可以使用。启动Virtools,在工作界面中选择Resources/Import File,找到从MAX中导出的后缀为.nmo的场景文件,然后打开,这样在Virtools中就看到了在MAX中构建的整个小区三维场景。然而,令人吃惊的是,现在整个场景是黑色的,比例也不是很合适,这个时候需要对整个场景模型进行整体的比例放缩,放缩到合适的大小。黑色是因为MAX中的灯光导入到Virtools场景中就失去了它原有的作用,因此需要在Virtools中重新为整个场景设置灯光。设置完毕后,可以让整个场景达到最优的效果。

2.5 漫游引擎的实现

为了给用户提供多种和三维场景交互的方式,根据系统的设定目标,本系统实现了两种漫游引擎,一种是自动漫游,一种是自主漫游。

自动漫游是为用户提供了小区的几条固定路线,例如:小区外部场景的巡游路线,每个楼体每条楼道的巡游路线,每个不同户型房屋的巡游路线等,用户可根据自己的需要,选择其中的一条或几条路线来进行整个小区的认识和了解,也可以在选择“全部浏览”后完全观察整个小区环境、小区楼盘及不同房屋的户型。

自主漫游则是用户自主操纵自己的漫游路径,利用鼠标和键盘控制一个模拟用户自己视角的摄像机,可以在整个虚拟小区中进行畅游。自主漫游是系统实现的难点也是重点。首先需要在Virtools的虚拟小区场景中建立一个摄像机,这个摄像机用来模拟用户的视点,当用户通过鼠标或键盘改变这个摄像机的位置或者方向的时候,用户可以看到不同位置不同角度的虚拟小区场景。在自主漫游部分,用户可以跟随摄像机进行视线的前进后退、左右平移、左右旋转、抬头或者俯首,这样方便用户多方位立体化地对整个小区场景进行观察。

无论是自动漫游还是自主漫游,都是通过Virtools中提供各种功能的Buliding Block功能模块来实现的,各个功能模块具有自己的特定属性和功能,由于实现过程繁琐,这里不再赘述。

3 系统优化的技术实现

为了达到最优的虚拟小区漫游效果,系统采用了不同的技术来进行系统的优化。一方面是用户自主漫游时不能穿透物体,另一方面是漫游渲染的流畅性。众所周知,渲染速率即帧频率是衡量系统实时渲染效果的关键,实时的场景生成速率不得低于15帧/秒,最好达到30帧/秒,由于小区场景模型众多,场景庞大,经过对系统的优化,可以达到25帧/秒,速度比较流畅,能满足客户的感官需要。

3.1 碰撞检测的实现

当用户在小区场景中进行自主漫游时,由于是自行控制路线和方向,用户很可能和场景中的物体或建筑物发生碰撞,发生穿透物体或穿墙事件,这就大大降低了系统的真实性和逼真感。因此,当摄像机作为用户的替身在场景中进行漫游时,需要对可能碰撞到的物体有一定的检测方式,这样可以避免碰撞的发生。

Virtools提供了两种检测方式:一种是基于BB的检测方式,一种是基于网格的检测方式。由于小区场景中的模型众多,建立网格的方式不太适用于物体众多的大型场景,因此系统采取了基于BB的碰撞检测方式。

3.2 LOD技术的应用

在建模过程中,物体模型多采用多边形网格来构建。用来构建场景的多边形数目越多,所绘制的场景就越真实,相应的绘制速度也越慢;反之,多边形数目越少,绘制速度就越快,所绘制场景则缺乏真实度。由此可见,真实度和绘制速度互为矛盾。本文所构建的小区场景,包含的多边形将近百万,这种情况下,必须采取必要的简化技术来降低场景复杂度,从而寻找场景真实性与实时性的契合点。为场景提供不同的LOD(层次细节等级)描述则是中和该矛盾的一个行之有效的方法。Virtools中的LOD技术是一个算法集合,主要通过移除被绘制物体中的不必要细节来达到提高渲染速度的目的。Virtools提供了一组用于实现LOD的BB,在Virtools中实现LOD技术简单便捷。虚拟小区漫游系统主要利用了Virtools提供的LOD BB来实现系统的渲染优化。

3.3 实例化技术

当构造多个相同形状相同属性的物体时,实例化技术的使用可以有效地降低场景复杂度。虚拟小区场景比较复杂,其中包含有众多的树木、灌木丛、路灯等物体,这些物体虽然自身面数不多,但数量极大,占用了很大的存储空间,影响了系统的实时渲染速度,此时可以采用实例化技术。例如用3D精灵建立的一棵树需要4个面片,若采用正常的复制手段,每增加一棵树,系统要增加4个面片,而采用实例化技术,面片数仍为4,这样可以在增加同类物体数量的情况下来降低场景复杂度。

4 结束语

利用虚拟现实技术所构建的大庆某新建小区虚拟漫游系统,效果良好且真实度高。客户可以在该虚拟小区中自由行走,观察小区的各个角落,对小区的整体环境及具体户型进行详细地浏览和反复地考察,更便于用户选择适合自己的房产,最大地提高客户的满意度。

摘要:阐述了虚拟小区漫游系统的基本原理、相关技术和设计实现过程。

关键词:三维建模,Virtools,漫游,碰撞检测

参考文献

[1]刘晓明,李勤,王晓哲.基于Virtools的虚拟漫游系统的设计与实现[J].大庆:大庆石油学院学报,2006(8):123-125.

[2]吴浩,李思昆,王益,等.一个浏览器/服务器虚拟漫游环境[J].成都:计算机应用研究,2001(7):13-15.

漫游系统的设计原理 篇5

传统的Web技术建立的网页,只能使用文本、静态画面或者交互能力低的动画来传达信息,局限性是显而易见的。通过虚拟现实建模语言(VRML)利用3DS MAX建模方法并结合Internet创建虚拟校园漫游系统,从而实现在因特网上对校园的实时交互游览,使没有机会实地游览的人获得身临其境的感受。

2 虚拟校园漫游系统设计

2.1 系统架构及开发流程

首先必须规划校园中的建筑物和地形,选取学校中最具代表性的教学主楼,图书馆,广场和校门等作为主要建筑物;然后添加动画和交互,突出系统的交互性、构想性和沉浸感,基于这些要求并结合园景观赏的需要,虚拟校园漫游系统设计流程如图1所示。

2.2 VRML的基本工作原理及其功能

VRML的访问方式基于C/S模式,其中服务器提供VRML文件,客户通过网络下载希望访问的文件,并通过本地平台的浏览器对该文件描述的VR世界进行访问,这种由服务器提供统一的描述信息,客户机各自建立VR世界的访问方式被称为统分结合模式(如图2)。

由于浏览器是本地平台提供的,从而实现了VR的平台无关性。VRML定义了三维应用系统中常用的语言描述,如层次变换、光源、视点、几何材料特性和纹理映射等,并具有简单的行为特征描述功能。

3 校园漫游系统实现

虚拟现实的实现有两种方案,一是软件实现,一是硬件实现。通过数据手套、头盔等这些硬件设备人们可以在虚拟世界中获得更加真实的感受,如可以感受物体的重量,质感等。但考虑到实际的应用及实现的可能性,本系统采用软件实现。主要使用的软件有:3D MAX建模软件、Vrml Pad编辑软件、Cosmo Worlds2.0可视化集成软件、Dreamweaver网页制作软件,及flash、Photoshop等设计软件。

3.1 模块的集成

虚拟校园漫游系统各个模型模块在Cosmo Worlds2.0中集成:首先,在Cosmo Worlds2.0中打开校门及车辆动画.wrl文件,并在TOP(顶视图)中调整好其位置,然后,通过“文件——作为Inline导入……”命令,将建好的各个模型文件依次导入到这个文件中。并调整好各个模型的相对位置;最后,保存文件,关闭Cosmo Worlds软件。

在Vrml Pad中打开在Cosmo Worlds中已经调整好位置的文件,通过编写代码设置Viewpoint(视点)、Background(背景)、Directional Light(平行光源)三个节点的参数,确定浏览文件时浏览者在虚拟环境中的视点,同时为虚拟校园添加背景和光照,以方便观察,编写好后,通过预览命令来浏览整体效果,如图3所示。

3.2 模块功能的完善

场景制作完成后,添加一些交互功能需要定义用户在浏览器中的相关状态,如浏览方式、浏览替身的高度等。

(1)鼠标点击建筑,打开相关建筑或学校情况介绍性网页,关键代码如下:

(2)通过Navigation Info节点来设置浏览者的状态及浏览方式,设置代码如下:

(3)自由浏览

通过设置传感器和感应器的参数,来实现自动的根据某个既定过程改变视点坐标和观察方向,使浏览者获得自由浏览的感受。

4 校园漫游系统的优化及发布

完成场景的集成和动画交互后,整个系统的容量达到了32M,优化是必不可少的。

4.1 简化场景,优化建模

由于系统要在网络上进行传输,因此在响应速度和场景的真实性发生冲突时,在保证视觉上达到基本真实情况下应尽量减少模型所包含的多边形个数,具体实现方法如下:

(1)限制物体的可见性,VRML提供Proximity Sensor节点,可以检测到用户距被感应物体的范围,当用户距离物体较近在视觉范围之内时,才使该物体可见,否则不对该物体进行渲染。保证了用户浏览时的流畅。

(2)删除和隐藏场景中的不可见面,这是一种既简单又实用的降低场景复杂度的方法。将场景中根本不可能看到的面进行删除,例如墙体内部,屋顶等。

(3)用VRML中的LOD节点(level of detail),即细节的详细程度。人眼睛对同一个物体在远近不同的位置所能看到的细节详细程度是不同的。LOD技术正是根据这一视觉特点,为同一个物体建造了一组详细程度有别的几何模型,物体离视点越远,建立的模型包含的多边形就越少。

4.2 提高下载速度,场景重用

在建造虚拟世界的过程中,会存在很多相同的对象或许多对象用相同的材质作为纹理,如桌椅,篮球架等等。利用DEF和USEDEF结构可以在一定范围内重用,这样程序的源代码就会减少很多。经测试若所有的模型都经过优化,整个文件可以减小到原来的二十分之一且效果与优化前无太大差异,不论是容量上还是渲染速度上都比优化前有质的飞跃。

4.3 系统发布

网页框架制作好以后,在首页的“ENTER”按钮中写入动作:

5 结语

本系统建模工作繁杂,完全编写VRML代码完成建模存在很大的难度,也不能达到很好的效果,选用3D MAX是个捷径,其优势是能够快速高效构造复杂的三维模型,并添加材质、光效和动画,同时可以将模型输出为.wrl格式的文件。该系统实现了访问者通过鼠标或键盘在虚拟校园中漫游;可以做出象在真实世界一样的动态行为,如改变视点,打开一间教室的门等,同时系统设置了碰撞检测机能。总之,作为一项新兴的技术,虚拟现实技术将成为今后网络多媒体发展方向的主流,VRML作为一种ISO国际标准将得到越来越广泛的应用。

参考文献

[1]黄文丽,等.VRML语言入门及应用.北京:中国铁道出版社,2003:6~8

[2]汪兴谦.VRML与JAVA编程实例讲解.北京:中国水利水电出版社,2001:213~216

[3]汪志达,等.VRML虚拟现实网页设计.北京:清华大学出版社,2006:69~73

[4]阳化冰,等.虚拟现实构造语言VRML.北京:北京航空航天大学出版社,2000:396~399

漫游系统的设计原理 篇6

1 系统架构

1.1 模型的构架

Virtools对于模型的要求相对简单,只要变换成它支持的格式都可以,这就降低了它对于模型的要求,也为有大量资源提供了便利。

3ds Max是一款基于Windows平台的专业3D制作软件,它被广泛地应用在虚拟现实领域中,它有强大的建模功能可以创建出各式各样的场景模型,也有强大的材质和贴图功能制作出逼真的场景效果。在一个具体的虚拟现实漫游场景制作实例中,在CAD图纸的基础上需要先对具体场景进行全方位各角度的照片采样,然后在3ds Max中按比例建立模型,调整材质和贴图,接着通过Virtools Max Exporter将模型转换.nmo格式就可以导入Virtools软件中了。

1.2 模型的碰撞

模型的碰撞是Virtools里面基本实现的效果,碰撞也是为了增加漫游的真实性,在3D Maxs导入到Virtools里面时,模型只是单纯的实体模型不具有系统所识别的物理属性,所以在Virtools里就需要我们对那些模型增加属性,并且要区别模型是需要移动的物体还是固定的物体,因为需要添加碰撞属性的物体多,所以我们需要群体组合碰撞,并为它们增加固体障碍物的属性,实现人物与物体的碰撞效果。在设置碰撞的时候需要注意半径的设置,为了能够有最真实的碰撞效果,我们需要对半径多次调节。

2 虚拟漫游功能设计

在这款漫游系统里面我们会实现一系列功能以满足过去单纯二维三维不能满足的效果,过去单纯的静止立体效果不再能满足人们的需求,就促使我们更好的利用软件完成更好的效果。

2.1 自动路径的实现

为了能够从不同角度自由的观察场景,我们特意设置了几条自动路径在开启之后视野就会沿着设置好的路径变化,这时候我们就可以不通过手动来观察场景的建筑,还可以从整体上欣赏。

关于自动漫游的还有一个功能就是在于小地图上面的实现。首先就是小地图的实现,在一个大的场景里面迷路是很大的失误所以为了解决这个问题就要实现小地图的功能,就是说有一个同比例的小地图供我们参考,我们控制的虚拟角色同时显示在小地图的相应位置上。在我们知道目的地后又不想一直控制着角色的时候该怎么办?这时候就是自动路径实现的时候了,在小地图上轻轻一点就完了,角色就会根据定的点直接移动过去了。

2.2 自由漫游

自动漫游然实现后,然后是自由漫游功能的实现,这里面就很简单了。为了能够更全面更细致的了解漫游场景,我们设置了自由漫游功能,就是通过控制虚拟场景里面的人物在虚拟场景中运动,通过虚拟人物的视角观察场景,里面就包括了第一视角和第三视角。

2.3 特效的实现

一个好的漫游系统不仅是应该把漫游场景做得很漂亮,实现得很完美,同时能够在不同效果下(比如晴天、下雨等天气)观察漂亮的场景会让用户更加的体验到真实的感觉。基于这个原因,我们就想要做到很多种特效。

2.4 交互设计

一个好的交互系统会让整个漫游更加的增光添彩,也会让单调的虚拟漫游变得有趣得多。单调的在虚拟场景中行走显然不能满足顾客的需求,这就要求在虚拟场景中有更多灵活的新颖的交互设计,让顾客在虚拟的场景中不会感到枯燥无聊。

2.5 音乐

一个好的音乐系统会为整个的漫游增加不一样的情趣。但是以往的背景音乐显然也不能满足现在的客户需求,这就要求在音乐方面也要有更多的进步。在不同风格的虚拟场景下面播放不同风格的音乐,相信会让用户更加愉快、轻松的完成整个漫游。

2.6 帮助

系统对于所有的人来说都是完全陌生的,或许你因为接触过很多类似的东西所以能够很简单的掌握到规律,但是对于那些不常接触这类软件的人来说,那就绝对是一个难题。基于这个原因我们创建了帮助系统,虽然是很简单的操作介绍,但是肯定会帮助用户更好的操控这个系统。

3 虚拟漫游详细设计

3.1 主功能界面

使用几个二维帧作为按钮,添加材质,然后给材质添加附有相应功能文字的图片,接着用BB实现点击触发的命令(如图1)。

这就是点击时的效果(如图2)。

3.2 自动漫游

自动漫游有两种表现方式:1)通过摄像机镜头沿着固定的路线在场景中移动,不同的路线可以实现不同视角的动态观看。2)通过点击小地图让角色人物自动移动到目的地,角色会自动避开障碍物走到指定的目的地。

3.3 小地图的实现

场景地面的长和宽的值按照比例缩放来显示小地图二维帧的长和宽,小红点二维帧代表人物。通过计算人物在场景中的位置,运算出小红点在小地图中的位置(如图3)。

鼠标点击小地图任何位置出现黄色二维帧,人物角色就会自动移动到黄色的二维帧所代表的场景区域图4、图5、图6就是实现的BB。

3.4 特殊的场景特效实现

在虚拟漫游系统中,除了最基本的虚拟漫游的实现,我们还需要增加漫游系统的趣味性以及真实性,让用户沉浸其中,这里我们就为场景增加了不同天气条件下景区的整体景色,除了最基本的晴天,雨雪天气以外,我们还增加了雾效。

从模拟仿真的角度出发,在对最基本的晴天实现上,我们采用了镜头光斑特效的制作的方法,对整个Level创建脚本加入BB—Lens Flare,通过调节参数以及各个角度位置的调节加入需要的纹理,直至调节到最佳效果。对雨雪天气的制作我们运用的是粒子系统来实现其效果,在Virtools里面根据发射状态不同为我们提供了9种粒子系统,这里我们运用的平面粒子系统,通过调节粒子旋转角度、粒子速度、粒子角速度、粒子生命周期、粒子发射数、粒子大小等参数,并且我们还需要对其加入不同的属性,以达到自然环境中雨雪天的效果。对雾效的制作我们使用了Virtools里面专门制作雾效的BB—Set Fog,通过调节其参数达到效果。

3.5 交互实现

在虚拟漫游系统中,交互实现了用户对景点的了解,在虚拟漫游里交互功能是最基本的功能,就是为了使用户对场景里的景点进行了解,会让单调的虚拟漫游变得有趣得多。我们实现交互功能有两种方法,一个是人与人的交互,在漫游系统中,人物角色不止一个,还会有很多不同的角色参与其中。我们为每个人设定了不同的运动轨迹,我们控制的角色可以与他们进行交谈。另一个是人与物即景点的交互,这个在景点漫游的极为重要,比如一块碑,当我们角色靠近点击时就会弹出一个界面或者是一段语音视频等介绍这块碑的历史由来,意义等信息。人与物交互的实现,如图7。

4 结束语

通过对于虚拟游戏场景漫游系统的制作,在实践中深化了理论知识,在漫游系统制作中进行了多方面的测试,给出了具体的实现方法。对于不同的需要进行不同的创作以及对不足的地方修改,使得用户对于漫游系统场景有一个全面深刻的认识。

致谢在此,我们向对本文的工作给予支持和建议的同行,尤其是四川师范大学数字媒体系的各位领导和老师。

参考文献

[1]付志勇,高鸣.三维游戏设计[M].北京:清华大学出版社,2008.

[2]刘明昆.三维游戏设计师宝典:Virtools开发工具篇[M].成都:四川电子音像出版社,2005.

[3]王立群,李红松.电脑游戏策划与设计:Virtools简明教程[M].上海:复旦大学出版社,2008.

漫游系统的设计原理 篇7

视景仿真技术是指在实际系统尚不存在的情况下,对于系统或活动本质的复现。它作为一种研究方法和实验技术直接应用于系统研究,是一种利用相似与类比的关系来间接研究事物的方法。它为进行系统分析,综合研究,设计,以及对专业人员的培训提供了一种先进的技术手段[1]。视景仿真可分为仿真环境制作和仿真驱动。仿真环境制作主要包括:三维模型设计、场景构造、纹理设计制作、特效设计等,它要求构造出逼真的三维模型和制作逼真的纹理和特效;仿真驱动主要包括:场景驱动引擎、模型调动处理、分布交互、大地形处理等,它要求高速逼真的再现仿真环境,实时响应交互操作等。本漫游系统以某一变电所作业区为虚拟对象,以MultiGen为主要建模工具,并结合3ds Max[2]和PhotoShop[3]来辅助制图,以OpenGVS[4]为引擎驱动工具,开发出一个桌面型的变电所漫游系统。

1 三维模型构建

1.1 三维建模的概念

建模技术是将现实世界中的物体及其属性转化为计算机内部数字化表达的原理和方法。三维建模技术是视景仿真技术中的关键技术之一。我们所漫游的世界是否“能看起来真实、动起来真实、摸起来真实”,依靠的就是建模技术[5]。

1.2 漫游系统模型构建的任务分析

根据现场提供的照片和录像,本文分析,变电所漫游系统主要是室外漫游和室内漫游,以此建模的主要工作是室外建模和室内建模两部分。在每一个部分中又包含有很多的单个模型。整体工作量如图1所示。

1.3 三维模型的构建过程

变电所漫游系统场景中包含有许多模型,每一个模型的逼真度以及对系统资源的使用都对最终合成的总场景的视觉效果和运行速度起着至关重要的作用。因此,可以说三维模型的构建是整个工作中重点。整个场景被划分为若干部分,每部分模型的制作流程都是相似的,在这里仅以室外模型中的中变压器为例来介绍一下三维建模的过程。

(1) 数据的收集与整理:数据的来源主要是现场拍回的照片和录像,在录像中详细观察电容器在整个场景当中的位置以及电容器的每一个组成部分和各个部分的比例关系。数据的整理工作主要是在PhotoShop和3ds Max中进行,整理的目的是获取纹理素材。

(2) 几何建模:遵循由里到外,由上到下,由局部到整体的原则,逐层逐块地利用建模软件MultiGen提供的点、线、面、体创建和修改工具,进行变压器几何模型的创建。

(3) 物理建模:变压器的几何模型构建完成后,只是简单的一个模型没有任何立体效果,会有一种不真实的感觉,这就需要通过使用纹理、材质和阴影效果等物理建模的方法来增强模型的真实性。

(4) 运动建模:运动建模是三维建模的最后一步,它主要是对于会产生运动的模型进行自由度的设置和处理。通过上述过程建立的变压器三维模型如图2所示。

2 漫游引擎的设计与实现

2.1 变电所漫游引擎的设计

基于视景仿真技术的漫游系统的图形渲染时“实时”的,而且具有很强大的人机交互性。该漫游系统提供给用户交互控制的权限,用户可以在虚拟场景中随意前进、后退、旋转等[6]。

该漫游系统从功能上分为4大模块。

(1) 自由漫游模块。用户可以随心所欲地控制角色在虚拟场景中漫游,从而看到场景中任何一个角落。用户可以通过漫游平台上的对应按钮操纵角色前进、后退、左转、右转,也可以抬高视角、降低视角。这些功能通过键盘按键也可以实现。 (2) 自动漫游模块。用户在事先定制的漫游路线中可以按照个人意愿选择其中一条,漫游引擎可以让虚拟场景中的角色在选定的漫游路线上自动进行漫游,为用户展示沿线的虚拟建筑。另外,用户也可以按照自己的想法定制漫游路径。 (3) 音乐控制模块。漫游引擎内置了2首背景音乐供用户选择,背景音乐可以循环播放。 (4) 帮助模块。漫游引擎提供了文档帮助,具体说明漫游引擎的使用方式以及各种功能对应的键盘命令。

2.2 漫游系统的实现

漫游引擎是搭建在OpenGVS软件开发平台上的,而OpenGVS主要包括三个软件模块,即初始化模块,运行模块和关闭模块,这也是OpenGVS按照时序执行的先后顺序。基于OpenGVS的程序框架及漫游引擎的相关功能主要在用户初始化函数GV-user-init () 和用户运行函数是函数GV-user-proc () 中实现。其中,用户初始化函数在系统中只执行一次,而用户运行时函数则每帧调用一次。最后变电所漫游系统的室内外渲染效果图如图3和图4所示。

3 结束语

本文所阐述的变电所漫游系统是基于视景仿真技术,利用OpenGVS软件开发平台设计并实现的。该系统虚拟场景逼真,漫游功能齐全,用户可以进行多视点、多场景的浏览,让用户有身临其境的感觉。本系统取得了较好的视觉效果,目前已经应用到实际中,宣传效果极佳。

参考文献

[1]吴家铸等.视景仿真技术及应用.西安电子科技大学出版社, 2001:5~15、24~26、77~90.

[2]Sanford Kennedy.3ds max6.0动画与视觉效果技巧.电子工业出版.

[3]朱印宏.Photoshop7.0经典实例教程.航天工业出版社, 2003:9~13[9].

[4]OpenGVS Programming Guide (Version4.2) .Quantum3D.Inc.and Gemini Technology Corporation, 1999:66~68.

[5]杨克俭, 刘舒燕, 陈定方.虚拟现实中的建模方法.武汉工业大学学报, 2001, 23 (6) :47~50.

小型无人地面车辆虚拟漫游系统设计 篇8

小型无人地面车辆(SUGV)的运动环境复杂,进行无线操控需要操作员具有一定的熟练程度。利用虚拟现实技术可实现虚拟现实环境下的模拟训练,从而提高操作员的熟练程度。

虚拟现实(Virtual Reality,简称VR)是20世纪末发展起来的一项集计算机、传感与测量、仿真、微电子技术于一体,利用计算机生成的一种虚拟环境,通过视、听、触,甚至味觉,使用户身临其境,并能够与之发生交互作用。其实时性、沉浸性和交互性是VR技术的3个重要特征。交互性是指用户与虚拟场景中各种对象相互作用的能力,是VR技术的基础,交互是否自然、实时,决定了虚拟环境的真实程度和用户置身其中的认知能力。

目前,大多数用户通过键盘、鼠标等输入设备实现与虚拟场景进行交互,改变了视点的位置或视线方向,从而实现了用户在虚拟场景中漫游。

OpenGL是SGI公司推出的三维图形开发标准,提供的各种几何变换函数可以快速实现漫游。为此,本文采用OpenGL提供的基本几何变换控制虚拟漫游视点位置,并在基于SUGV的可视化漫游系统中予以应用。

1 漫游系统框架

图1是使用实现漫游系统的流程。程序采用双缓冲的绘图方式。在显示当前帧的同时,计算机在后台计算SUGV在下一帧中的位移、偏转角、视点的位置、视点的朝向。计算好以后,将这些参数传递给图形函数进行渲染,最后将渲染好的帧替换当前帧。

2 操纵杆控制实现

操纵杆是小型无人地面车辆在实际操作过程中的主要控制设备,通过操纵杆来控制SUGV的各种运动。因此,本文选用操纵杆作为SUGV可视化仿真平台的主要交互方式,使操纵者能够实现从模拟平台到实际操作的快速转变。

操纵杆作为计算机的一种输入设备在Windows系统中是以多媒体的形式出现的,是媒体控制接口(MCI)的一部分。在VC中对操纵杆的响应是利用MCI提供的一组检测游戏操纵杆、确定操纵杆性能、位置、按钮信息的函数来实现的。

本系统采用北通幻影操纵杆,该操纵杆手感佳,控制灵活,采用USB接口,即插即用,带有可编程的按钮(图2)。

2.1 操纵杆功能

操纵杆功能包含了对它性能的查询,记录操纵杆的位置和按键情况,以及接受对操纵杆事件反应的消息。应用程序可以使用下列函数来接收操纵杆的输入信息:①joyGetNumDevs:返回操纵杆功能能够支持的操纵杆的数量;②joySetCapture:捕获操纵杆信息,并将操纵杆消息发送到指定的窗口以及发送消息的频率;③joyGetDevCaps:返回操纵杆的性能参数;④joyGetCapture:使操纵杆的输入在规定的时间间隔内或者当操纵杆状态有所改变时,发送到一个指定的窗口。

2.2 操纵杆功能实现

(1)捕获函数:

该操纵杆采用消息响应机制,因此,要完成对操纵杆的编程,首先要实现捕获操纵杆,本文中利用VC提供的捕获函数joySetCapture()来实现,该函数可以返回操纵杆的状态信息。例如,操纵杆未连接到系统或是操纵杆的驱动不存在。

(2)消息处理:

初始化工作完成以后,系统就可以捕获到游戏操纵杆,Windows会把所有的操纵杆消息发送给当前对话框窗口。当操纵杆的方向改变时,产生的是MM_JOY1MOVE消息;当功能按钮被按下时,产生MM_JOY1BUTTONDOWN消息;当操纵杆z值发生变化时,产生MM_JOY1ZMOVE。通过编制WindowProc()回调函数,对各消息进行处理。

为方便控制,需要将捕获到的操纵杆数据进行必要的处理和转化,比如将X轴方向的65 536个档位的位置信息(从0~65 535)转化为对称的位置信息。假设需要的数据范围是-s~s之间,s为正值,转换结果为r,读取的摇杆数据为m,那么转换公示为:r=(2s×m)/65 536.0-s,从而使控制效果直观。

对操纵杆来说,要设置操纵杆的X轴坐标和Y轴坐标,以及死区。由于长时间对操纵杆进行操作,产生0点漂移,导致摇杆在自由状态下控制量不为0,因此要给操纵杆工作区域设置一个死区范围,保证操纵杆在死区范围内控制量为0,不会产生误动作。

在速度控制上,协议规定:沿Y轴正半轴数值越大,表示无人车辆在前进方向速度越大;沿Y轴负半轴数值越小,表示无人车辆在后退方向速度越大。在方向控制上,协议规定:操纵杆位于第一象限时,无人车辆向右前方转弯;操纵杆位于第二象限时,无人车辆向左前方转弯;操纵杆位于第三象限时,无人车辆向左后方转弯;操纵杆位于第四象限时,无人车辆向右后方转弯;在每一象限的转弯大小由X轴和Y轴坐标大小控制,通过按键1和操纵杆的共同控制,无人车辆即可实现向左或向右中心转向。

3 小车在场景中的运动控制

为了实现对三维模型的实时驱动,首先要建立一个定时器,定时器由函数SetTimer(nID, simulationStep, NULL)完成。simulationsStep是仿真步长,定时器每隔一个仿真步长产生一个WM_TIMER消息。WM_TIMER的消息处理函数OnTimer()每隔一个仿真步长执行一次,在函数OnTimer()中更新三维模型的位置和姿态,就可以实现对三维模型的驱动。

OpenGL提供了两个函数glTranslatef()和glRotatef()来确定小车模型在空间中的位置和姿态。它们分别对小车模型进行平移和旋转变换。函数glTranslatef()平移小车模型到场景中的某一点上,该点由括号内的参数决定,而glRotatef()将在该点上的小车模型旋转到一定姿态。在场景中绘制小车模型前,先计算出经过t时间所运动到的新一点的位置量和姿态参数,然后调用上面两函数进行绘制。下面这段程序可将实体在场景中(New_x, New_y, New_z)位置上以Rotate_x、 Rotate_y、 Rotate_z姿态显示。其中,Rotate_x表示俯仰角;Rotate_y表示平转角;Rotate_z表示倾侧角。

glPushMatrix();

glTranslatef(New_x, New_y, New_z); //新一点的位置量将模型移到新位置上

glRotatef(Rotate_x,1.0,0.0,0.0); //根据新的姿态参数调整模型姿态绕x轴旋转

glRotatef(Rotate_y,0.0,1.0,0.0); //模型绕y轴旋转

glRotatef(Rotate_z,0.0, 0.0,1.0); //模型绕z轴旋转

4 视点漫游实现

在三维视景仿真系统中,视点即为“人眼”的化身,其功能与现实世界的照相机类似。漫游实际上就是通过不断移动视点或改变视线方向(观察方向)而产生的三维场景的重新绘制过程。因此,三维场景中只需要通过不断改变视点和观察点的位置来实现漫游。

三维场景漫游功能提供了用户与场景之间的交互,用户的输入导致了视点及其视线方向改变时,所看到的部分场景也会相应变化,这样就模拟了用户在不同角度对场景的观察。在漫游过程中,通过键盘、操纵杆来实时更改视点位置和观察方向以达到对场景的控制。

OpenGL提供了函数gluLookAt()来完成相机的放置。gluLookAt(eyex,eyey,eyez,centerx,centery,centerz,upx, upy,upz);其中,(eyex,eyey,eyez)指定眼睛的位置(视点的位置)也即相机放置的位置;(centerx,centery,centerz)指定被观察的场景对象的位置也即相机拍摄目标对象;(upx,upy,upz)指定观察者的角度也即相机的拍摄角度。

通过改变函数中各参数值就可以完成视点的不同方式设置。系统放置了三个相机,第一个相机模拟小车前侧摄像头,第二个相机模拟小车后侧摄像头,这两个相机视点的位置和三个姿态角均由小车决定。设小车在三维场景中的位置是(New_x,New_y,New_z),姿态角为(Rotate_x,Rotate_y,Rotate_z),视点距小车的距离为d,那么视点的3个角(Rotate_x1,Rotate_y1,Rotate_z1)、位置(New_x1,New_y1,New_z1)分别为:

New_x1=New_x+d×cos(Rotate_x)×sin(Rotate_y)

New_y1=New_y+d×sin(Rotate_x)

New_z1=New_z+d×cos(Rotate_x)×cos(Rotate_y)

Rotate_x1= Rotate_x

Rotate_y1= Rotate_y

Rotate_z1= Rotate_z

第三个相机跟踪小车尾的运动,并且视点的位置可通过键盘的输入改变。它放置在离车尾距离为Distance的地方,Distance参数随用户对上下键的操作而改变,以实现相机的拉近与放远效果。同时,左右键可使相机左右摇摆,能从各个水平角度观察小车的运行情况。其中,上下左右键分别对应键盘的“↑”、“↓”、“→”、“←”。操纵杆的按键2至按键4这3个按键分别切换视点到小车前侧摄像头、后侧摄像头、可变视点对应的视景。

5 结语

本文利用OpenGL开放性三维图形库进行设计,在Visual C++环境下,结合仿真系统的关键技术操纵杆控制的实现、运动控制、视点漫游技术的实现等,开发了一个小型无人地面车辆虚拟漫游系统。该漫游系统为实时仿真系统的研究应用提供了一种实现途径。

摘要:以实验室中的小型无人地面车辆(SUGV)为背景,在Visual C++环境下,以通用标准三维图形函数库OpenGL为工具开发了一个小行无人地面车辆虚拟漫游系统。介绍了如何实现仿真系统的一些关键技术,如操纵杆控制的实现、运动控制、视点漫游技术的实现等。该仿真系统既可为操纵人员提供模拟操纵平台,也可为开发人员提供辅助设计、开发平台。

关键词:OpenGL,无人车辆,虚拟现实,虚拟漫游

参考文献

[1]李湘德,彭斌.虚拟现实技术发展综述[J].技术与创新管理,2004(6).

[2]陈文萍,邓俊辉,唐泽圣.基于图像的虚拟场景实时漫游[J].计算机辅助设计与图形学学报,2004(9).

[3]刘惠义.虚拟视景交互漫游过程中视点的运动控制方法[J].计算机辅助设计与图形学学报,2004(6).

[4][美]RICHARD SWRINGHT JR.OpenGL超级宝典[M].第3版.北京:人民邮电出版社,2005.

漫游系统的设计原理 篇9

虚拟旅游的应用得益于虚拟现实技术的发展。俗话说“百闻不如一见”,身临其境的浏览比起文字图片的宣传更有说服力。虚拟漫游的自主交互性与传统的被动观看,有着很大的不同。科技的进步一旦运用于现实生活中,它将强制性改变我们的思维模式,给问题带来新的解决方法,当然也会为虚拟旅游建设带来新的变革。

所谓虚拟旅游是指在当前现实景区的基础上,利用虚拟现实技术构建的三维立体旅游环境,依托互联网络,足不出户,便能在三维虚拟的环境中饱览世界各地。虚拟景观漫游与传统二维的文字图片相比更加直观、生动、逼真。目前海口香世界庄园的网站依然限于文字、图片和少量的视频,无法展示海岛独有的生态环境与热带地域气息。虚拟景观漫游则将景区的自然环境、人文环境重现于屏幕上,使游客置身于景区,全面地了解景区的地理位置、风土人情、人文气息等。

2 虚拟漫游技术介绍

2.1 Adobe Photoshop

Adobe Photoshop,简称“PS”,是由Adobe Systems开发和发行的图像处理软件。其中拼接选项photo merge的原理也相对简单,只有最基本的对齐与融合功能,对复杂的图片扭曲、镜头变形补偿就无能为力。因此,使用photo merge拼接图片时对拍摄方法有诸多限制。为达到比较理想的效果,每一张图片之间至少要有30%的重合区域。所有照片使用同一曝光度。另外还要尽量避免广角镜头造成的照片变形,建议使用50mm以上的中长焦距拍摄。因此其专长在于对拼接后的图像处理与美化,而不是图像拼接,作为配角来增添光彩。

2.2 Autodesk Stitcher Unlimited

Stitcher是一款专业级的全景工具,该软件支持镜头EXIF信息识别,并以此为参数作为计算图片变形和混合辅助数据,进一步增强了拼接的准确度。另外针对鱼眼镜头视角广但变形剧烈的特点,Autodesk在购并Stitcher Unlimited之后,增加了专门的算法,以处理鱼眼镜头拍摄的照片。但随着深入的研究和比较,该软件的拼接速度和渲染速度都明显偏慢,特别是打开高级渲染选项后,一篇比较大的作品渲染时间要在40分钟至90分钟左右,导入图片时要求一组照片的尺寸保持一致。在专业的批量处理工作中,这就成了一个很大的问题。总的来说,Stitcher Unlimited最终给人的映像是,庞大、专业、昂贵,但缺乏灵活性。

2.3 PTGui

PTGui的名称是由Panorama Tools的图形用户界面(Pano Toolsˊgraphic user interface)缩写组合而成。PTGui通过为全景制作工具(Panorama Tools)提供可视化界面来实现对图像的拼接,从而创造出高质量的全景图象。但复杂而又简陋的用户界面,使得Panorama Tools在很长时间里没办法推广使用。直到2006年12月PTGui6.0版本问世,这才使得PTGui在全景领域中异军突起。从6.0版本的功能开发清单中,以前繁琐的手工调整工作全部变为自动完成。例如校准镜头型号,由于每款镜头拍出的都会有不同程度的变型,且不同镜头的畸变特征也是截然不同的,特别是鱼眼镜头更会产生夸张的变型效果。

如今,PTGui已经可以通过照片中的EXIF信息来自动完成这个枯燥的校准过程。当采集照片时,相机会自动记录一系列和你拍摄有关的信息到照片之中。当按下快门的那一瞬间,相机已经把机身型号、镜头焦距、光圈值、快门速度、测光模式、曝光补偿值、色温以及拍摄时间全都记录在了照片之中。如果相机外接了GPS模块,照片中还会保存拍摄地点的经纬度。将来,这个数据通过程序自动在google map上标出每一套全景作品的拍摄位置。

由于PTGui中有一套关联各种硬件信息和照片的变形数据库,通过这个强有力的工具,终于让繁琐的镜头校准工作成了历史。目前,PTGui已经升级到了10.0版本,也是制作完成海口香世界庄园全景图像的主要工具。

3 海口香世界庄园虚拟漫游的需求分析与设计

海口香世界庄园虚拟漫游系统的构建,以全方位的展示香世界庄园环境、各类热带香草植物为目的。为此采取简单快捷的360度柱面全景映射法,通过鼠标和按钮控制在庄园漫游的行程,进而实现不同场景的切换与选择,从而获得真实的存在感。在香草植物园全景中,通过添加热区,展示了我国香草的分布区域、种类区别,还展示了香世界庄园自主研发的香草系列产品,又变成一堂传播香草知识的课堂。

基于静态图像及互联网环境下的海口香世界庄园虚拟漫游系统的创建过程如图1所示。

4 虚拟香世界庄园漫游系统的实现

视点选项、交互方式、场景选择、庄园介绍是庄园漫游的必备功能,也是基于用户的实际需要。如表1所示。

4.1 香世界庄园漫游的结构

在设计香世界庄园漫游主界面时,以庄园入口为出发点,庄园各个分区有序排列,以顺序漫游的方式作为组织结构,在重要位置区域(比如香草植物园)通过热区的制作,进行二级页面的连接。

4.2 香世界庄园漫游的实现

实现香世界庄园漫游三个流程:一是庄园内部分区图像的采集,这是实现香世界庄园漫游的前提与基础;二是庄园漫游空间的设计编排,合理的编排利于体验者任意自主漫游在庄园各个角落;三是设计便于体验者游览的庄园漫游界面,合理的界面布局,方便体验者选择偏好的虚拟场景,让体验者有着良好的虚拟交互感。

4.3 香世界庄园全景图像的生成

4.3.1 全景图像的采集

鱼眼镜头取景范围大,不仅有效减少了采集图片的数量,而且还提高了制作全景影像的效率高,但相应的设备较为昂贵,且操作较为复杂,不适合广大爱好者。由于采取柱面映射法,直接选取普通数码单反相机在同一视点间隔30度顺序旋转拍摄一组图片,即可满足全景图像的拼接需要。

4.3.2 全景图像的拼接

PTgui的主界面简洁、拼接流程清晰,各类标识清楚。左上角三个按钮对应全景生成流程中的三个步骤:加载图像、对准图像、创建全景图。

4.3.3 三维全景图像的发布

Pano2VR是一个全景图像发布的应用软件,可以把生成的柱面全景图转换成Flash格式的三维全景图像,并且可以定制全景图像播放的皮肤,在漫游的交互上有着强大的功能。制作生成的Flash格式全景图像,如图2所示。



4.4 香世界全景漫游浏览器的设计

根据香世界庄园的实际需求,浏览界面布局为:全景导航、全景展示和快速浏览通道,在导航地图的适当位置设置对应的热点连接节点,点击导航地图中的热点,即可自由进入到香世界庄园的各个全景角落,如图3所示。

5 结语

实践应用是理论研究的目的,虚拟漫游在虚拟现实技术中的应用是个热点,以海口香世界庄园虚拟漫游为例制作一个具有简单交互功能的虚拟漫游,是基于图像绘制的三维虚拟漫游,可以在浏览海南热带农庄时具有真实感和沉浸感。

参考文献

[1]李鸥,赵梦.三维全景摄影专家技法[J].电脑报电子音像出版社.2009

[2]叶萍萍,罗宏.基于PTGui Pro、Pano2VR的三维全景图制作方法与应用[J].城市勘测,2012,18(4):66-69.

[3]帖经炜.基于虚拟现实技术的数字旅游研究与应用[D].太原:山西大学,2011.

上一篇:煤矿女工下一篇:设计高中物理实验