(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf_第1页
(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf_第2页
(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf_第3页
(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf_第4页
(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf_第5页
已阅读5页,还剩53页未读 继续免费阅读

(计算机应用技术专业论文)基于协调数据库的web虚拟现实系统交互研究.pdf.pdf 免费下载

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

文档简介

硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 摘要 本论文主要研究v r m l 动态建模,j a v a 对场景的控制实现,多终端的协调同步。 我们尝试把数据库作为协调工具,利用j d b ca p i 从模型数据库向v r m l 场景中动态 添加模型对象,同时将场景中的模型数据存入场景数据库中,以数据库为中介,实 现各终端协调控制。 关键字:v r m l ,c s c w ,e a i ,j d b c ,协调数据库,交互 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 a b s t r a c t t h ep a p e rm a i n l yr e s e a r c hw i t ht h ev r m ld y n a m i cm o d e l l i n g ,j a v ar e a l i z e s t ot h es c e n et h ec o n t r o l ,r e a li z e st h em u l t i t e r m i n a lc o o r d i n a t e ds y n c h r o n i z a t i o n w ea t t e m p tt h ed a t a b a s ea c h i e v e m e n ta r ec o o r d i n a t e dt h et o o l ,u s e s j d b ca p if r o mt h em o d e ld a t a b a s et ot h ev r m ls c e n ei nt h ed y n a m i ci n c r e a s e m o d e l ,s t o r e st h es c e n ed a t a b a s et h es c e n ei nd a t a ,t h r o u g ht a k ed a t a b a s e a si n t e r m e d i a r y ,r e a l i z e st h ev a r i o u st e r m i n a l sc o o r d i n a t i o nc o n t r 0 1 k e y w o r d :v r m l ,c s c w ,e a i ,j d b c ,c o o r d i n a t e dd a t a b a s e ,c o o p e r a t i v ec o n t r o l 声明尸l 凋 本学位论文是我在导师的指导下取得的研究成果,尽我所知,在 本学位论文中,除了加以标注和致谢的部分外,不包含其他人已经发 表或公布过的研究成果,也不包含我为获得任何教育机构的学位或学 历而使用过的材料。与我一同工作的同事对本学位论文做出的贡献均 已在论文中作了明确的说明。 研究生签名:蹲 扣。辉 厂月场日 学位论文使用授权声明 南京理工大学有权保存本学位论文的电子和纸质文档,可以借阅 或i - _ n 公布本学位论文的全部或部分内容,可以向有关部门或机构送 交并授权其保存、借阅或上网公布本学位论文的全部或部分内容。对 于保密论文,按保密的有关规定和程序处理。 研究生签名:型缰牛 p 。影年厂月形日 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 1 绪论 1 1 虚拟现实 虚拟现实n 卅( v i r t u a lr e a li t y ,简称v r ) 技术又称“灵境技术 ,它是信息技 术飞速发展的产物,它与多媒体、网络技术并称为三大前景最好的计算机技术,己 成为当今计算机界广泛关注的一个热点。虚拟现实是一门由计算机图形学、传感器 技术、仿真技术、多媒体网络技术、人机接口技术、智能技术、并行处理技术等多 学科交叉形成的一个全新的研究领域,它是计算机生成的看起来像真的、听起来像 真的、触摸起来像真的虚拟世界,并给人以一种身临其境的感觉。人能以使用手势 ( 数据手套) 、体势( 数据衣服) 和语言等自然的方式与虚拟世界中的对象进行交互操 作。它与计算机仿真不同的是它强调了介入者( 人) 在所创建的虚拟世界( 环境) 中的 体验( 通过人机之间的相互操作获得) 。也是人机交互是虚拟现实的核心。虚拟现实 的研究、开发、和应用正处于一个高峰期,具有很强的生命力。目前的研究成果和 发展趋势表明,作为一门先进的人机交流技术,虚拟现实技术具有广泛的应用前景。 虚拟现实n 1 由两部分组成:一部分为创建的虚拟世界( 环境) ,另一部分为介入者 ( 人) 。虚拟现实的核心是强调两者之间的交互操作,即反映出人在虚拟世界( 环境) 的体验。 介感知系统 虚拟世界 入 量 ( 环境) 自 反应系统 图1 1 1 虚拟现实概念模型 1 1 1 虚拟现实的国内外研究状况 美国是v r 技术的发源地乜1 ,美国v r 研究技术的水平基本上就代表国际v r 发展 的水平。目前美国在该领域的基础研究主要集中在感知、用户界面、后台软件和硬 件四个方面。 美国宇航局( n a s a ) 的a m e s 实验室完善了h m d ;并将v p l 的数据手套工程化, 使其成为可用性较高的产品。n a s a 研究的重点放在对空间站操纵的实时仿真上,大 多数研究是在n a s a 的约翰逊空间中心完成的。他们大量运用了面向座舱的飞行模 硕士论文 基于协调数据库的w e b 虚拟现实系统交互研究 拟技术。n a s a 完成的一项著名的工作是对哈勃太空望远镜的仿真。北卡罗来纳大学 ( u n c ) 的计算机系是进行v r 研究最早最著名的大学。他们主要研究:分子建模、 航空驾驶、外科手术仿真、建筑仿真等。麻省理工学院( m i t ) 是一个一直走在最 新技术前沿的科学研究机构。m i t 原先就是研究人工智能、机器人和计算机图形学 及动画的先锋,这些技术都是v r 技术的基础,1 9 8 5 年m i t 成立了媒体实验室,进 行虚拟环境的正规研究。s r i 研究中心建立了“视觉感知计划,研究现有v r 技术 的进一步发展。华盛顿大学华盛顿技术中心的人机界面技术实验室( h i tl a b ) 在 新概念的研究中起着领先作用,同时也在进行感觉、知觉、认知和运动控制能力的 研究。h i t 将v r 研究引入了教育、设计、娱乐和制造领域。例如,波音公司的v 2 2 运输机就是先在实验室中造出虚拟机后再投入生产的。 和一些发达国家相比,我国v r 技术口1 还有一定的差距,但已引起政府有关部门 和科学家们的高度重视。根据我国的国情,制定了开展v r 技术的研究,例如,九 五规划、国家自然科学基金会、国家高技术研究发展计划等都把v r 列入了研究项 目。在紧跟国际新技术的同时,国内一些重点院校,已积极投入到了这一领域的研 究工作。北京航空航天大学计算机系是国内最早进行v r 研究、最有权威的单位之 一,他们首先进行了一些基础知识方面的研究,并着重研究了虚拟环境中物体物理 特性的表示与处理;在虚拟现实中的视觉接口方面开发出了部分硬件,并提出了有 关算法及实现方法;浙江大学c a d & c g 国家重点实验室开发出了一套桌面型虚拟建 筑环境实时漫游系统,哈尔滨工业大学计算机系已成功地虚拟出了人的高级行为中 特定人脸图像的合成,清华大学计算机科学和技术系对虚拟现实和临场感的方面进 行了研究,西安交通大学信息工程研究所对虚拟现实中的关键技术一立体显示技术 进行了研究。 1 1 2 虚拟现实的研究 虚拟现实技术所拥有的独特魅力决定了它的应用技术的鲜明特点。它提供看起 来像真的、听起来像真的、摸起来像真的,能给人身临其境感觉的虚拟环境,并且 人机之间能以人所熟悉的自然方式进行交互操作。因此,它给人丰富的想象力和直 觉,从而有利于启迪人的创造力,适用于未知的宏观和微观世界的探索。其次,虚 拟现实技术特别适用于恶劣、危险环境的仿真。虚拟现实技术可以替代制造业的实 物样机,是虚拟设计和制造的核心技术,能大大缩短产品的开发周期,大量节约产 品成本。虚拟现实技术是远程协同工作、教育、培训的理想工具。故虚拟现实技术 在航空航天、汽车工业、重大工程论证、生物信息科学、虚拟手术仿真、科研、教 育和文化娱乐业等获得了广泛的应用,应用前景非常看好。 2 硕士论文 基于协调数据库的w e b 虚拟现实系统交互研究 1 2v r m l 的历史及应用领域 v r m l ( v i r t u a lr e a l i t ym o d e l i n gl a n g u a g e ) 即虚拟现实建模语言。 1 2 1v r m l 的发展历史 v r m l 开始于2 0 世纪9 0 年代初期乜1 。1 9 9 4 年3 月在日内瓦召开的第一届w w w 大 会上,首次正式提出了v r m l 这个名字。 1 9 9 4 年1 0 月在芝加哥召开的第二届w w w 大会上公布了规范的v r m l i 。0 草案。 1 9 9 6 年8 月在新奥尔良召开的优秀3 d 图形技术会议s i g g r a p h 9 6 上公布通过 了规范的v r m l 2 0 第一版。它在v r m l i 0 的基础上进行了很大的补充和完善。它是 以s g i 公司的动态境界m o v i n gw o r l d s 提案为基础的。 1 9 9 7 年1 2 月v r m l 作为国际标准正式发布。 1 9 9 8 年1 月正式获得国际标准化组织i s o 批准简称v r m l 9 7 。v r m l 9 7 只是在 v r m l 2 0 基础进行上进行了少量的修正。 v r m l 规范支持纹理映射、全景背景、雾、视频、音频、对象运动、和碰撞检测 一一切用于建立虚拟世界的所具有的东西。 但是v p a t l 并没有得到预期的推广运用,不过这不是v r m l 的错,要知道当时1 4 4 k 的m o d e m s 是普遍的。v r m l 是几乎没有得到压缩的脚本代码,加上庞大的纹理贴图 等数据,要在当时的互连网上传输简直是场噩梦。 1 9 9 8 年,v r m l 组织把自己改名为w e b 3 d 组织,同时制订了一个新的标准, e x t e n s i b l e3 d ( x 3 d ) ,到了2 0 0 0 年春天,w e b 3 d 组织完成了v r m l 到x 3 d 的转换。 x 3 d 整合正在发展的x m l 、j a v a 、流技术等先进技术,包括了更强大、更高效的 3 d 计算能力、渲染质量和传输速度。 1 2 2v r m l 的应用领域 v r m l 在远程教育、科学计算可视化、工程技术、建筑、电子商务、交互式娱乐、 艺术等领域都有着广泛的应用前景眵1 ,利用它可以创建多媒体通信、分布式虚拟现 实、设计协同系统、实境式电子商务、网络游戏、虚拟社区、赛博空间等全新的应 用系统。典型的应用领域有: ( 1 ) 教育应用 把v r m l 用于建造人体模型、电脑太空旅行、化合物分子结构显示等领域。由于 数据更加逼真,大大提高了人们的想象力、激发了受教育者的学习兴趣,学习效果 十分显著。随着计算机技术、心理学、教育学等多种学科的相互结合、促进和发展, 能够提供更加协调的人机对话途径。 3 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 ( 2 ) 工程应用 当前的工程很大程度上要依赖于图形工具,以便直观地显示各种产品,目前 c a d c a m 已经成为机械、建筑等领域必不可少的软件工具。v r m l 将使工程人员能通 过全球网或内部网按协同方式进行三维模型的设计、交流和发布,从而进一步提高 生产率并削减成本。 ( 3 ) 商业应用 对于那些期望与客户建立直接联系的公司,尤其是那些在他们的主页上向客户 发送电子广告的公司,i n t e r n e t 具有特别的吸引力。v r m l 有可能大幅度改善顾客 购买商品的经历。例如,顾客可以访问虚拟世界中的商店,在那里挑选商品,然后 通过i n t e r n e t 办理付款手续,商店则及时把商品送到顾客手中。 ( 4 ) 娱乐应用 娱乐领域是v r m l 的一个重要应用领域。v r m l 是一个功能十分强大的在i n t e r n e t 网上交换三维场景的描述性语言,它能提供更好的多人之间的交互,提供更加逼真 的虚拟环境,从而使人们能够享受其中的乐趣,带来更好的娱乐感觉。v r m l 目前正 朝着实时通信、大规模用户交互的方向发展。 1 3 编程语言j a v a j a v a 是一种简单的、跨平台的、面向对象的、分布式的、解释的、健壮的、自 动回收内存的、安全的、可移植的、性能优异的、多线程的、动态的语言。j a v a 是 s u n 公司开发的新一代编程语言,j a v a 的目标是为了满足在一个充满不同机型的计 算机、应用不同类型的操作平台的网络环境中进行软件开发。这也就是为什么不管 你是使用哪一种w w w 浏览器、什么样类型的计算机、哪一种操作系统,只要是网络 页面浏览器上注明了“支持j a v a ,你就可以看到由它带来的生动的页面。 利用j a v a 语言,你可以在网页上加上各式各样的特效,比如放映动画、建立让 你名字在页面上不停旋转的看板;也可以将页面设计成像窗口程序一样,加上菜单、 按钮和滚动条等。 j d b c 刚( j a v ad a t ab a s ec o n n e c t i v i t y ) 用于连接j a v a 应用程序与各种关系数 据库。通常把j a v a 作为编程语言,在建立客户服务器应用程序时,把任何一种浏 览器作为应用程序的友好界面,把i n t e r n e t 或i n t r a n e t 作为网络主干,把有关的 数据库作为数据库后端。利用j d b ca p i ,我们可以从模型数据库里面向v r m l 场景 中动态添加模型,也可以将场景中的数据存入场景数据库,通过以数据库为中介, 实现各终端协调控制。 用j d b c 来实现访问数据库记录可以采用下面的几个步骤: 4 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 1 、通过驱动器管理器获取连接接口。 2 、获得s t a t e m e n t 或它的子类。 3 、限制s t a t e m e n t 中的参数。 4 、执行s t a t e m e n t 。 5 、查看返回的行数是否超出范围。 6 、关闭s t a t e m e n t 。 7 、处理其它的s t a t e m e n t 8 、关闭连接接口。 1 4 协调数据库 目前基于w e b3 d 虚拟现实研究方面,对数据库支持研究的比较少,在此我们引 进“协调数据库 的概念。从功能上讲,通过数据库为中介,用数据库来保存当前 场景中的数据信息,实现各终端的协调。在设计的时候,后台数据库可以使用目前 比较流行的各种数据库软件进行实现,本论文中,我们使用a c c e s s 来实现,当需 要进行更复杂设计的时候,我们可以轻易的移植到s q ls e r v e r 等高级数据库管理 系统中。 1 5 本论文的研究内容及结构 1 本论文的研究内容 在查阅了大量的国内外有关书籍、资料和相关的网站的基础上,本论文尝试性 的把有关的数据库作为数据库后台,利用j d b ca p i 从模型数据表里面向v r m l 场景 中动态添加模型,同时将场景中的模型数据存入场景数据表,通过以数据库为中介, 实现各终端协调控制。 2 本文的结构安排 1 介绍虚拟现实的国内外研究情况,以及研究的相关技术。 2 介绍v l i l 建模的方法,其中重点介绍使用v r m l 的外部接口动态建模。 3 重点研究v r m l 与j a v a 交互通信机制。 4 介绍计算机支持协同工作,提出协调控制系统结构和模式。 5 系统具体设计,向场景中动态添加模型对象( 动态建模) ,使用j a v a 实现 对模型对象的交互控制,利用基于协调数据库实现主从终端的协调控制。 6 总结全文并对今后的工作提出建议。 5 硕士论文 基于协调数据库的w e b 虚拟现实系统交互研究 6 1 6 小结 本章首先介绍虚拟现实的发展状况、应用领域,然后介绍了v r m l 和j d b c 的相 关概念,最后介绍了本论文的研究内容及论文结构。 硕士论文 基于协调数据库的w e b 虚拟现实系统交互研究 2v r m l 建模技术 虚拟现实建模语言n 3 ( v i r t u a lr e a l i t ym o d e l i n gl a n g u a g e ,缩写为v r m l ) 是一 个开放的、可扩充的三维场景描述语言,它描述了如何在w o r l dw i d ew e b 上创建 和浏览三维虚拟场景。v r m l 的构思始于1 9 9 4 年春瑞士日内瓦的万维网( w w w ) 的第一 届国际会议上。1 9 9 4 年1 0 月在芝加哥召开的第二次万维网会议上公布了v r m l i 0 的规范草案,其主要的功能是生成静态的3 d 场景,以及与h t m l 链接的一些功能和 措施。1 9 9 8 年1 月v r m l 被i s 0 正式批准为国际标准( i s o i e c 4 7 7 2 1 :1 9 9 7 ,通常 被称为v r m l l 9 9 7 ,也被称为v r m l 2 0 ) 。v r m l 2 0 版将v r m l 的静态世界改变为动态 世界,并强化了互动功能,此外还增加了动画、传感器、事件、行为和脚本等功能。 v r m l 提供了5 4 个功能强大的节点用于描述三维场景中的对象,能够利用层次性文 件关系创建任意大的动态境界。目前,国内在虚拟现实技术的应用方面除了个别领 域外,基本上还处于探索研究阶段,主要是应用v r m l 的三维建模功能创建一个用 户可以浏览的静态三维场景,而在创建动态场景和多用户场景方面的研究相对较 少。本文旨在讨论使用v r m l 与j a v a 创建多用户交互式场景的结合方法,并给出了 系统框架和实现方法。 v r m l 文件以w r l 为后缀,它是一种文本格式的文件。可以用文本编辑器( 如 w i n d o w s 下的n o t e p a d ) 打开编辑。在设计一些最简单的模型时,这种方法是最简 便可行的。但是当场景变得复杂后,就需要利用一些专用的模型设计软件,这种软 件称为v r m l 编辑器,常用的有s g i 公司的c o s m op l a y e r ,p a r a l l e lg r a p h i c s 公 司的c o r t o n a 浏览器等等。 2 1v r m l 的基本概念 在v r m l 中,节点是构成虚拟场景的基本单元,节点通过域和事件组成。域的取 值决定了节点的取值,从而决定了虚拟场景的当前状态。事件则为节点提供了接受 外界消息以及向外界发送消息的能力。节点通过事件入口( e v e n t i n ) 接受事件,通 过事件出口( e v e n t o u t ) 发送事件,一个节点的出口和另一个节点的入口通过路由联 系起来。 1 节点节点是对现实世界中各种对象和概念( 如球的光和材质等) 的抽象描述, 它是v r m l 文件中最基本的组成部分,其作用是描述空间造型及其属性。由多个节 7 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 点之间并列使用或层层嵌套就构成了v r m l 文件。 2 域和域值域定义节点的属性,域值是对属性的具体描述。 3 事件事件是按照指定的路由从一个节点发往另一个节点的消息,它是一个 值,一般类似于节点的域值,可以是坐标值、颜色值或浮点值。 4 路由路由是消息从一个节点发往另一个节点的依据,多个节点通过路由连接 起来形成复杂的路线,可以传播声音、动画等,使所创建的v r m l 空间充满变化和 动感。 5 交互和脚本v r m l 场景中的对象能对用户动作做出反应,称之为交互能力。 在v r m l 中,传感器( s e n s o r ) 节点是交互能力的基础。传感器节点共九种。在场景 图中,传感器节点一般是以其他节点的子节点的身份而存在的,它的父节点称为可 触发节点,触发条件和时机由传感器节点类型确定。下面是几种最常用的传感器: 接触传感器( t o u e h s e n s o r ) 、邻近传感器( p r o x i m i t y s e n s o r ) 、时间传感器 ( t i m e s e n s o r ) 、朝向传感器( o r i e n t a t i o ni n t e r p o l a t o r ) 。 脚本是一套程序,通常作为一个事件级联的一部分而执行。脚本函数也可以异 步地执行。与脚本相联系的是脚本节点和脚本语言。脚本可以接受事件,处理事件 中的信息,还可以产生基于处理结果的事件输出。 2 2v p 理t l 空间及其坐标系 v r m l 空间是一个虚拟的三维空间,在该空间中的造型的位置是这个造型所处的 三维空间坐标系决定的。这里的坐标系由x 、y 、z 三个坐标方向构成,其方向可以 用右手规则来确定,大拇指所指的方向是x 轴的方向,食指指的是y 轴的方向中指 指的是z 轴的方向。通过t r a n s f o r m 编组节点的使用可以创建更多的坐标系,可将 坐标系分为父坐标系和子坐标系,子坐标系是相对于父坐标系的原点创建的,而父 坐标系又可以相互嵌套而被创建。有了父坐标系的嵌套,就可以在任何地方创建自 己想要的造型,这些造型通过坐标系的嵌套,组合在一起构成各种很复杂的v r m l 场景,从而形成了多姿多彩的三维世界。 2 3 几何建模 几何建模描述了虚拟环境的三维造型( 多边形、三角形和顶点) 及其外观( 纹理、 表面反射系数、颜色等) 。 v r m l 是一个基于对象的语言,它提供3 d 空间中描述对象的格式,称为节点 ( n o d e ) 。每个对象节点都有共同的属性,如类型名称、默认字段值和收发设置字段 8 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 信息的能力( v r m l 2 ,o 中的事件) 。当定义一个派生的类时,我们可以仅用默认值。 v r m l 的一个好处就是当定义一个节点时,总是包含一个可视的有形的结果。 2 3 1 使用v r 地建立简单造型 v r m l 为虚拟环境的建立提供了规范,综合了现有三维软件景象描述语言的优点。 它有基本元素、顶点、线和面的定义,坐标变换有缩放、旋转和平移,并有优化的 数据结构。v r m l 浏览器的主要功能是读入v r m l 代码文件,并把它解释成图形映像。 v r m l 语言具有的基本物体陋1 有:球体、锥体、柱体、立方体和文本等,这些基本 物体为创建场景提供了方便。v r m l 的语法虽然并不复杂,但比较烦琐,如果需要设 计房间内的装饰不仅需要设置各种物品的材质,还需要设置相应的位置,因此其代 码量是相当可观的,因而目前有许多创建v r m l 文件模型的软件,可以把其它三维 格式的文件转换成v r m l 文件,如3 d s m a x 、r a w 等。但是若采用上述软件完成的三 维模型都是手工在各个视图中绘制出来的,费时费力,而且不够真实准确,对于那 些需要采用大量数据来准确描述构造物时,或者被描述的这些物体非常不规则,则 很难用手工精确创制。 # v i 瑚lv 2 0u t f 8 s h a p e a p p e a r a n c ea p p e a r a n c e m a t e r i a lm a t e r i a l g e o m e t r y 程序说明: 每个v r m l 2 0 文件必须以下面的语句作为开始: # v r m lv 2 0u t f 8 “u t f 8 是国际标准组织确认的一个标准,在v r m l 文本节点 中引导语言字符。以或# 开头的文本行是注释行,直到下一个回车符为止,它将 被浏览器解释所忽略。 s h a p e 是v r m l 的一个节点类型( n o d e ) ,它有两个字段( f i e l d ) :a p p e a r a n c e 和 g e o m e t r y ,分别用于定义物体的外观属性( 如材质、纹理) 和几何属性。a p p e a r a n c e 字段后紧跟的a p p e a r a n c e 也是v r m l 的一个节点,它的内容就是该物体的外观属性。 a p p e a r a n c e 可以定义m a t e r i a l ( 材质) ,t e x t u r e ( 纹理) 和t e x t u r e t r a n s f o r m ( 纹理 映射) 三种属性。m a t e r i a l 节点紧跟在m a t e r i a l 字段后面,其内容就是物体的材质 属性。g e o m e t r y 字段后的节点表示物体。如b o x ) 表示立方体,c o n e ) 表是圆 锥。 9 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 2 3 2 使用v r m l 建立复杂造型 在v r m l 中,t r a n s f o r m 节点是一个基本结构,它是一个常见的群组节点 ( g r o u p i n gn o d e ) ,可以作许多物体的容器,复杂模型都是简单的组合而成的。 t r a n s f o r m 提供了更强大的功能,在计算机图形中,“运动总是和变换 ( t r a n s f o r m a t i o n ) 紧密相连的。无论是缩放比例、旋转或是平移。v r m l 2 0 中, t r a n s f o r m 节点将其定义的变换施加于物体。它的各字段的缺省值阻3 定义如下: t r a n s f o r m c e n t e r0 00 t r a n s l a t i o n0o 0 r o t a t i o n001o s c a l e1 1 1 s c a l e o r i e n t a t i o n0 01o c h i l d r e n ) v r m l 场景图包含许多群组节点以便定义一个方便的等级来操纵场景。当然,也 可以把t r a n s f o r m 和其它节点组成群组节点( 例如,在一个物体等级的内部某一层 放置一个传感器,用一个事件触发它,但同时又保留着操纵整个组活动的能力) 。 t r a n s f o r m 字段的值,例如转变或旋转,可以由任何s h a p e 节点或它的子节点所继 承。子节点的关键字c h i l d r e n 声明随后的节点是父组节点的子节点。 注意:无论何时你使用任何类型的群组节点来管理v r m l 场景图形元素,你都必 须在子节点字段中指定群组节点的内容。父节点定义了本地的坐标空间,子节点从 父节点中继承了t r a n s f o r m ,依次地这些父节点又继承了它们的父节点中的 t r a n s f o r m ,使得本地的t r a n s l a t i o n 、s c a li n g 或r o t a t i o n 变换经常与较高群组 的最后的t r a n s f o r m 执行有关。也就是说,群组节点的t r a n s f o r m 字段在结构中积 累。 对象的旋转可以通过设置t r a n s f o r m 父组节点的r o t a t i o n 字段值来实现。 r o t a t i o n 字段接受三个在一1 0 到1 0 区间的值,这三个值表示旋转轴的方向,其 后跟随一个用弧度表示的旋转量。例如,取r o t a t i o n 值为( 1o0 ) ,则定义x 轴 为旋转轴。旋转的角度是以弧度形式表示的;旋转角的正负,可用右手规则判别: 用右手的拇指从原点指向旋转轴的方向,绕着轴弯曲其它的四个手指,其指向的是 正方向,相反方向就是负方向。 v r m l 2 0 采用了事件机制来支持这种动态交互的场景。事件是包含一些数据的 信息,它被用来作为事件的触发器( s e n s o r ) 。事件机制在w i n d o w s 操作系统中也 1 0 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 是普遍使用的,如键盘或鼠标的每次击键操作都会产生一个输入事件并被送到当前 的应用程序中去。在v p a i l 2 0 中,每个事件包括两个部分:来源( e v e n t i n ) 和目标 ( e v e n t o u t ) ,它们都是由某个节点的字段表示的。v r m l 2 0 提供了一组描述事件触 发器的节点。如t o u c h s e n s o r 用于描述用户输入的消息;t i m e s e n s o r 用于产生定时 器消息;p r o x i m i t y s e n s o r 用于相应用户进入某个区域的消息;v i s i b i l i t y s e n s o r 用于判断某个包围盒( b o x ) 区域的可见性等等。 2 3 3v r 儿虚拟场景渲染技术 v r m l 提供了光源节点、材质、纹理映射、立体声音技术等,对虚拟空间造型及 场景进行渲染,实现虚拟场景的逼真感。例如,a p p e a r a n c e 节点定义了物体造型的 外观,包括外观的材质、纹理映像及纹理坐标变换节点。a p p e a r a n c e 域的默认值为 n u l l ,表示其外观为白色光。 m a t e r i a l :描述立体空间造型外观,造型的外观设计包括造型的颜色、发光 效果、明暗、光的反射以及透明度等。该节点可以使立体空间造型的外观效果更加 逼真、生动。比如d i f f u s e c o l o r 定义了材料的漫反射颜色;a m b i e n t i n t e n s i f y 定 义了有多少环境光被该表面反射,环境光是各向同性的,环境光颜色以 a m b i e n t i n t e n s i t y * d i f f u s e c o l o r 计算;s p e c u l a r c o l o r 定义了物体镜面反射光线 的颜色;e m i s s i v e c o l o r 定义发光物体产生的光的颜色;s h i n i e s s 域的域值指定造 型外观材料的亮度;t r a n s p a r e n c y 域的域值指定物体的透明度。其中,v r m l 采用 了r g b 色彩空间。基本颜色r g b 包含了用3 个浮点数来描述颜色,从0 0 - i 0 之间 变化。 t e x t u r e :v r m l 的纹理渲染,设置造型的m o v i e t e x t u r e 影像渲染、 i m a g e t e x t u r e 图像渲染和p i x t e x t u e 像素渲染。其中利用p i x t e x t u r e 像素渲染时, 可以采用单元、双元、三元或四元像素纹理。如果采用四元素纹理,则采用的是r g b 色彩空间+ a l p h a 纹理渲染,该像素纹理使用4 个字节的1 6 进制数据,如o x f f 0 0 0 0 8 0 则表示半透明的蓝色。 2 4 交互建模 在v r m l 中,节点是构成虚拟场景的基本单元。节点由域和事件组成,域的取值 决定了节点的取值,从而决定了虚拟境界的当前状态。事件包括e v e n t i n ( 入事件) 、 e v e n t o u t ( 出事件) 以及e x p o s e d f i e l d ( 外露域) 的一对隐含的事件入口( s e t x x x ) 和 事件出口( x x x _ c h a n g e d ) ,事件为节点提供了接受外界( 如外部程序j a v aa p p l e t ) 消息以及向外界发送消息的能力,通过事件可以动态改变虚拟境界的状态。 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 v r m l 中没有支持行为改变时显示决策逻辑的节点,本身与外部交互的能力并不 是很强,要想创造出复杂的交互式的三维场景,它必须与其他语言相结合才能构造 出具备交互能力的虚拟场景n 们。而j a v a 是非常适合于开发跨平台应用程序的网络 编程语言,将v r m l 与j a v a 相结合,就可以克服v i b 4 l 的一些缺陷,提供给用户和 v r m l 场景之间更加丰富、便捷的人机交互,满足复杂系统的要求。它提供了两种与 外部程序连接的机制,即j a v a 脚本创作接口( j s a i ) 和外部编程接口( e a ) i ,这两种 机制实现的方法不同,但实现的功能是一样的。 v r m l 文件描述的虚拟境界需要经过带有v r m l 插件n 1 3 ( p l u g i n ) 的浏览器的解 释,才能呈现给观察者。而v r m l 的e a i ( e x t e r n a la u t h o r i n gi n t e r f a c e 外部程序 接口) 是一个与v r m l 插件联系的j a v a 包,它由三部分组成:v r m l e x t e r n a l 、 v r m l e x t e r n a l f i e l d 、v r m l e x t e r n a l e x c e p t i o n 。e a i 允许一个j a v aa p p l e t 主 要以三种方式访问v r m l 中的场景: 可以发送一个事件到v r m l 场景中节点的事件入口。 可以收到v r m l 场景中节点的事件出口发出的最新值。 当v r m l 场景中节点的事件出口发出一个事件时,能得到一个通知,激活 c a l l b a c k 方法。 借助于在j a v aa p p l e t 使用e a i ,可以实现j a v aa p p l e t 与v r m l 虚拟空间之间 的相互通信。具体的实现方法是:v r m l 文件可以通过h t m l 文件的标记 或 等包含在h t m l 文件中,而j a v aa p p l e t 可以通过h t m l 文件的标记 等同样包含在h t m l 文件中,这样包含在同一个h t m l 文件的j a v aa p p l e t 和v r m l 虚拟境界可以相互访问。 这包括c r e a t e v r m l f r o m s t r i n g ( ) 方法和c r e a t e v r m l f r o m u r l0 方法伢1 3 1 。这两 个方法是浏览器对象中非常有用方法,利用这个方法,可以在我们眼皮底下动态地 生成v r m l 场景。 1 、c r e a t e v r m l f r o m s t r i n g0 方法 c r e a t e v r m l f r o m s t r i n g ( s t r i n gv r m l s y n a t x ) ,可以用来在s c r i p t 节点中直接 创建一个节点,而不用任何外部的实例。可以简单用来创建我们想要加入到v r m l 场景中的v r m l s t r i n g 。 如需要加入一个绿色的“b o x ,通常v r m l 文档格式是这样的: s h a p e a p p e a r a n c ea p p e a r a n e e m a t e r i a lm a t e r i a l e m i s s i v e c o l o rolo g e o m e t r y b o x ) 1 2 硕士论文基于协调数据库的w e b 虚拟现实系统交互研究 可以这样做: 1 ) 建立一个s t r i n g 变量 s t rin g g r e e n _ b o x = “s h a p e “+ “a p p e a r a n c ea p p e a r a n e e “+ “m a t e r i a l m a t e r i a l “+ “e m i s s i v e c o l o r0l0 “+ “) “+ “) “+ “g e o m e t r y b o x ) “+ “ “: 2 ) 使用浏览器对象的c r e a t e v r m l f r o m s t r i n g ( ) 方法把s t r i n g 变量转变为v r m l 节点。这个方法把s t r i n g 变量转为v r m l 节点。 b r o w s e rb = g e t b r o w s e r0 : b a s e n o d e 口v r m l _ b o x = b c r e a t e v r m l f r o m s t r i n g ( g r e e n _ b o x ) : 3 ) 通过路径把s c r i p t 节点中的b a s e n o d e v r m l _ b o x 传送到v r m l 场景中。如: r o u t et o u c h e d i s a x t i v et os c r i p t t o u e h e d r o u t es c r i p t a d d b o xt os c e n e a d d c h il d r e n 于是,当单击v p 4 k 场景中特定的传感器时,就可在场景中动态的生成一个绿色 的b o x 。 2 、c r e a t e y r m lf r o m u r l0 方法 c r e a t e v r m l f r o m u r l 0 方法的使用方法和c r e a t f r o m s t r i n g ( ) 方法相似,不同的 是c r e a t e v r m l f r o m s t r i n g o 方法将要加入的场景在场景中预先编写好,而 c r e a t e v r m l f r o m u r l0 方法则是将一个w r l 文档由u r l 读入场景。 c r e a t e v r m l f r o m u r l ( s t r i n g u r l ,b a s e n o d e n o d e ,s t r i n g e v e n t ) ,可见这个方 法具有3 个参数:第一个是s t r i n g 数组,用来存放可以检索的u r l 表,和其他使用 u r l 的节点一样可以按最佳的顺序引用u r l 。第二个是b a s e n o d e 的实例,这个必须 是提前存在的合法的v r m l 节点的实例。这个节点是包括由上一节 c r e a t e v r m l f r o m s t r i n g0 方法返回的节点在内的任何节点,通常不仅是s c r i p t 节 点自己而且可以是v r m l 场景中的g r o u p 节点。第三个还是一个s t r i n g 对象,是特 定的e v e n t i n 事件的名称,这个e v e n t i n 事件是我们要发送到b a s e n o d e 节点中的 a d d c h il d 、r e m o v e c h il d 事件的一种。 c r e a t e v r m l f r o m u r l0 还有另外一种形式c r e a t e v r m l f r o m u r l ( u r l ,c a ll b a e k ) , 这种形式有两个参数,第一个与上的u r l 的意义相同,第二个是c a l i b a c k 参数, 它是检测新的节点是否完全下载结束。为了能够知道节点是否完成下载,我们需要 行进如下的步骤: 1 ) 实现e v e n t o u t 的检测( o b s e r v e r ) 2 ) 在调用c r e a t e v r m l f r o m u r l ( ) 方法前,关联一个要获得这个事件的节点的事 件句柄。 r o o t n o d e g e t e v e n t o u t ( “a d d e h i l d r e n _ c h a n g e ,) a d v i s e ( t h i s ,n u l l ) : 3 ) 实现c a l l b a c k 方法,这个方法当我们的w r l 文档被下载并添加到场景中时 便马上被调用。 p u b li cv o i dc a ll b a c k ( e v e n t o u tv a l u e ,d o u b l et i m e s t a m p , o b j e e t d a t a ) 在此实现要操纵新节点 3 、运用d r o p s e n s o r 节点的拖放功能实现动态生成 d r o p s e n s o r 节点是c o r t o n as d k 中的一个扩展节点,支持在c o r t o n a 浏览器中 实行拖放的功能。d r o p s e n s o r 节点产生基于一个指定设备的输入事件,获取要拖进 3 d 窗口的对象的u r l 。 d r o p s e n s o r 节点的描述 d r o p s e n s o r e x p o s e d f i e l ds f b 0 0 1 e n a b l e dt r u e e v e n t o u ts f v e c 3 fh i t p o i n t e v e n t o u ts f v e e 3 fh it n o r m a l e v e n t o u ts f v e e z fh it t e x t u r e e v e n t o u ts f t i m ed r o p ti m e e v e n t o u tm f n o d en o d e c h a i n e v e n t o u tm f s t r i n gu r l ) e n a b l e d :说明这个s e n s o r 是否支持当前指定设备的输入。 h it p o i n t :被释

温馨提示

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

评论

0/150

提交评论