(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf_第1页
(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf_第2页
(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf_第3页
(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf_第4页
(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf_第5页
已阅读5页,还剩69页未读 继续免费阅读

(计算机软件与理论专业论文)分布式虚拟环境的研究与初步实现.pdf.pdf 免费下载

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

文档简介

中文摘要 中文摘要 分布式虚拟坏境( d i s t r i b u t e dv i r t u a le n v i r o n m e n t ,以下简称d v e ) 就是工作 在各自工作站的多个用户进行交互的一个共享的虚拟环境。一部分工作站( 基 础系统,b a s i cs y s t e m ,简称b s ) 可能同时支持很多用户,例如,一个支持多兵 种用户的军事演习系统,这些用户可能分布在不同的地理位置。在现已开发的 一些系统当中,多数采用集中式的客户服务器( c s ) 模式构建,极少数采用 分布式的对等通讯( p e e rt op e e r ) 模式,而将两者结合的一种复合式的虚拟环境 网络模式研究的还很少。在d v e 系统中,一个重要的工作指标就是某个用户的 状态更新到达那些虚拟环境中所涉及到的受影响用户的工作站的更新延时 ( u p d a t ed e l a y ) 。为了确保用户之间的实时交互,通常这种更新延时都需要有 某种时间限制,比如l o o m s 。 在设计一个d v e 系统时,如何能够保证随着用户数量的增加使系统具有良 好的可扩展性也是一个的重要指标。复合式的虚拟环境具有两层结构:在低层 配置的是各服务器上的基础系统( b a s i cs y s t e m ) ,基础系统与其所辖范围内的用 户进行交互,它是c s 模式。在高层是服务器之间的p e e rt op e e r 模式,他们确 保在虚拟环境下的基本系统之间当前状态的尽可能一致。而系统的一致性问题 关乎d v e 是否具有实时性和沉浸感。目前,复合模式下的虚拟环境的性能特点 几乎还未有人进行研究。 本文首先研究了虚拟环境应用系统的框架结构,并在单个主机上通过一个 “汽车驾驶模拟系统 的项目开发进行了实现;其次,我们建立了一个多个用 户情况下分布式虚拟环境的运行模型,在更新包到达速率方面进行了分析,并 尝试通过一个两台主机坦克作战小程序进行了简单实现;最后,就系统更新延 时方面做了一些探索,其中更新延时由两部分组成,即服务器延时和网络延时。 关键字:分布式虚拟环境虚拟现实复合式网络结构更新延时 a b s t r a c t a b s t r a c t ad i s t r i b u t e dv i r t u a le n v i r o n m e n t ( d v e ) i sas h a r e dv i r t u a le n v i r o n m e n tw h e r e m u l t i p l eu s e r sa tt h e i rw o r k s t a t i o n si n t e r a c t 、 ,i t l le a c ho t h e r s o m eo ft h e s es y s t e m s m a ys u p p o r tal a r g en u m b e ro fu s e r s ,e g ,m a s s i v em u l t i p l a y e ro n l i n eg a m e s ,a n d t h e s eu s e r sm a yb eg e o g r a p h i c a l l yd i s t r i b u t e d a ni m p o r t a n tp e r f o r m a n c em e a s u r ei n ad v es y s t e mi st h ed e l a yf o ra nu p d a t eo fau s e r ss t a t e ( e g ,h i sp o s i t i o ni n t h e v i r t u a le n v i r o n m e n t ) t oa r r i v ea tt h ew o r k s t a t i o n so ft h o s eu s e r sw h oa r e a f f e c t e d b yt h eu p d a t e t h i su p d a t ed e l a yo f t e nh a sas t r i n g e n tr e q u i r e m e n t ( e g ,l e s s t h a n l0 0m s ) i no r d e rt oe n s u r ei n t e r a c t i v i t ya m o n gu s e r s i nd e s i g n i n gad v es y s t e m ,a ni m p o r t a n ti s s u ei sh o ww e l lt h es y s t e ms c a l e sa s t h en u m b e ro fu s e r si n c r e a s e s i nt e r m so fs c a l a b i l i t y ,ap r o m i s i n gs y s t e ma r c h i t e c t u r e i sat w o l e v e lh i e r a r c h i c a la r c h i t e c t u r e a tt h el o w e rl e v e l ,m u l t i p l es e r v i c ef a c i l i t i e s ( o rb a s i cs y s t e m s ) a r ed e p l o y e d ;e a c hb a s i cs y s t e mi n t e r a c t sw i t hi t sa s s i g n e du s e r s a tt h eh i g h e rl e v e l ,t h ev a r i o u sb a s i cs y s t e m se n s u r et h a tt h e i rc o p i e so ft h ev i r t u a l e n v i r o n m e n ta r ea sc o n s i s t e n ta sp o s s i b l e a l t h o u g ht h i sa r c h i t e c t u r ei sb e l i e v e dt o h a v eg o o dp r o p e r t i e s 诵t hr e s p e c tt os c a l a b i l i t y ,n o tm u c hi sk n o w na b o u ti t sp e r f o r - m a n c ec h a r a c t e r i s t i c s f i r s t l y ,t h i st h e s i si sc o n c e r nw i t hv i r t u a le n v i r o n m e n ta p p l i c a t i o np r o g r a m f r a m e w o r k ,w h i c hh a v eb e e nr e a l i z e db yav e h i c l ed r i v i n gs i m u l a t i o ns y s t e m s e c o n d l y ,w eh a v ec o n s t i t u t e dav i r t u a le n v i r o n m e n tm o d e lw i t han u m b e ro fu s e r s , a n ds i m p l yr e a l i z e db yat a n kc a m p a i g np r o g r a m f i n a l l y ,w ee x p l o r e di nu p d a t e d e l a yf i e l d ,w h i c hh a st w om a i nc o m p o n e n t s ,n a m e l yt h ed e l a ya tt h eb a s i cs y s t e m ( o rs e r v e rd e l a y ) a n dt h en e t w o r kd e l a y k e yw o r d s :d i s t r i b u t e dv i r t u a le n v i r o n m e n t s v i r t u a lr e a l i t y u p d a t ed e l a y a t w o 1 e v e lh i e r a r c h i c a ln e t w o r ka r c h i t e c t u r e i i 南开大学学位论文版权使用授权书 本人完全了解南开大学关于收集、保存、使用学位论文的规定, 同意如下各项内容:按照学校要求提交学位论文的印刷本和电子版 本;学校有权保存学位论文的印刷本和电子版,并采用影印、缩印、 扫描、数字化或其它手段保存论文;学校有权提供目录检索以及提供 本学位论文全文或者部分的阅览服务;学校有权按有关规定向国家有 关部门或者机构送交论文的复印件和电子版;在不以赢利为目的的前 提下,学校可以适当复制论文的部分或全部内容用于学术活动。 学位论文作者签名: 年月日 经指导教师同意,本学位论文属于保密,在 年解密后适用本授权书。 指导教师签名:学位论文作者签名: 解密时间:年月日 各密级的最长保密年限及书写格式规定如下: r + ”一一j ? j 内部5 年( 最长5 年,可少于5 年) 7 | 。,一 | 秘密, k l o 年( 最长l o 年,可少于1 0 年) 机密- k 2 0 年( 最长2 0 年,可少于2 0 年) , 南开大学学位论文原创性声明 本人郑重声明:所呈交的学位论文,是本人在导师指导下,进行 研究工作所取得的成果。除文中已经注明引用的内容外,本学位论文 的研究成果不包含任何他人创作的、已公开发表或者没有公开发表的 作品的内容。对本论文所涉及的研究工作做出贡献的其他个人和集 体,均已在文中以明确方式标明。本学位论文原创性声明的法律责任 由本人承担。 学位论文作者签名: 年月 日 第一章引言 第一章引言 第一节概述 自上世纪九十年代以来,利用计算机技术产生的一些虚拟现实系统【1 1 相继出 现。近些年随着计算机网络技术、图像技术以及并行计算的发展,计算机虚拟 现实( v i r t u a lr e a l i t y ,v r ) 技术也逐渐走向成熟。v r 也称虚拟环境( v i r t u a l e n v i r o n m e n t ,v e ) ,是一种采用以计算机技术为核心的现代高技术生成逼真的 视、听、触觉一体化的特定范围的虚拟环境弘j 。用户可以借助必要的装备,以自 然的方式与虚拟环境中的对象进行交互作用、相互影响,从而产生一种与真实 环境相似的沉浸感,虚拟环境带来了人机界面、人机交互的新概念和新方法, 使得人机交互内容更加丰富、形象,方式更加自然。目前,虚拟环境技术已在 军事、建筑、航天、医学、教育及娱乐等众多领域得到成功应用。今天,高带 宽、大数据量的国际互联网络已经将世界每个角落的人们联系在一起,人们可 以不受任何地理位置的限制实现信息共享。这就为虚拟环境技术的发展提出了 更高要求,分布式虚拟环境( d v e ) 正是适应这一需要把这两项技术结合起来, 在一组以网络互联的计算机上同时运行v e 系统的技术,并已经成为这一领域研 究的重要方向。一般来说,一个完整的虚拟现实系统由虚拟环境、以高性能计 算机为核心的虚拟环境处理器、以头盔显示器为核心的视觉系统、以语音识别、 声音合成与声音定位为核心的听觉系统、以方位跟踪器、数据手套和数据衣为 主体的身体方位姿态跟踪设备,以及味觉、嗅觉、触觉与力觉反馈系统等功能 单元构成。 美国国防部是最早支持和研究d v e 的单位,开发了一个典型的项目为 s i m n e t ( s i m u l a t o rn e t w o r k ) p j 。该项目的目标是开发一个供军事训练用的、低 廉的、联网分布的军用虚拟环境,该系统的研制成功,为后来d v e 的开发奠定 了基础。基于这个项目的研究成果,在s i m n e t 协议基础上制定了d i s 协议, 最终成为d v e 的一项标准( i e e e l 9 7 8 ) 。网络游戏是d v e 的一个比较成功的应 用领域,例如,d o o m 是一个成功的网络游戏。国外一些典型的研究例子还有美 国海军研究院开发的n p s n e t h 、瑞典计算机研究所的d i v e p j 、新加坡国立大 学的b r i c h n e t n e t e f f e r l o j 、加拿大a l b e r t 大学的m r 工具库u j 、英国n o t t i n g h a m 第一章引言 大学的a v i a r y p j 、美国弗吉尼亚大学的d i v e r 系统1 9 1 以及英国d i v i s i o n 公司 的d v s l l u j 软件等。国内关于d v e 的研究工作也在9 0 年代初开始,在d v e 研 究方面,北京航空航天大学实现了分布式虚拟环境d v e n e t i l u ;国防科技大学 开发了d v e 开发工具y h y r p l i 叫;浙江大学扩展了原有的分布式图形环境,从 而支持d v e 的开发【l 川,这些系统都可以同时支持大量的在线用户。 一般来说,d v e 就是工作在各自工作站的多个用户进行交互的一个共享的 虚拟环境,这样一个系统具有交互性、沉浸感、多感官及综合性的特点川。在 d v e 系统中,每一个用户是作为一个实体( e n t i t y ) 出现的,用户可以移动、完 成既定任务以及与其它用户进行交互作用。另外,每一个用户都有一个影像域 ( v i s i o nd o m a i n ) ,它是通过虚拟环境中该用户可能与其它用户发生交互作用的 区域( a r e a ) 来定义的。任意用户的状态变化,比如速度、方向、位置等,都必 须实时地发送给处于该用户影像域中的所有其它用户,我们称这些用户为“受 众 ( a f f e c t e du s e r s ) 。 对于一个d v e 系统来说,更新延时( u p d a t ed e l a y ) 是一项重要的工作指标, 它是指从一个用户发出它的状态更新到这一更新到达它的受众用户工作站( 或 主机) 的一段时间间隔。更新延时必须限制在某个小的范围( 比如 吱吨 _ _ m _ m 一 q 吨 一 - _ i _ p q _ h _ m w “_ _ m “- h _ _ _ _ _ = 乏= 誉 “_ _ “。也l 参一索留辫魄麓臻鬻缓豹耢荔魏 攀泉秘零缝瑚p 船受耢像 图4 2 更新包和转递包到达基础系统示意图 可以发现转递包是否传递给某一基础系统决定于这一基础系统下是否有其 受众用户,本章我们尝试建立一个虚拟环境模型,用它来确定转递包产生的可 能性。 第二节虚拟环境模型 在每个基础系统中都维护一个d v e 副本,这种系统通常比较复杂埘,系统 行为也比较难以分析。在我们的研究当中尽量建立一种既简单又真实的虚拟环 境模型,以确保能够观察d v e 的工作特性。 对于任一d v e 系统而言都是通过x y 坐标系来组织定义的,因此我们用正 方形网格组成的二维坐标系构建我们的v e 模型。设x 和y 分别表示v e 的宽 2 4 第四章两层复合结构的运行模型 度和高度,其中x 和y 用单位数量表示,如图4 3 所示,v e 的宽度用从左到右 o 、1 、2 x 1 、x 来表示,v e 的高度用从下到上0 、1 、2 y - 1 、y 来表示。环 境中用户实体只能出现在网格交叉点,不难看出我们的模型中单位粒度 ( g r a n u l a r i t y ) 是可变的,因此我们的模型对于表示不同v e 的组织形式具有一 般性,如用来表示房屋建筑、汽车和人等。 y 1 卜 图4 3 虚拟环境模型 任一用户都可以在虚拟环境中执行多种行为,例如从一个地点移动到另一 地点,或者与其它用户进行交互作用。在我们的研究中,我们将重点放在用户 的移动上,原因是移动是任一d v e 系统用户最基本最普遍的行为圳。另外我们 作了简化性的假设,即任一给定用户的行为相对于其它用户都是独立的。我们 还假设每个用户的移动都满足马尔科夫链模型,这与我们所能得到的现有d v e 系统度量的数据是一致的【4 引。每当一个用户移动时,它就会按照概率分布选择 四个方向之一( 上、下、左、右) ,并将相应环境中的实体移动一个单位或一步。 我们假设这种概率分布对所有用户都是一致的。设p 眠m v 是用户从位置( m ,n ) 移动步到位置( u ,v ) 的概率,那么, 2 5 第四章两层复合结构的运行模型 当l u m l l 或i v - n l l 时, p i i i ,i i 吐,= o 又用户不能移出d v e 之外,故有,0 m ,u x ,o n ,v y 为了问题简化,我们假设用户在做下一次移动之前的时间满足指数分布。 按照以上假设,静态时位于位置( u ,v ) 的概率p 可以通过解以下方程求 的, p u v ;天m - - 0 1n ;o p m ,np m ,i l u v ( 其中,u = 0 ,1 ,v = 0 ,l ,y ,x m = o y 甜mv = 1 )( 4 1 ) 接下来我们定义一个影像域模型,就像我们在2 2 2 节中讨论的那样,来自 于某个用户的状态更新数据包只发送给该用户影像域范围内的那些用户,换句 话说只发送给该状态更新的受众用户。对于任一用户,我们假设其影像域在v e 模型中是一个长为a 宽为b 的矩形,用户在虚拟环境中的实体是这个矩形的中 心,不难发现a 和b 都是偶数。如图4 4 所示,图中是一个影像域为6 4 ( a = 6 , b _ 4 ) 的例子。以上假设与在d v e 系统中的常见实际情况是一致的,即一个用户 的影像域是以它本身为中心的一定范围的周边环境。 图4 4 影像域模型 2 6 第四章两层复合结构的运行模型 第三节包到达率分析 基于第一节和第二节中的叙述,这一节我们给出基础系统的转递包和更新 包到达速率的分析结果,我们的分析前提是登录每个基础系统的用户数量是常 数。具体说,我们用n i 来表示登录基础系统b s i 的数量,其中i = l ,2 ,k , k 是基础系统的总数。而实际中是一个随时间变化的量,带入这一变量就会使分 析变得非常复杂,我们可以将n i 看作登录用户的数量的最大值。这样我们的分 析就是登录用户数量一直处在最大值的情况,我们在这种情况下研究系统的性 能和可扩展性具有一定意义。 4 3 1到达速率( a r r i v a lr a t e s ) 首先我们讨论更新包到达基础系统b s i ( i = 1 ,2 ,k ) 的情况,如上所 述当一个用户进行移动时,一个状态更新是以状态更新包的形式产生,并发往 本地基础系统。这样的状态更新包的到达速率是由用户进行移动的速率决定的, 或者说是由用户发送状态更新包的速率来决定的。我们假设每个用户发送更新 包的速率都是一样的,如果设f 是一个用户发出更新包的速率,用1 l ri 表示到达 基础系统b s i 的速率,则有 1 l r i = n i f ( 4 2 ) 接下来我们来确定转递包到达基础系统( i = l ,2 ,k ) 的速率,这些数 据包来自其它基础系统,不妨以从某基础系统b s k ( i k ) 到基础系统b s i 发送 转递包的情况为例,在基础系统b s k 处理来自其本地用户更新包的过程中,会检 测是否有基础系统b s i 中的用户在该用户的影像域内,如果有的话就会像4 1 节 阐述的那样,一个转递包就会发往基础系统b s i 。 为了确定从基础系统b s k 到基础系统b s i 转递包的到达速率,我们设此系统 是恒态的( s t e a d ys t a t e ) 。以基础系统b s k 中的某触发用户( t a g g e du s e r ) 为例, 假设该用户目前的位置在虚拟环境中的( m ,n ) 处。对于任一其它用户在该触 发用户影像域的概率是 q ( m ,n ) = 张,y = y ,p x v ( 4 3 ) 其中用户在位置( x ,y ) 处的概率在式4 1 中已经给出,x - - m a x 0 ,m a 2 , x = m a x m ,m + a 2 ,y = m a x 0 ,n b 2 ,y = m a x n ,n + b 2 ,这些变量是 根据影像域必须在虚拟环境边界内的原则而定义的。 2 7 第四章两层复合结构的运行模型 我们所关心的是在此触发用户已经产生移动之后有一个或多个处在该用户 影像域中的用户登录基础系统b s i 的概率,这也就是转递包从基础系统b s k 到基 础系统b s i 的概率,设此概率为r k , i ,下面我们就分析这一概率表达式。 注意到登录基础系统b s i 的n i 个用户中的每一个都有可能在触发用户的影 像域中。设t k , i ( n ) 是在基础系统b s i 中有n 个用户处于触发用户的影像域中的概 率,则, t k i ( n ) = x 删y 删【( n n ) ( q ( m ,n ) ) n ( 1 q ( m ,n ) ) 。n 】p k y ( 4 4 ) 其中q ( m ,n ) 已在式( 4 3 ) 中给出,另外, r k , i = 1 一t k , i ( 0 ) ( 4 5 ) 最后再考虑到基础系统b s k 的n k 个用户更新包的提交,那么,从基础系统 b s k 到基础系统b s i 的转递包的到达速率可以如下表示, 由k , i - r k , i n k f ( 4 6 ) 对所有的其它基础系统求和,转递包到达基础系统b s i 的速率巾i 为, 由i - k k = 1 k i 由k , i ( 4 7 ) 这样,到达基础系统b s i 的更新包和转递包总速率设为p i ,则其就是简单的 1 l ri 与由i 之和,即, p i = 1 l ,i + 中i ( 4 8 ) 其中,t i t i 与巾i 分别由式( 4 2 ) 和式( 4 7 ) 给出。 4 3 2 结果分析 假设现有k 个基础系统b s ,设c i 为b s i 的系统容量,它用来衡量单位时间 内所处理的数据包的数量,其中包括更新包和转递包。对于恒态的基础系统而 言,其到达的总速率必须不大于c i ,或者用流量强度i 来衡量,pi 可以这样定 义, p1 - = p i c i( 4 9 ) 其中pi 小于等于1 。事实上将p i 保持在某个确定的值之下( 如通过数据包 的进入许可管理) 以保证pi 不大于某个给定的值z ( 例如z = 0 8 ,z = 0 9 等) ;另 外响应时间( 处理更新包和转递包的延时) 可能会增加,响应时间方面是我们 下一步研究的内容。 第四章两层复合结构的运行模型 现假设有n 个登录用户并平均分布于k 个基础系统上,以基础系统b s i 为 例,任意基础系统更新包的到达速率为t l si = n i f k ,参见式( 4 2 ) 。随着n 的增加 1 l r i 会由于配置更多的基础系统( k 增加) 而减小。然而,当k i 时转递包的到 达速率会受到诸如用户移动、影像域范围大小等因素的影响,一个至关重要的 问题是是否可以按照如下方式来设定一个d v e 系统,即对于每个基础系统有p i - 1 l r i + 巾i 不大于某个理想的值。 在总到达速率方面,我们首先以基础系统数量k 函数的形式给出到达每个 基础系统包的总到达速率。如前所述转递包的到达速率要受到影像域范围大小 的影响,影像域范围越大意味着受更新影响的用户数量越大。转递包的到达速 率还会受到环境中用户实体密度的影响,它用每个网格交叉点用户实体的数量 来定义,密度的大小由登录用户的数量n 和v e 的范围大小决定。 我们的分析结构除了用户的移动还可扩展到其它用户的行为。比如一个军 事演习系统中的射击或发射炮弹,由于打击而产生的状态更新被发送给受众用 户,这与由于用户的移动而产生的状态更新和是非常相似的,但与此相应的其 它用户的行为可能会对我们的模型带来一定的复杂性。 第五章d v r 系统框架结构与初步实现 第五章d v e 系统框架结构与初步实现 分布式虚拟环境( d v e ) 是通过广域网和局域网连接不同平台的计算环境 ( p c 和工作站) ,构成一定地域范围内的、逼真的、不断变化着的环境。各种仿 真实体( 如坦克、飞机、舰艇等) ,可以在这一环境中进行与真实环境中相同的 活动。 美军的s i m n e t ( s i m u l a t o rn e t w o r k ) 计划第一次将许多低价位的不同平台 的仿真实体联网进行集团训练,并发展成为d i s ( d i s t r i b u t e di n t e r a c t i v es i m u l a t i o n , 分布交互仿真) 标准,即i e e e l 2 7 8 标准【4 ,它定义了分布式虚拟环境的框架结 构。在d i s 中,网络上的各个仿真节点都是完全自治的,既是客户机,又是服 务器。在仿真开始前需要将环境的图形模型( 即地形环境) 预先安装在网上的 每台主机上,在仿真过程中各节点采用广播方式通过p d u ( p r o t o c o ld a t au n i t , 协议数据单元) 传输实体的状态信息及环境中的一些行为( 如碰撞、爆炸等) , 而不传输图像信息,这样可以大幅度降低网络负载,同时网络上各节点的当前 环境描述具有一致性。 依据第四章建立的d v e 运行模型,我们在本章尝试建立一个两用户的d v e 交互虚拟游戏。并就网络管理、实体管理、视景管理和运行管理等方面对虚拟 系统进行深入分析。此系统并不能与现有d v e 成熟系统的功能相比,尽管如此, 这样一个简单的游戏对以后开发大型d v e 系统具有一定的参考价值。 第一节d v e 系统框架结构 d v e 应用程序框架结构主要有网络管理、实体管理、视景管理和运行管理 等几部分组成。 5 1 1网络管理 d v e 网络传输通常采用i e e e 标准,通过p d u 进行交互,网络上的p d u 主 要有实体状态p d u ,它是主要的网络负载。为了降低网络负载,实体只有在对 d r 状态( 实体状态通过d e a d - r e c k o n i n g 进行计算) 与当前状态比较超过给定的 阈值或间隔一定时间,再向网络上广播其状态。 3 0 第五章d v r 系统框架结构与初步实现 d v e 通常还定义统一的坐标系,即地心坐标系。其坐标原点在地心,z 轴 指向北极,x 轴指向本初子午线,y 轴指向赤道上的东经9 0 度。所有仿真实体 的状态在向网络上广播时都要由本地坐标系转换到地心坐标系,同时接受到 p d u 后,同样要进行地心坐标到本地坐标系的转换。 5 1 2 实体管理与视景管理 d v e 中的实体有动态仿真实体和建模时已存在的静态实体两类。这与v e 中是相同的。 ( 1 ) 动态实体管理 d v e 动态仿真实体管理又分为两类:本地实体和异地实体。 本地实体的状态是由本地主机的各种输入设备进行控制的,它负责在适当 的时候向网络广播其状态,从而使得其它仿真节点具有它的当前状态。 异地仿真实体的管理通过远程仿真实体列表管理。在每次仿真循环中,从 网络上接受实体状态更新数据包,若这一实体更新不在列表中,则生成新的实 体加入列表,否则根据p d u 刷新相应的状态:另外若在较长的约定时间内没有 收到某一实体的状态更新数据包,则从列表中删除该实体。 ( 2 ) 静态实体管理 静态实体管理是在环境初始化时就存在的,对于它的管理通常采用在每各 节点主机上保存一张静态实体变化表,存储毁坏、消失等非正常状态,通过网 络接受实体刷新这张列表。对于动态介入的仿真节点,可以从其它节点获得这 张列表,从而正确地显示了环境中静态实体不同状态的模型。 在d v e 系统中,各仿真节点共享同一视景。视景部分由建模和调度两部分 组成,这与v e 系统中也是一样的。 5 1 3 运行管理 如图5 1 ,与v e 应用程序内部循环流程相比,d v e 中增加了网络传输的环 节,即在各用户节点之间进行状态更新数据的分发、接受和处理。 3 l 第五章d v r 系统框架结构j 韧步蛮现 幽51 蚰刑d v e 麻川拌序内部流程 第二节两节点d v e 系统的具体实现 5 21 前提条件 我”j 丌发了一个两节点坦克作战小系统,但是由于客观条件所限,不能借 助更为蚰人的系统肝发工具将该系统 发成为一个具有3 d 的逼真效果的系统, 只是运片j 普遍使用的剐络系统jr 发软件j a v a 来完成。其中我们用个 阿的简 单图形束代替维模型,用j a v a 的网络编程代替d v e 系统的丌发环境。如图 52 所示。 in*3 r 蚓5 2 两悼点坦克作战游戏i 薹行界面 第五章d v r 系统框架结构与初步实现 两节点坦克作战小系统是利用j a v a 软件基于t c p i p 协议编写的,可以在 i n t e r n e t 及局域网上运行。对于更复杂的多用户节点系统可以基于其它不同协议 标准,如第一章所述。该交互系统可以认为是两层复合结构的一个特殊情况, 即两个进行交互的用户节点主机同时扮演着基础系统的角色,可以认为一个服 务器端主机是用户u 同时它又基础系统b s ;,而客户端主机是用户v 同时又是基 础系统b s ;。两台主机上既维护一个分布式的虚拟环境又执行各自的客户程序。 在更新数据包的传递方面,无论是服务器端还是用户端都是基础系统和用 户的双重角色,可以认为传递的数据就是转递包。在系统程序运行的时候,转 递包都进入基础系统的程序处理等待队列。 在复杂的分布虚拟系统中,每一个用户实体在环境中与其它用户进行交互 时,都只能在它的用户主机上看到整个虚拟环境的一部分而非全部,比如在一 个作战仿真的3 d 虚拟环境中,坦克或飞机都只能看到自己视野范围内的视景, 而对于视野范围外的视景系统并不需要进行渲染,这是模拟真实情况的要求。 我们在第四章中提出了“影像域 的概念,目的就是反映每一个用户实体在虚 拟环境中所需要的渲染范围,对于影像域范围暂不涉及的更新与本用户实体无 关,这就是“受众用户”的概念。当然影像域范围会随着用户实体的移动发生 实时的变化。处于影像域范围内的其它用户实体就是该用户的受众用户。 由于我们的两节点系统只有两个用户,整个v e 也非常小,所以我们假设它 们各自的影像域就是整个v e ,即环境中所有的实体任何时刻都处于两用户的影 像域中。它们互为对方的受众用户,只要其中一个用户发生位移或其它行为, 都必须将更新数据包发送给对方,以保证用户各自d v e 副本的一致性和实时性。 5 2 2 游戏情形 游戏的情形是一个两用户操控的分布式坦克作战小系统,一个类似红土地 的矩形区域代表整个d v e 系统的战场,所有实体都只能出现在该区域中。其中 一方坦克用黄色表示,另一方用绿色表示,两方合作共同与敌方灰色坦克作战。 坦克可以上、下、左、右四个方向移动,如第四章运行模型中的描述。双方坦 克都可以随时发射炮弹,但两发炮弹之间必须间隔一定时间,如果坦克被任意 方坦克击中,则宣布死亡一次,双方都有数次机会。该系统中包括静态实体和 动态实体管理,如坦克( t a n k ) 、防御墙( w a l l ) 等是d v e 中的动态实体,钢铁 3 3 第五章d v r 系统框架结构与初步实现 墙( s t e e l w a l1 ) 、本垒( b a s e ) 等是静态实体。坦克作战系统是根据第四章我们所 建立的运行模型而开发的,即在一个二维的平面坐标系中,每个用户实体都可 以进行上、下、左、右四个方向的移动,用移动简化了系统的用户实体的复杂 行为,不过在该系统中我们增加了用户的行为,如坦克可以通过输入命令而发 射炮弹。 5 2 3 网络管理 游戏在运行之初首先通过确认服务器端主机i p 地址的方式进行联接,这部 分工作是借助j a v a 中j a v a n e t 工具包来实现的,如果i p 地址是正确的则网络连 接建立游戏开始。另外在游戏运行的过程中,为了管理d v e 中的实体的动态变 化,维护两节点d v e 副本的一致性,服务器端与用户端还要进行实时通信。当 游戏结束时,对于用户是否继续游戏,两节点同样进行数据包传输。图5 3 是两 节点坦克作战游戏网络管理方面的程序流程图。代码说明主要以服务器端编码 进行说明。 3 4 第五章d v r 系统框架结构与初步实现 图5 3 两节点坦克作战游戏网络管理程序流程 3 5 第五章d v r 系统框架结构与初步实现 1 在服务器端的s e r v e r m o d e l 中启动游戏界面,提示用户操作信息,并征听用户 端。 p u b l i cs e r v e r m o d e l ( s e r v e r v i e wt h i s v i e w ) v i e w = t h i s v i e w ; m e s s a g e q u e u e = n e ws t r i n g 8 ; v i e w m a i n p a n e l m e s s a g e q u e u e = m e s s a g e q u e u e ; a d d m e s s a g e ( ,欢迎来到坦克大战主机端! 请点击l t 建立主机按钮开始游戏 ”) ; t = n e wt i c k e r ( 1 0 0 0 ) ; t a d d a c t i o n l i s t e n e r ( t h i s ) ; ) 2 在服务器端建立主机端e 1 ,并当建立端口失败后,显示错误信息并返回。 p u b l i cv o i dc r e a t e s e r v e r o a d d m e s s a g e ( ”正在建立主机( 端u 1 4 3 2 1 ) ”) ; t r y s e r v e r s o c k e t = n e ws e r v e r s o e k e t ( 4 3 21 ) ; s e r v e r c r e a r e d = t r u e ; ) c a t c h ( e x c e p t i o ne ) a d d m e s s a g e ( 无法建立主机,请确认端口4 3 2 1 没有被别的程序使用”) ; s y s t e m o u t p r i n t l n ( e ) ; t s t o p o ; r e t u r n ; 3 当主机端口建立成功,等待用户端,若与用户端连接失败,则删除已建内容 并返回。 a d d m e s s a g e ( ”建立完成。等待玩家连接”) ; t r y c l i e n t s o c k e t = s e r v e r s o c k e t a c c e p t ( ) ; c l i e n t c o n n e c t e d = t r u e ; o u t = n e wp r i n t w r i t e r ( c l i e n t s o c k e t 。g e t o u t p u t s t r e a m o ,t r u e ) ; i n = n e wb u f f e r e d r e a d e r ( n e wi n p u t s t r e a m r e a d e r ( c l i e n t s o c k e t g e t l n p u t s t r e a m o ) ) ; 3 6 第五章d v r 系统框架结构与初步实现 ,c a t c h ( e x c e p t i o ne ) a d d m e s s a g e ( ”连接中出现错误,请重新建立主机”) ; s e r v e r c r e a t e d = f a l s e ; c l i e n t c o n n e c t e d = f a l s e ; t s t o p o ; 如果连接欠败,删除创建内容 t r y s e r v e r s o c k e t c l o s e ( ) ; c l i e n t s o c k e t c l o s e ( ) ; o u t c l o s e o ; i n c l o s e o ; c a t c h ( e x c e p t i o ne x ) ) r e t u r n ; 4 当用户端连接成功,显示连接成功信息,服务器端通知用户端加载,游戏 开始。 v i e w m e s s a g e f i e l d s e t e n a b l e d ( t r u e ) ; a d d m e s s a g e ( ”玩家已连接上,开始载入游戏”) ; 如果客户主机己连接,通知客户主机开始加载游戏 o u t p r i n t l n ( ”li , ”) ; i i d h 载图像纹理 t e x t u r e s = n e wi m a g e 8 8 ; f o r ( i n ti = l ;i ) 7 在游戏运行过程中,服务器端与用户端用户的实时通信使j 君s e r v e r - c o n t r o l e r 和c l i e n t c o n t r o l e r 类,具体代码如下: s e r v e r c o n t r o l e r 主要处理来自服务器端的输入 p u b l i cc l a s ss e r v e

温馨提示

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

评论

0/150

提交评论