(计算机应用技术专业论文)基于互动投影的游戏开发平台.pdf_第1页
(计算机应用技术专业论文)基于互动投影的游戏开发平台.pdf_第2页
(计算机应用技术专业论文)基于互动投影的游戏开发平台.pdf_第3页
(计算机应用技术专业论文)基于互动投影的游戏开发平台.pdf_第4页
(计算机应用技术专业论文)基于互动投影的游戏开发平台.pdf_第5页
已阅读5页,还剩67页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

浙江大学硕士学位论文 摘要 摘要 增强现实可以将虚拟的物体合并到现实场景中,并能支持用户与其进行交互, 它已经成为虚拟现实研究中的一个重要领域。基于摄像头投影仪的互动投影系统 是增强现实的一个重要应用。 本文设计和实现了互动投影环境下的一个游戏开发平台。详细介绍了基于互 动投影的游戏开发平台的设计思路和实现方法。这个平台最大的特点是高度模块 化,功能强大的图形特性和物理特性,支持拼接,支持多机同步,支持互动投影 环境下游戏模板的快速高效开发。 本文的论述重点在于以下两个方面: ( 1 ) 平台的架构,整个平台分为两层,分别是平台支持层和平台接口层。平台 支持层包含拼接模块,跟踪模块,同步模块以及调度模块。平台接口层包括图形 模块,平台主接口模块,物理模块,音频模块和视频模块。拼接模块负责完成多 投影的拼接。跟踪模块负责产生互动投影环境下人的交互信息,我们称之为覆盖 率信息。同步模块负责多台机子的同步绘制。调度模块负责模板的装载卸载和切 换( 在我们平台上开发的游戏统一称之为模板) 。图形模块负责绘制的工作,下面 有覆盖率模拟,底图切换,特效等子模块。平台主接口模块是模板开发必须使用 的模块,它提供了模板运行的基本框架。物理模块实现了对开源物理引擎b u l l e t 的封装,把图形引擎o g r e 和物理引擎b u l l e t 整合起来。音频模块和视频模块提 供常见的音频和视频播放支持。在平台上做模板开发时主要与平台接口层打交 道。模板开发者不需要考虑拼接同步等问题,大大加快了模板开发的速度。 ( 2 ) 水面模拟子模块,我们除了实现通常的环境波外,还采用波粒子的概念模 拟了球与水的相互作用。 关键词:互动投影,增强实现,o g i 也,b u n e t ,波粒子 浙江大学硕士学位论文 a b s 订a c t a bs t r a c t a u g m e n t c dr e a l i t ) ,( a r ) a l l o w st 1 1 cu s e rt 0s e et l l er e a lw o r l d ,w i mv i n u a lo b j e c t s s u p e r i m p o s e du p o no rc o m p o s i t e dw i t i ln l er e a lw o d d t h e r e f o r e ,a re i | l l 锄c e sa u s e r s p e r c 印t i o no fa n di n t c 豫c t i o n 、v i t ht h er e a lw o r l d n o wi th a sb e c o m e 瓶i n l p o n a 眦 r e s e a r c hf i e l di nv i i t u a lr e a l 时柚dn e x tg e n e m t i o no fh u m a n p r o j e c t o r c 锄e r ab a s e d i n t e r a c t i v ep r o j e c t i o ns y s t e mi sai n l p on a _ n tf i e l di i la u g m e n t e dr e a l i 吼 h 1t h i sp a p e r ,、d e s i 印卸dr c a l i z cag a m ed e v e l o p m e mp l a t f o m 明d e r i n t e r a c t i v ep r o j e c t i o n 翩啊n m e n t nd e s c r i b e st h ep l a t f o 肌sd e s i g n 舳dr c a l i z e m e t l l o d t 1 1 ef e a t u r e so fm i sp l a t f o ma 他h i g h l ym o d u l a r s 仃o n gp h y s i c sa n d 铲a p h i c s f e a t u r e s ,s u p p o r tm o s a i c ,s y n c h r o i l i z a t i o n 粕dq u i c ke f f i c i e n tg a m et i t l ed e v e l o p m e n t u n d e ri n t e r a c t i v ep r o j e c t i o ne n v i r o n m e n t t h i sp a p c rd i s c u s sf o c u s e do nt h ef o l l o w i n ga s p e c t s : p l a t f o r m 缸c h 慨t u r e t t l ew h o l ep la t f o n ni sd i v i d ei n 协t 、ol a y e r s :p l a t f o m s u p p o r tl a ) ,e r 锄dp l a 怕硼i n t e 血c el a y e r p l a t f 0 咖s u i ) p o nl a y e ri n c l u d e sc a l i b r a t i o 玛 m o t i o n 仃a c l 【s y n c h r o n i z a 吐o n ,d i s p a t c hm o d u l e p l a o mi n t 盯f a c e1 a y e ri n c l u d e s 乎a p h i c s ,p l a b 肌m a i ni n t e r f a c e ,p h y s i c s ,s o u n d ,v i d e om o d u l e c a l i b r a t i o nm o d u l e m a k em u l t i p r o j e c t i o nc o n c a t e n a t i o n m o t i o nt r a c km o d u l e 觚c kh u m a ni n t e r a c t i o n i n f o s y n c h r o n i z a t i o nm o d u l ei su s e df o rm u l 6 一c o m p u t e rs y n c l l r o n i z a t i o n d i s p a t c h m o d u l ei su s e df o rm o dc r e a t i n g ,r e l e a s i n g 觚dc h a n g i n g g r a p h i c sm o d u l ei su s e df o r r e n d e r i n g p h y s i c sm o d u l ee i l c 印s u l a t e 叩e n u r c ee n g i n eb u l l e t ,i tc o 肌e c t s 鼬i c s e n g i n eo g r ea n db u l l e t s o u n da n dv i d e om o d u l es u p p o r tc o m m o ns o u n da n dv i d e o p l a y i n gt a s k w h e nu s i n gt h i sp l a t f o n _ l ld e v e l o p i n gt i n e ,i tn e e dn o tt 0u s ep l a t f b m l a y e rm o d u l e sd i r e c t l y t h u sn e e dn o tt 0c o n s i d e rs y n c h r o n i z a t i o n 锄dc a l i b r a t i o n p r o b l e m 1 1 l i sg r e a n yi m p r 0 v et i 廿ed e v e l o p i n gs p e e d n e x t 、】l ,ew i l li n 仰d u c ew a v es i m u l a t i o ns u bm o d u l e ,、ei m p l e m e n t e dc o m m o n e n v i r o n m e n tw a v e w ba l s os i m u l a t ei n l j e m c t i o nb e t w e e nw a t e ra n ds p h e r eu s i n gw a v c p a n i c l ep r i n c i p l e k e y w o r d s : i n t e m c t i v ep r o j e c t i o n ,a u g m e i l tr e a l i 劬o g r e ,b u l l e t ,w a v ep a n i c l e 浙江大学硕士学位论文 图目录 图目录 图1 1e d - p r o j e c t o r 系统图示5 图1 2h i s p a c e 系统5 图1 3c a v e 系统演示6 图1 4 英狮科技的聪明眼系统演示7 图1 5 超澜数码的语音非接触式交互系统演示7 图2 1 平台与客户程序的层次关系9 图2 2 平台的架构图1 0 图2 3 拼接模块的主要类图1 1 图2 4 拼接前后的效果对比图1 2 图2 5 跟踪模块的主要类图1 3 图2 6 跟踪模块提供的接口类1 4 图2 7 调度模块的核心类。1 6 图2 8c m o d 以及子类提供的接口1 7 图2 9 调度模块和跟踪模块的关联图1 7 图2 1 0 底图切换的主要类1 8 图2 1 1 覆盖率模拟示意图1 9 图2 1 2 平台主模块的核心类2 0 图2 13b u l l e t 的模块划分2 3 图2 1 4 碰撞形状的继承关系图2 4 图2 15 物理世界及封装关系图2 5 图2 1 6 物理实体的封装图2 5 图2 1 7 单步模拟中的函数调用关系2 6 图2 1 8 音频模块的主要类2 8 图2 1 9 视频模块的主要类2 9 图2 2 0 系统执行示意图2 9 图2 2 l 校正截图3 0 图2 2 2 拼接校正程序截图3 1 图2 2 3 几何校正的部分结果3 2 图2 2 4p i ) ( e lb u f r e rm a s k b m p 图示。3 2 图2 2 5 平台的初始化流程3 3 图2 2 6 调度模块的初始化流程3 4 图2 2 7 跟踪模块的初始化流程3 4 图2 2 8 拼接模块的初始化流程3 5 图2 2 9 绘制端状态转化图3 6 图2 3 0 控制端发送打开模板命令的操作图3 6 m 浙江大学硕士学位论文 图目录 图2 3 l 模板的加载过程3 7 图2 3 2 控制端绘制端状态转换控制图3 9 图2 3 3 幸福烛光模板演示图4 1 图2 3 4 踢踢乐模板演示图4 2 图2 3 5 浪漫花语模板演示图4 3 图2 3 6 秋风落叶模板演示图4 4 图3 1 使用顶点纹理和没使用顶点纹理的效果对比图4 7 图3 2 一张用于水面位移的高度图4 7 图3 3 ( a ) 单独的波粒子( b ) 由波粒子组成的波阵面5 0 图3 4 波阵面的扩展现象5 0 图3 5 波粒子的分解5 1 图3 6 水波产生情况( a b ) 球在水上( c d ) 球在水下。5 2 图3 7 水效果的绘制框架5 2 图3 8 生成波粒子的效果图5 3 图3 9 纹理滤波结果5 4 图3 1 0 水下纹理效果图5 5 图3 1 l 水上反射纹理效果图5 5 图3 1 2 泡沫纹理5 6 图3 1 3c a u s t i c 贴图序列5 6 图3 1 4 水的效果图6 l 浙江大学研究生学位论文独创性声明 本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的 研究成果。除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发 表或撰写过的研究成果,也不包含为获得逝姿盘鲎或其他教育机构的学位或 证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均己在论文 中作了明确的说明并表示谢意。 学位论文作者签名:炙明生 签字日期: 7 啷 年c 月f 日 学位论文版权使用授权书 本学位论文作者完全了解逝江盘茔有权保留并向国家有关部门或机 构送交本论文的复印件和磁盘,允许论文被查阅和借阅。本人授权逝姿盘茔 可以将学位论文的全部或部分内容编入有关数据库进行检索和传播,可以采用影 印、缩印或扫描等复制手段保存、汇编学位论文。 ( 保密的学位论文在解密后适用本授权书) 学位论文作者签名:曼明丛 导师签名 签字日期:z 哪年9 月 ,日 签字日期:历 日 浙江大学硕士学位论文 第l 章绪论 第1 章绪论 1 1 背景 虚拟现实技术( r t u a lr e a l 蚵,简称v r ) ,又称灵境技术,是2 0 世纪末发 展起来的一项涉及众多学科的高新实用技术。它集计算机技术、传感技术、仿真 技术等于一体,利用计算机生成一种虚拟环境,通过视、听、触觉等作用,使用 户产生身临其境的交互式视景仿真,实现用户与环境直接进行自然交互。它使用 户能产生一种沉浸于虚拟环境的感觉,并能够实时地操纵虚拟环境中物体的运 动,使得操作者能够在其中漫步、环顾,所以又有人称之为“人工幻景”。虚拟 现实具有三大基本特征( 即三个“i ”) :沉浸感( i m m e r s i o n ) ,交互感( i n t e r a c t i o n ) , 构想( i m a g i n a t i o n ) 。 虚拟现实技术是高度发展的计算机技术在各个领域应用过程中的结晶与反 映,它不仅包括图形学、图像处理、模式识别、网络技术、并行处理技术、人工 智能等高性能计算技术,而且涉及了数学、物理通信等领域,甚至与气象、地理、 美学、心理学和社会学等学科相关。目前虚拟现实技术已经广泛应用于建模与仿 真、科学计算可视化、设计与规划、教育与训练、遥作与遥现、医学、艺术与娱 乐等多个方面,并带来了巨大的经济效益。 虚拟现实系统按其功能高低大体可分为四类: 1 ) 是桌面虚拟现实系统,也称窗口中的v r 。它可以通过桌上型机实现, 所以成本较低,功能也最简单,主要用于c a d ( 计算机辅助设计) 、c a m 、建 筑设计、桌面游戏等领域。 2 ) 是沉浸虚拟现实系统,如各种用途的体验器,使人有身临其境的感觉,各 种培训、演示以及高级游戏等用途均可用这种系统。 3 ) 是分布式虚拟现实系统,它在因特网环境下,充分利用分布于各地的资源, 协同开发各种虚拟现实的利用。 4 ) 是增强现实( a u g m e n t e dr e a l 时。简称a r ) 位1 。它是把真实环境和虚拟环 浙江大学硕士学位论文第l 章缝诠 境结合起来的一种系统,既可减少构成复杂真实环境的开销( 因为部分真实环境 由虚拟环境取代) ,又可对实际物体进行操作( 因为部分系统是真实环境) ,真正 达到了亦真亦幻的境界,是今后主要发展的方向。 1 2 增强现实系统 该项技术起源于1 9 9 0 年,随着计算机技术的发展,近年来该项技术的研究 应用得到了迅速提升,到2 0 0 0 年该项技术研究达到了成熟。其最大特点是计算 机与最新的增强现实技术把虚拟现实与现实混合的后期制作时间提前了,并能使 得人们亲身实时地感受,现实的环境,虚拟的物品,处在了同一时空,而人也在 其中,这无疑给我们带来了更大的乐趣和深远的意义! 增强现实就是虚拟现实与 真实结合的一种新型技术。 1 2 1 增强现实系统特点 增强现实主要有真实性与实时互动的特点。 1 2 1 1 真实性 增强现实技术比起以往的虚拟现实技术体现在真实环境与虚拟环境结合的 优越性,虚拟现实只是单纯反应计算机所描绘的虚拟现实世界中的事物,而增强 现实技术将虚拟世界中的事物和真实事物结合,使人们与虚拟世界有了沟通的桥 梁。 1 2 1 2 实时与互动 增强现实技术又分为后期增强现实和实时增强现实,而实时增强现实技术是 比较尖端的新技术,我们所研究的就是实时增强现实技术。以往的增强现实技术 只限于后期的制作,如好莱坞科幻片中的情景,预先拍摄好演员的动作,然后在 后期影片剪辑时加上虚拟人物或物体与主角互动。影片的拍摄前期必需考虑诸多 因素,例如让演员做一些预先安排好的动作,而制作时又需考虑虚拟物品的大小 及方位,但通过最新的实时增强现实技术,这两者就可以同时进行了,省却许多 不必要的考虑不周的因素。 2 浙江大学硕士学位论文 第1 章绪论 实时增强现实技术的好处是人可以与虚拟的物体在真实的环境中互动。实时 增强现实最大的意义在于虚拟世界和真实世界是同步实时的,人们可以在现实世 界中真实地亲身感受来自虚拟空间的人们所能想象的一切幻象事物,令我们更加 容易进入角色,而使趣味性和实用性大增。同时这样可以使增强现实技术应用到 更广的领域中去。 1 2 2 增强现实的关键技术 显示技术瑚、跟踪定位技术、交互技术是实现一个基本a r 系统的关键技术。 1 2 2 1 显示技术 用于a r 的显示器有头盔显示器( h e a d m 0 u n t e dd i s p l a y s ,h m d ) ,手持显示 器( h a l l d h e l dd i s p l a y s ) 和投影显示器。 1 ) 头盔显示器 这种显示器戴在头上,在眼睛前方呈现图像,分两种:光学透视( 0 p t i c a l s e e 1 r o u g l l ) 和视频透视( v i d e os e e t l l r o u 曲) 司引。光学透视h m d 在用户眼睛前 面放置光学合成器,合成器是部分透明的,用户透过它可以直接看到真实世界, 合成器又是部分反射的,用户可以看到从头上戴的显示器反射到合成器上产生的 虚拟图像。视频透视h m d 封闭了视线,带有一个或两个摄像头,拍摄真实世界 的场景。场景合成器负责把摄像机视频和图形进行合成,并将结果送到用户眼睛 前面的显示器上。除了头盔显示器外,类似的头戴显示设备还有视网膜显示器嵋1 , 头戴投影仪口1 等等。 2 ) 手持显示器阻引 这是一种平面l c d 显示器,使用捆绑的摄像机提供基于视频透视的增强。 手持显示器充当一个窗口或放大镜,显示用a r 覆盖的真实图像。 3 ) 投影显示器 所需的虚拟信息直接投到真实对象上进行增强。最简单的情况是将增强信息 直接投到对象表面上,无需戴特殊的眼镜n 训。 浙江大学硕士学位论文第l 章绪论 1 2 2 2 跟踪与定位技术 要实现虚拟与现实物体的完美结合,必须将虚拟物体合并到现实世界中的准 确位置,这个过程通常称为配准( r e g i s 仃a t i o n ) n ,因此a r 跟踪定位系统必须能 够实时地检测观察者在场景中的位置,甚至是运动的方向,以便用来帮助系统决 定显示何种虚拟物体,并按照观察者的视场重建坐标系。配准的方法有很多,主 要可以分为两大类:主动目标系统和被动目标系统。主动目标系统一般事先测量 好实验环境,并在指定的位置放置特定的信号发生器,传感器或标志物,通过磁 场、声、光、电等途径来提供配准数据。被动目标系统则完全靠感知周围环境或 依靠自然界的信号或依靠某些物理规律来获取数据。比如惯性传感器感知自身的 线性加速度和角速度变化,指南针依靠地磁场,视觉系统感知自然景物特征等。 其中视觉方法由于误差小,使用方便,经常被各种a r 系统采用。 1 2 2 3 交互技术 如何与a r 应用进行交互,以及如何有效地在a r 显示器上表现信息。更加真 实自然地绘制虚拟场景,使虚拟场景与现实场景以及人的交互成为一个整体,是 a r 系统的重中之重。改善虚拟物体绘制质量的有效方法是使用功能强大的图形引 擎,物理引擎以及通过拼接提高投影图像的分辨率。 互动投影是一种增强现实的技术,互动投影系统采用先进的计算机视觉技术 和投影显示技术来营造一种奇幻动感的交互体验,它通过专用画面投射装置在地 面投射出一个特定的情境画面。当使用者进入该画面区域,互动投影系统就通 过部件互动分析感应传感器( 摄像头) 跟踪捕捉使用者的位置和动作并将这些数 据反馈给软件核心引擎。软件引擎再综合处理各种数据、判断互动关系并对使用 者动作做出反馈。通过影像画面合成模块将特效画面和客户输入数据( 如广告画 面) 进行合成,最后由影像画面投射装置投射到地面。互动投影系统让参与者 置身于系统设定的特定情境中,给人一种全新的交互体验。 1 2 3 系统案例 1 2 3 1e d p r o j e c t o r 系统 4 l 砸 位论i 第j 章结论 c l a u d l op 1 n h a n e z 的e v 刚h c r e - d i s p l a y 3p r 0 j e c t 叫e d - p r o j e c t 时) “2 系统的示意 图如图ll 所示。投影图像直接打到投影仪上方的反射镜面上,再由反射镜面反 射到想要投影的位置,斜投影造成的图像扭曲问题通过计算机图,昏学的中反扭曲 过程进行处理,与系统的交互是通过用摄像头捕捉手的运动来实现的, e d 伽1 e c t o r 系统是一个通用的能够从现实环境的不同地方与计算机进行交互的 输入输出系统,它是个典型的利用摄像头作输入,投影仪作输出的增强现实系 统,e d p r o i e c t o r 提出了互动投影系统的一个原型。由于它仅仅提出丁一个原型, 对于拼接多机同步,以及系统下面游戏模板的快速开发都未涉及。 霞 圈lle d - p m j c c t 叫系统图示 l 23 2h 1 一s p a c e 系统 h u m a n i n f 0 珊a 6 0 n w o r k s p a c e ( h l s p a c e ) 是由r j c l u f d m 8 y 等人研制的。 它的主要设备如图l2 所示它是一个由投影仪、摄像机、麦克风组成的桌面交 互环境,谶系统能够识别手势,物件和语音输入,该系统通过感应接口来创建输 入事件流,也提供丁相应的应用程序接u 来创建独立的应用程序。 o 图l2 h i 口a c e 系统 * i 位沧i 第1 章镕论 用户通过显示桌面可以与系统进行简单的交互。该系统的优点是它支持多种 输入方式包括手势,物件和语音也提供相关的a p i 进行系统下应用程序的开发。 缺点是由于它仅仅是个桌面交互环境,这个系统不支持投影回面的拼接,整个投 影画面的分辨率受到投影仪的限制。 1233c a v e 系统 c a v e f c a v e a u t o m a l l cv i n 岫le 州o t ) “1 在外形上是使用投影系统,围绕 着观察者具有多个图像画面的虚拟现实系统多个投影面组成一个虚拟空间。理 论上c a v e 是基于计算机图形学把高分辨率的立体投影技术和三维刊算机阻形技 术、音响技术、传感器技术等综合在一起,产生一个供多人使用的完全沉浸的虚 拟环境。图13 是c a v e 系统的一个演示图。 图13 c a v e 系统演示 c a 系统是在沉浸性方面咀及拼接等方面都做的很好,但其系统一般造价 比较昂贵,构造复杂,措建困难,而且交互需要戴特殊的设备,交互不是很方便, 很少用于民用。 1 2 3 4 英狮科技的聪明跟投影系统 英狮科技的聪明跟虚拟h 动系统“也是采用摄像头捕捉输入,用投影仪做输 出的互动投影系统。它采用单投影仪做输出,并不支持多机拼接,最后画面的分 * 太 硕# * 女 第1 绪论 辨率大小受到投影仪的限制。圈14 是英狮科技的一个运行演示图 囤l5 超澜数码的语音非接触式交互系统演示 超澜数码的语音非接触交互系统通过麦克风可以向电脑中的虚拟三维小狗 浙江大学硕士学位论文第l 章绪论 发出“跑”、“摇头”等命令,虚拟小狗接到命令后完成相关动作。 超澜数码的语音交互是一种很好的交互方式,但是目前语音识别技术整体还 不是很成熟,方言或口音会降低语音识别率、背景噪音、口语”的问题。这并不 是说语音合成技术的不成熟,而是在语音库的完善度存在一定的差距,所以要达 到合成的自然和谐,必须建立完善的语音库。 综上,每种系统都有自己的优点,也有明显的缺点,都不满足我们的要求, 我们需要的是一种支持拼接,多机同步,交互方便而且价格适宜的系统。 而本游戏开发平台正是为了支持这种互动投影环境下游戏模板的快速高效开 发而去设计实现的。 1 3 平台总体设计目标 1 ) 支持在自主研发的互动投影环境下,快速开发三维二维游戏。 2 ) 提供游戏开发中经常使用的视觉特效支持。 3 ) 支持多投影拼接显示。 1 4 小结 本章首先介绍了增强现实系统出现的背景,接着介绍了增强现实系统的特点 和关键技术以及系统案例和分析。最后给出了我们需要的互动投影系统,以及相 应环境下游戏开发平台的目标及特点。 浙江大学硕士学位论文第2 章游戏开发平台 第2 章游戏开发平台 在这一章中将首先介绍平台的整体结构,接着介绍平台的各个模块的功能, 实现细节。然后会介绍利用这个平台进行开发的流程,最后介绍整个模板开发好 后整个平台的运行细节,包括各模块的交互关系。这里所说的模板是指在我们的 平台上开发的应用程序,它物理上是一个以m o d 为后缀的动态链接库。 2 1 平台的架构 整个平台分为平台支持层和平台接口层,平台支持层为整个平台的运转提供 底层的支持,包括多投影拼接和同步,平台接口层为平台的使用者提供接口,模 板开发人员只需要与平台接口层打交道,不需要直接访问平台支持层,以降低模 板开发的复杂度。平台及客户程序的层次关系如图2 1 。 平台应用层 模板 l 平台接口层 图形物理音频视频 j 平台支持层 拼接 同步跟踪 调度 图2 1 平台与客户程序的层次关系 平台支持层里包含拼接模块,跟踪模块,同步模块以及调度模块。拼接模块 负责多投影拼接显示,跟踪模块负责摄像头的捕捉,得到人的交互信息并传给其 它模块使用,同步模块负责多台机子的同步,调度模块主要负责模板的装载,切 换以及线程的管理。 9 浙江大学硕士学位论文第2 章游戏开发平台 平台接口层里包含平台接口主模块,图形模块,物理模块,音频模块和视频 模块。而图形模块又包含底图切换子模块,覆盖率模拟子模块,特效子模块。特 效子模块提供一些常用的特效,目前已经实现的特效有水效果和烟花效果。水效 果的算法与实现将在下章详细介绍。 整个平台的架构如图2 2 所示。 图2 2 平台的架构图 下面将分别就平台的各个模块进行介绍,模块之间的交互将在后续的章节详 细介绍。 2 1 1 平台支持层 2 1 1 1 拼接模块 平台拼接n 引模块主要负责多投影拼接,通过利用已经生成好的拼接校正数据 ( 包括几何校正数据和颜色校正数据) ,把绘制缓冲区的内容取出来进行几何校正 和颜色校正,以达到多投影拼接显示的目的。拼接模块的主要类图如图2 3 所示。 l o 浙江大学硕士学位论文第2 章游戏开发平台 图2 3 拼接模块的主要类图 c g e o m e 奶c a l i b r a t o r 负责读取和应用校正文件。s s c r e e n c a l i b r a t e i n f o 保存了 投影屏幕的基本信息如投影屏幕的分辨率以及配置文件的路径。i r 启n d e r l a r g e t 定 义了渲染到纹理的基本接口。c r c n d e r t a 珞虾b o 和c p b u 疏r 分别对o p e n g l n 剐 的两种渲染到纹理技术f b o n 引和p b u 虢r n 叫的封装,在这里我们使用了f b o 技术。 c c a l i b r a t i o n 类提供了两个整个拼接校正对外的接口函数分别是 i n i t c a l i b r a t i o n ( ) 和c a l i b r a t i o m k n d e “) 。i i l i t c a l i b r a t i o n ( ) 函数负责初始化一些基本的 信息,主要是加载几何标定的结果以及颜色标定的结果。c a l i b r a t i o n r e n d e r ( ) 函数 提供了2 个功能,一是自动的对程序进行校正,它会自动地去读取缓冲区的内容: 另外一个功能是传入要校正的内容,它只对传入的内容进行校正,最后把校正好 的内容送到输出设备,输出显示。 整个拼接模块的基本执行流程如下: 1 ) 调用酉r e a d b u 腩r ( g lb a c k ) 函数读取缓冲区的内容,再通过调用 g l c o p y t e x i l l l a g e 2 d ( ) 函数把绘制结果生成到一张纹理上。 2 ) 用几何标定的结果对绘制结果纹理进行几何校正。 3 ) 对几何校正结果纹理进行颜色校正。颜色校正通过把几何校正结果纹理和 颜色映射表纹理传到s h a d e 里进行运算,以进行加速。 需要注意的是使用拼接校正和没使用拼接校正,每台绘制端的c a m e m 投影矩 日学立 * 2 * 戏口发t 自 阵的设置是不一样的。使用拼接校正时每台绘制端需要根据相应的拼接参数( 如 l x 2 2 x 3 ) 进行c 枷e m 投影矩阵的变换。使得每台机子的绘制画面是原来完整画 面的一部分,相邻的投影画面有一定的重叠区域。斟多投影拼接导致的c 锄e r a 调整操作已由平台内部进行处理,模板的开发人员不需要关心运个,使得他们更 加专注于模板的开发。 颜色校正完后再根据同步模块是否更换缓冲区。图24 是拼接前后的效果对 比图。 蹦24 拼接前后的效果对比圈 211 ,2 跟踪模块 跟踪模块负责摄像头的捕捉,它得到互动投影环境下人的变互信息并且把交 互信息保存在一个二维数组中,我们把存有交互信息的二维数组称之为覆盖率。 这个覆盖率与整个投影屏幕( 包括单个投影仪和多个投影仪拼接起来的) 是对应 的。 跟踪模块的类图如图25 所示。跟踪模块提供了几个线程类,其中 i p s v i d e o c a d t l i 】饥1 l r e a d 及其子类用来控制摄像头的拍摄, i p s s l m p i e m o t l o n l h c k n 嘞d 用来对拍到的结果进行处理,井生成覆盖率信息传 给主绘制线程。 跟踪模块提供m 0 d 和s t 础两个接口给模板开发者开发自己的应用。 l p s a p p m o d 代表一个单独的功能模块即用户的一个应用。应用的具体实现是通 过刨建井控制各个i p s a p p k 之间的状态迁移。 浙江大学硕士学位论文第2 章游戏开发平台 i p s v i d e o c a p t u r e t h r e a d 伞 i p s s i 叩1 e m o t i o n t r a c k t h r e a d i p s t t i o n t r 8 c k c o n f i g ii p s h i k v i d e o l o c k c 8 p t u r e t h r e a d l i l 、 t 目 图2 5 跟踪模块的主要类图 队p p s t a t e 代表单独功能模块中的一个状态,模板开发者通过i p s a p p s t a t e 及 其子类获得系统的输出即目标的跟踪结果,也就是我们做交互用到的覆盖率信 息。用户也可以通过指定覆盖率x 方向上的格子数i l x 和y 方向上的格子数n y 的 值来调整跟踪的精度,精度越细,覆盖率数组越大。m o d 和s t a t e 类提供的主要 接口如图2 6 所示。 i p s a p p s 诅t e 提供的接口分为两类,一类是供i p s a p p m o d 直接调用的函数, 它包括i n i t i a l i z e ( ) 、r e l e a s e ( ) 、d r a w s c e n e o 、s t i 印( ) 函数。s t e p ( ) 函数会调用 v i d e o c 印t u r c 线程进行摄像头的拍摄,调用m o t i o n l r a c k 线程对拍摄的结果进行 处理生成覆盖率信息传给主线程使用。还有一类接口是供开发者继承并重载的函 数,它包括u s e r i n i t i a l i z e o 、u s e r r e l e a s e ( ) 、u s e r d r a w s c e n e o 、u s e r s t 印( ) 函数。 1 ) u s e d n i t i a l i z e 0 :完成初始化工作,包括指定覆盖率的大小i l x 与n y 的值。 2 ) u s e r r e l e a s e ( ) :完成销毁工作。 3 ) u s e r d r a w s c e n e o :用户自定义的绘制工作。 4 ) u s e r s t c p ( ) :用户可以基于当前的跟踪状态定义自己的状态机。 浙江大学硕士学位论文 第2 章游戏开发平台 i p s a p p s t a t e v i r t u a ls s l i e s u l 囊i n i t i a li z e ( v 主r t u a 王s s r e s 耱h 嚣e l e a s e ( ) v i r t u a lv o i dd r a w s c e n e ( ) s s r e s u l ts t e d ( ) v i r t u a ls s r e s u l 毛j s e r i f l i t ( ) ( ) v 童r 屯娃a 王s s r i 蕊攀乙彳g s e r 襄e 差e a s e ( ) v i r t u a lv o i du s e r d r a w s c e n e ( ) v i r t u a ls s r e s u 乙tu s e r s t e p ( ) i p s o g r e p p s t a t e v i r t u a lg s 廷e s l j l ji n i t i 纛li z e ( ) v i r t u a ls s r e s u l tr e l e 8 s e ( ) v i r t u a lv o i dd r a w s c e n e ( ) i p s a p p m o d 提供的接翻: i p s a p p m o d v 主r 专珏8 l v i r t u a 王 v i r t u a l v i r t l j a l v 主r t 鞋鑫l v i r t u a l v i r t u a l s s r s t 琵零 s s r e s u l f ss r e s u 乙t s s r e s u l t s s l l s t 冕l s s r e s u h s s r e s u l t r e n d e r ( ) g 璩l o d n i t i a l i z e ( ) g l m o d r e n d e r ( ) g l m o d s t e p ( ) g i 攫。纛s 驿a p ( ) u s e r 王n i t ( ) u s e r r e l e a s e ( ) i 壬跫;o g r e a p p m o d v i r t u a l v 至r 专珏a l v i r t u a l v i r t u a l v 主r t u a l s s r e s u l t s s 袋琶s 珏毛l s s r s u l t s s r e s u l t s s r e s u l t r e n d e r ( ) g 翻。硅l n i t i a li z e ( ) g 乙m o d r e n d e r ( ) g l m o d s w a p ( ) g l m o d r e l e a s e ( ) 图2 ,6 跟踪模块提供的接口类 1 ) g l m o d i n i t i a l i z c o :在模板装载时会被调用。 2 ) ( 泣鹾 3 ) g l m o d 弛瓣e 囝:种绘制时被调焉,它内部会调用翮& 哟函数。 o d s 姊o :它会转调用对应s 僦e 类的s t i e p ( ) 函数 4 ) g 己m o d s w a p ) : 交换缓冲区 5 ) 黜n d e r o :用户自定义绘制操作,它被g l m o d 翟埝n d e r ( ) 调用,会调用s t a t c 类的u s e r d r a w s c e n e ( ) 函数。 回u s e d n i ) :震户自定义初始化操作 7 ) u s e r r e l e a s e ( ) :用户自定义释放操作 在我们平台下模扳的开发分为基于o g f e 的模板开发和直接綦予o p e n g l 的 模板开发两种,基于0 9 r c 的模板开发模板的m o d ,s 纨t e 类必须从 i p s o g r e a p p m o d 和i p s o g r e a p p s 僦e 继承,主要是o g r e 有自己的 n d e 站。熊t ,l p s o g r e a p p 鹾砸和臻s o g 戳渔弹s 缴e 增加了对弛n d e 妃。臻稔x t 的处理。 2 。1 1 。3 同步模块 同步模块负责多台机予的同步显示。同步模块对多机同步的支持主要分为帧 1 4 浙江大学硕士学位论文第2 章游戏茎幽 同步和时问同步。 帧同步保证每台机子以相同的帧速率在绘制,具体地说就是一台机子绘制一 帧,其它机子也绘制一帧,在相同的时间里,每台机子调用的绘制函数的次数是 一样的。帧同步是通过控制端和客户端之间传输控制消息实现的。每台机子绘制 完一帧在交换缓冲区前都要通知控制端,控制端在收到所有绘制端绘制完毕的消 息后,广播s w a p b u f f e r 命令让所有绘制端交换缓冲区,绘制端收到s w a p b u f f e r 命令后才把绘制的结果交换到前缓冲区中去。并且等待下一帧绘制命令的到来。 总之绘制端在进行绘制和交换缓冲区前都到等待网络控制端的命令,以达到帧同 步的目的。 时间同步是通过控制端向绘制端广播时间实现的,控制端向绘制端广播时 间,使得每台机子使用的时间都是一样的。保证了不同绘制端每帧的更新幅度是 一样的,比如绘制端在播放一个动画序列,如果绘制端在得到的不是相同的时间 差,那么有的动画就会走的快,而有的动画就会走得慢。出现不同步现象,帧同 步和时间同步共同保证了不会出现这类同步问题。 还有一个同步的问题就是随机数同步的问题,除了保证帧同步和时间同步, 在开发需要随机效果的模板的时候必须保证随机数的一致,不然的话就会出现不 同绘制端有不同的随机效果。随机数的同步可以通过设置相同的随机数种子实 现。在我们的平台上可以通过使用帧号作为随机数种子,因为我们的平台确保了 帧的同步。 2 1 1 4 调度模块 调度模块是整个平台支持层的核心模块,它负责模板的装载,切换和线程的 管理功能,同时它也与平台支持层的其它模块进行交互。它的核心类如图2 7 所 示。 c e n g i n e 及其子类是整个调度模块的核心,其中c e n g i n e 类定义了i n i t i a l i z e ( ) 、 s t e p ( ) 、i 沁1 e a s e ( ) 虚接口,i n i t

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论