虚拟漫游关键技术研究.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
虚拟漫游关键技术研究.doc

虚拟漫游关键技术研究   摘 要:虚拟漫游属于虚拟现实技术,需要满足三个基本要求,虚拟现实的构想性,交互性,沉浸性。实现虚拟漫游的技术和方法多种多样,但原理却基本相同,主要围绕虚拟漫游系统功能、漫游引擎的实现、漫游的交互控制三方面的实现原理进行介绍。   关键词:虚拟漫游;漫游引擎;交互控制   中图分类号:TP391.41   1 虚拟漫游功能介绍   根据此漫游系统主要工作在桌面系统上这一原则,对其应具有的功能和结构进行重点介绍。   1.1 记录漫游路径。在虚拟场景中漫游时,有时用户想返回之前漫游的地点,如果没有记录漫游路径这一功能,用户返回时将比较困难,为此可记录下漫游过程,这个过程也就是漫游历史过程,如果用户想返回时只需重新再现之前的漫游路径就可实现漫游返回。可按照如下方法记录漫游过程:首先,根据初始角色的位置,绕Z轴的旋转角和仰角的视线;对每个命令的键盘操作的动作类型,执行系列的数量、格式等内容进行记录。总之,将整个过程记录为键盘漫游的漫游命令序列。这些命令系列就像放在堆栈里,需要播放历史记录时依次从堆栈里从上往下出栈命令系列即可。   1.2 路径漫游。在虚拟环境中漫游时,一直按着鼠标或键盘来漫游显得比较麻烦,为此,可直接在屏幕上画一条漫游路径,让角色或镜头沿着这条路径漫游,用户只需观看即可。路径漫游实现的方法比较多,普遍的设置方法是:当应用鼠标或其他设备选取漫游路径的初始点时,记下漫游路径初始点的位置、方向和高度,鼠标滑过的曲线可以分解成多个点,构成一个折线段,在漫游时只需沿着这些点组成的折线前进即可,当然,这些点需要经过平滑处理,使漫游时不至于产生太大的抖动。   1.3 线性样条路径漫游。线性样条曲线看起来像一个系列的连接控制点的直线段;通过所有控制点的曲线,看起来像一个基本的样条曲线。由于路径可以转换为样条曲线的插补值,你可以采用类似线性样条路径的方式处理。第一个点是控制点开始位置,在控制点间插入等间隔的线段,插值计算过程依次进行,如下所示:   Conat sdu=24; //帧每秒   Vector Q1,Q2,Q; //Q1,Q2是控制点,Q是Ql,Q2的插值点   Float D,T,V; //d是飞行距离,t为飞行时间,v为飞行高度   Int n; //Ql,Q2的插值点数量   D=[(Q2.x Q1.x)2+(Q2.y-Ql.y)2+(Q2.z-Ql.z)2)/2;   T=D/V;   N=T*sdu;   (I-1,IN;i++)//插值点计数   {Q.x Ql.x+(Q2.x-Ql.x)//(n-1);   Q.y=Ql.y+I*(Q2.y-Ql.y//(n-1);   QZ=Ql.z+(Q2.z-Ql.z/(n-1);}   计算出的每一个插值点作为一个新的插值计算点,在插值过程中将第二点作为折线段的观察点,这样在漫游过程中巧妙的处理了路径漫游过程。   1.4 转角平滑处理。在应用线性样条路径播放漫游记录时可以任意设置漫游路径,但有时这条路径是一条弯曲度较大的路径。这时在漫游时镜头或角色将会发生非常明显的偏转,从而使角色或镜头看起来有很大的波动,这将影响动画播放效果,这是需要改进的。改进方法较为简单,只需在转角处插入一个插值点来消除抖动,当角色或相机转角时通过插值来消耗抖动的幅度,从而实现了转角平滑处理。   1.5 碰撞检测。三维场景中的某些对象可以穿越,在一个虚拟的环境中,有些对象是无法穿越的,例如,你不能穿越高山和高楼。漫游时对那些不能穿越的对象要采取合适的碰撞检测方法。普遍应用的碰撞检测方法是把可能会碰撞到的物体装在一个包围盒里,当角色在场景中漫游时会否发生碰撞只需计算角色和包围是否重合,如果重合说明发生了碰撞,碰撞发生后需要给出一个方向指示或是碰撞提醒,这样在漫游时使用户更加方便的漫游。   2 漫游引擎的实现   在系统中漫游时,通过对视点的改变来实现漫游功能。视点可以认为是人眼的化身,我们在现实世界中看的东西就是通过对视点的改变来看到。漫游过程实际上是一个连续移动的视点在方向或位置上的改变。   2.1 输人命令处理。虚拟环境中的漫游也和现实世界的漫游类似,有时需要向左转,有时需要向右转,向前进,后退,向上,向下等。如果系统是左手坐标系的z轴向上,Z值表示场景的高度,如果是左右转动则顶视图视点保持不变,只需在左右视图中改变视线方向。如果是后退则是视线向相反的方向移动一定的距离(行驶速度),上升、下降时只是增加、减少视点高度坐标值。通过应用线性代数里的空间向量分解运算方法,可以计算出一个新视点,这个新的视点包括位置坐标以及方向信息。   2.2 实时漫游的数据调度。大规模场景漫游的预处理阶段的判断,这是必要

文档评论(0)

sis_lxf + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档