文档详情

基于游戏引擎的虚拟漫游系统

E****
实名认证
店铺
PDF
1.01MB
约6页
文档ID:114399253
基于游戏引擎的虚拟漫游系统_第1页
1/6

引言 基于游戏引擎的虚拟漫游系统 张明敏杨皓然潘志庚 浙江大学C A D & C G 国家重点实验室,杭州3 1 0 0 5 8 近年来,虚拟环境逐渐成为计算机图形学研究的热点问题它具有多感知性、沉浸性、 交互性、构想性等主要特征随着计算机硬件的飞速发展以及成本的大大降低,这项技术在 医学、建筑、制造、娱乐、电子竞技、军事等领域获得了广泛的应用虚拟环境漫游是虚拟 现实应用的基本功能之一构造一个虚拟环境漫游系统,就是利用高性能计算机软硬件创建 使参与者具有身临其境的沉浸感和良好的人机交互能力,有助于启发构思的信息环境,进而 达到参与者在虚拟环境中获取知识、形成概念的最终目标近年来,虚拟环境漫游的研究十 分活跃,如浙江大学的虚拟紫禁城和北京航空航天大学的虚拟北航校同等⋯ 由于虚拟环境系统本身的复杂性,加之缺乏相应工具和软件的支持,开发虚拟漫游系统 是一项费时费力的工程,已有项目代码的重用也是相当的困难【2 】为了实现漫游程序的快速开 发,国内外都试图将漫游应用的共性抽取出来,开发一套支持虚拟环境漫游的核心程序,在 较大程度上实现代码重用,避免重复劳动,加速开发进程国内北航赵沁平提出了一种较为 通用的、与模型无关的虚拟环境漫游引擎框架结构【3 】。

该漫游引擎只需要提供符合o p e n f l i g h t 场景数据描述规范的场景数据库即可完成整个漫游应用该漫游引擎实现了代码重用,减少 了工作量,但是仍然不够完善,比如缺乏对建模的支持,缺乏更真实的碰撞检测机制等等 由于三维游戏和虚拟环境漫游系统的相似性,我们可以使用游戏开发中的相关技术来开 发虚拟环境系统,例如匹兹堡大学利用虚幻引擎开发了虚拟环境系统C a v e U T [ 4 1 为了快速开 发复杂的虚拟环境漫游程序,我们实现了一套基于游戏引擎的虚拟环境开发框架,对场景构 建,人机交互,场景的实时绘制提供了强大支持在该框架的基础上,我们开发了虚拟网络 马拉松系统( V N M ) 垆J 在V N M 系统中,用户以跑步机作为交互设备,人体作用于跑步机而 产生的各种运动参数被系统实时捕获,输入到计算机,作用于虚拟环境,实现人与虚拟环境 的交互 1 系统构成及原理 我们利用L u c i d 游戏引擎开发了虚拟漫游系统№1 系统设计采用了 M V C ( M o d e l —V i e w - C o n t r 0 1 1 e r ) 模式M o d e l 封装内部数据与功能,V i e w 从M o d e l 获取信息并 向用户显示,C o n t r 0 1 1 e r 从V i e w 接收用户输入并反映到M o d e l 。

M V C 模式很好地实现了M o d e l , V i e w ,C o n t r o l l e r 三者的分离,使系统可以灵活地适应用户多变的功能界面需求通过采用 M V C 模式,V N M 系统可以灵活地适应用户多变的场景、装备等需求 .1 0 7 .- 图l 系统框架图 输入模块处理用户与系统的交互为了支持尽可能多的入机交互设备,我们仔细地区分 了各种设备的交互属性,以传递信息的维度分类,将交互设备抽象为三类:鼠标、键盘和六 维力反馈撼杆因此输入模块不但能够处理跑步桃,也能处理追踪球( T r a c kb a l l s ) 、三维探 针( 3 DP r o b e s ) 、浮动鼠标( F l y i n gm o u s e ) 、力矩球等V R 系统中常见的六自由度交互设备 网络模块通过局域网或者因特网将远程用户连接起来,是一个典型的客户端——服务器 模式 场景管理模块负责管理场景模型,包括场景的建模、变换、编辑、导入和导出等场景 管理模块是建立在L u c i d 引擎提供的场疑编辑器( S c e n eB u i l d e r ) 上S c e n eB u i l d e r 是一个所 见即所稳豹编辑器,它确保了模型的显示效果在场景编辑器中秘应用程序孛靛一致。

物理模块实现了虚拟人物角色与周围环境在物理上的交互该模块包含了动力学、运动 学、碰撞检测等予模块动力学模块模拟了物理实体的惯性运动,运动学模块模拟了无质量 物理实体的运动警物理实体之阔相互磁撞时,磁撞捡测模块被激发,通过求鳃动量方程来 计算物体碰撞后的运动情况 多媒体模块负责处理程序中的声音、视频等资源,使得用户可以与系统多通道交互,增 加了沉没感 绘制模块建立在L u c i d 图形引擎之上该图形引擎使用了各种技术增强绘制的性能,包 括:层次式的视域裁剪、遮蔽裁剪、层次细节管理( L O D ) 等等该幽形引擎同时还实现了 阴影、像素级光照、粒子系统等等特殊效果,增强了绘制的真实感 漫游管理模块是整个漫游系统的核心模块它从网络模块和人机交互模块接收用户运动 信息,并调用其他模块实现用户与虚拟环境的交互 2 关键技术 霜户可以和虚拟环境实时交互是虚拟漫游系统最重要的特性之一我们采用了成熟豹游 戏引擎来加速系统的开发,采用一些关键技术对系统性能进行优化,包括:人机交互、虚拟 场景的编辑和构建、实时绘制和物理特性的模拟,使褥用户可以在当前主流配戥的P c 机上流 .1 0 8 — 畅运行系统。

2 .1 人机交互的传感器技术 游戏引擎通常是以鼠标和键盘作为交互设备而在V N M 系统中,用户以跑步机作为交互 设备我们在跑步机上加装了单片机芯片来实时检测用户的运动信息,以增量式编码的方式 记录跑步机履带旋转角度对应的脉冲,然后将检测到的脉冲转换成履带旋转的圈数,从而计 算出人在跑步机上相对于某一参考点的瞬时位置为了真实地模仿在虚拟场景中的长跑活动, 还需要知道虚拟化身转动方向的角度,因此我们对跑步机进行了改装,加装了方向控制按钮 来控制用户在虚拟场景中漫游的方向我们仔细地区分了各种设备的交互属性,以传递信息 的维度分类,把跑步机抽象为六维力反馈摇杆,使得系统可以灵活的支持多种交互设备 2 .2虚拟场景的构建 快速环境建模是分布式虚拟环境的关键问题之一拍1 我们使用L u c i d 引擎提供的场景编 辑器来构建虚拟场景盯1 通过场景编辑器,开发者可以轻松地导入网格数据,然后摆放模型创 建场景此外,通过场景编辑器还能创建特殊效果,例如粒子系统,天空盒等场景编辑器 还包括了模板系统,这对于创建大型场景非常重要图2 显示了使用场景编辑器的流程 3 D 建模工具( 例如3 D S M a x 等) L u e i d 弓l 擎的导出工具 网格、材质和动画数据音频数据 L u c i d o f 擎的场景编辑器 场景、地形以及各种视觉特 效 虚拟网络马拉松系统 图2 场景编辑器使用流程 在L u c i d 中,场景数据是以场景图的形式组织起来的,整个图由场景节点形成层次。

场 景图一般以.s c n 或.s c n .x m l 为后缀的文件保存在这个文件内,保存了场景中所有节点信息 以及它们的相互关系在虚拟网络马拉松系统中,每一个场景都对应一个.s c n .x m l 文件,用 户可在登入界面上选择场景,系统自动搜索对应的场景文件并加载我们通过3 D S M a x 构建场 景,然后导入到场景编辑器中,并在其中添加系统需要的节点,例如碰撞检测体、公告牌节 点、粒子系统节点等等但是虚拟网络马拉松系统的场景中景物众多,数据量大,如果每一 个场景都事无巨细地通过这样的流程来创建,工作量很大,效率低下我们采用了分块建模 的方式我们把整个场景看成块的集合块是基本的模型单元,通过将块的大小和边界标准 .1 0 9 . 化,块与块之问就可以平滑连接通常一幅场景中总有些块外观是相似的.例如地形利用 场景编辑器的模板功能,我们将一些基本块抽象成模板,再以此创建其他块,将它们组合在 一起,拼凑为完整的场景,这样大大提高了建模的效率并且从性能上考虑,分块有利于可 见性的判断.加快了渲染速度 2 .3 虚拟场景的宴时绘制 太型复杂场景模型的绘制超过了当前图形硬件的处理能力,因此我们必须在速度和画质 问权衡折中,细节层敬( 1 e v e lo f d e t a i l ,L O D ) 就是一种非常有效的控制场景复杂度的方法”J 。

该 技术用具有多层次结构的物体集合描述一个场景,即场景中的物体具有多个模型,其模型间 的区别在于细节的描述程度,那么实时显示时,细节较简单的物体模型就可以用来提高显示 速度实时显示时,模型的选择取决于物体的重要程度.而物体的重要程度由物体在图象空 间所占面积等多种因素确定对复杂的大范围室外场景,细节层次技术能在保持一定图像质 量的前提下太幅增强系统性能 在V N M 系统中,针对室内场景,我们采用了入1 2 裁剪( P o r i a l C u l l i n g ) 来剔除那些不能 通过入口( 例如室内场景中的门窗等) 看到的场景.优化系统性能,提高帧率⋯1 我们将场最 划分为一系列的单位空间各个单位空间能通过入口相互连接位于单位空间中的视点只能 通过入口观察其他相邻空间当通过一个指定观察位置的可视平截体( v i e wf m s t u m ) 进行渲 染时.如果一个八口出现在可视范围内,那么^ 口将对可视平截体进行剪切,这样与其相连 的单元空间将会通过一个观察位置相同但已经改变过的可视平截体进行渲染这是一个非常 简单而且非常适台进行递归调用的方法,由于可视平截体被p o n a l 进行了精确的限制,因此被 隐藏的物体可以根简单进行剔除。

g4 高级视觉效果 我们应用了一系列高级着色技术来创造更加真实的环境,实现了动态时间系统和辉光效 果,增强用户的沉浸感用户可以根据自己机器的配置来打开或者关闭这些特效 昼夜的动态变化是通过天空的变化和场景中光线的变化来实现的我们采用S k y D o m e 的 方式模拟天空S k y D o m e 就是一个很大的半球,有高度和半径两个参数通过给S k y D o m e 添 加效果材质( e f f e c tm a r t i a l ) .我们就可以实现天空的各种动态效果效果村质对应一个效果 资源,即以高级着色语言( H i g h L e v e lS h a d I n g L a n g u a g e ,I ⅡS L ) 写成的着色器程序,通常是 咀& 后缀结尾的文件在我们的系统中,我们使用L u c i d 提供的S k y C l o u d f x 效果文件通过 设定一个时问变量.动态计算出当前环境中平行光源的漫反射、镜面反射、环境分量这样 就实现了夜晚光线变暗,到中午光线逐渐增至最强的动态变化过程 圈3 一无中m 午和黄昏效果的对& 真实环境中存在这样一种现象;由于光线在大气或者^ 眼中的散射,特别明亮的物体周 围有一层光晕,称之为辉光效果( G l a r ee f f e c t ) 。

我们利用后处理的方式,首先提取出图像 中明亮部分,进行二维高斯模糊来渲染光晕采用高斯滤波函数进行模糊时,生成的图像的 质量严重依赖于采样点的个数.但是采样点过多会导致计算鼍大大增加,无法满足实时要求 高斯滤波函数具有线性可分特性.即对二维高斯滤波函数的计算可以分拆到两个独立的一维 空间分别进行基于该特性,我们把二维高斯滤波沿正交方向分拆为两个一维高斯滤波“” 第一次对图像沿x 轴方向进行一维高斯滤波.生成一个中间结果图像第二次对中间结果图 像枯Y 轴方向再进行一次一维高斯滤波采样这种方法后,对n 2 个采样点的计算只需2 n 步就 能完成,大大降低了计算复杂度同时保证了图像质量 25 基于物理的模拟 物理效果对于增强用户沉浸式的体验有至芙重要的作用L u c i d 平台提供了高效的碰撞 检测系统,支持d y n a m i c s /k i n e m a t i c s 模拟.r a g d 0 1 1 模拟。

下载提示
相似文档
正为您匹配相似的精品文档