(计算机软件与理论专业论文)vrml可视化集成编辑环境的设计与实现.pdf_第1页
(计算机软件与理论专业论文)vrml可视化集成编辑环境的设计与实现.pdf_第2页
(计算机软件与理论专业论文)vrml可视化集成编辑环境的设计与实现.pdf_第3页
(计算机软件与理论专业论文)vrml可视化集成编辑环境的设计与实现.pdf_第4页
(计算机软件与理论专业论文)vrml可视化集成编辑环境的设计与实现.pdf_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

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

文档简介

v r i v l l 可视化集成编辑环境的设计与实现 摘要 一j 虚拟现实造型语言( v r m l ) 是一种描述可交互的三维对象和场景的文件格式。 为了能够创建动态的虚拟场景,并且不必再面对大量枯燥的代码和复杂的语法, v r m l 文件的编写者们迫切需要一种所见即所得( f y s i w y g ) 的丌发环境。1 7 我们在t g s ( t e m p l a t eg r a p h i c ss o f t w a r e ,i n c ) 的i v f ( i n t e r a c t i v ev i s u a l f r a m e w o r k ) 框架下采用s c e n eg r a p h v i e w e r 结构,设计和实现了v r m l 可视 化的集成编辑环境。我们构造了一个节点树视图,定义并实现了v r m l 规范中的 各种节点,用来描述v r m l 文件的场景图层次结构;构造了一个路由语句视图, 实现了v r m l 规范中的事件路由机制,用来对路由语句进行可视化的编辑:还构 造了一个3 d 场景主视图,用来显示v r m l 文件所描述的三维场景并对其迸行操 作。 本文创新之处在于对v r m l 场景图以“节点一域一域值”的树形显示与编辑, 提出了对v r i l 路由语句的可视化编辑,从而实现了对动态v r m l 场景的编辑。从 而,成功地将静态场景与路由语句的可视化编辑结合起来。 两北- 人学计算机科学系预士研究生学位论文 j i a b s t r a c t v i r t u a l r e a l i t ym o d e l i n gl a n g u a g e ( v r m l ) i saf i l e f o r m a tf o r d e s c r i b i n gi n t e r a c t i v e3 do b j e c t sa n dw o r l d s i no r d e rt oc o n s t r u c t d y n a m i ca n dv a r i o u sv i r t u a ls c e n e sa n dn o tt of a c ew i t hl o t so fc o d e sa n d c o m p l e xs y n t a x ,v r m lp r o g r a n n e r s u r g e n t l y n e e daw y s i w y g d e v e l o p i n g e n vir o n m e n t w e d e s i g n a n d i m p i e m e n t t h ev i s u a l i z e dv r m l e d i t o rw i t h i v f ( i n t e r a c t i v ev i s u a lf r a m e w o r k ) a n ds c e n eg r a p h v i e w e ra r c h i t e c t u r eo f t e m p l a t eg r a p h i c ss o f t w a r e ,i n c w ec r e a t eat r e ev i e wt od e s c r i b et h e s c e n eg r a p ha n di t sh i b e r a r c h y ,a n di m p l e m e n ta l lt h en o d e sd e f i n e di n v p l 9 7 w em a k ear o u t ev i e wt oi m p l e m e n tt h ee v e n tr o u t i n gi “e c h a n i s mi n o r d e rt oe d itr o u t ec o m m e n t w es ti11c o n s t r u c ta3 ds c e n eg r a p hv i e wt o d i s p l a ya n dh a n d l ew i t ht h e3 ds c e n e sd e s c r i b e db yv r m lf i l e s o n ei n n o v a t i o ni st o d i s p l a ya n de d i tv r m ls c e n eg r a p hb y “n o d e f i e l d f i e l d v a l u e ”t r e e d i a g r a m t h e o t h e ri st o p r e s e n t t h e v i s u a l i z a t i o nf o rr o u t ec o m m e n t t h u s ,w es u c c e e di n c o m b i n a t i o nw i t h v i s u a l i z e de d i t i n gf o rs t a t i cs c e n e sa n dr o u t ec o f f l m e n t 所北人学计算机科学系颁i :研究生学位论文 i l l v r m l 可视化集成编辑环境的设计与实现 y 2 9 7 5 互 独创性声明 本人声明所呈交的学位论文是本人在导师的指导下进行的研究 工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的 地方外,本论文不包含其他人已发表或撰写过的研究成果,也不包含 为获得西北大学或其他教育机构的学位和证书而使用过的材料。与我 一同工作的同志对本研究所做的贡献已在论文中作了明确的说明并 表示谢意。 西北大学计算机科学系硕士研究生学位论文 学位论文作者签名:孑j ,蓬 签字日期:2 0 0 2 年5 月2 8 日 v r m l 可视化集成编辑环境的设计1 j 实现 1 上l 日 l舌 根据国际标准i s o i e c1 4 7 7 2 一l :1 9 9 7 ,v r m l ( v i r t u a lr e a l i t ym o d e l i n g l a n g u a g e ,虚拟现实建模语言) 是一种描述可交互的三维对象和场景的文件格 式。v r m l 是w 唧在3 d 形式上的扩展,用户只需事先给普通的网络浏览器安装上 专有的插件就可以实现网络上的3 d 浏览。v i m l 技术不断发展,v r m l 的应用日益 流行。与此同时,v 刚l 的开发工具也在不断的发展和进步。目f i j j 的文本编辑器 加浏览器的编辑模式在很大程度上降低了开发效率且严重阻碍了v r m l 语言的进 一步推广和应用。单纯的文本编辑器在用户界面上的局限性使得v r m l 文件的制 作不得不面对枯燥的代码编写。 随着v r l 技术的日益普及和不断发展,人们迫切希望能够有更简单更高效 的手段进行v r m l 文档的编写。随着v r m l 9 7 规范的正式发布,v r m l 语言对3 d 场景 造型的能力越来越强。v r m l 新规范增强了构造静态场景的能力,增强了场景自身 动画以及场景与观察者之间交互的能力,加强了对多媒体的支持在场景里可以播 放声音和影像。相对于此,现有的v r m l 可视化编辑器就显得心有余而力不足,许 多能表现v r m l 新特性的节点都不能够进行可视化的编辑。特别是对于用来实现场 景动画的路由语句,其定义只好人工完成,使得3 d 场景的可视化编辑与路由语句 手工编写不一致。 v r m l 采用与h t m l 兼容的一维方式表示三维动态场景。传统的文本编辑、浏览 验证的方式在很大程度上限制了开发者的思维方式,显然不满足这个动态场景的 丌发需求。纯文本v r m l 编辑器一般不提供三维直接操作用户界面,使得三维场景 的制作必须采用线性方式编码。从认知心理学的角度,该方式不符合人们的思维 特征。开发者需将抽象的空间思维重构为控制流方式,不仅需要对三维空间建模 有整体上和细节上的把握,而且需处理事件的交互控制问题。 我们设计和实现的v r m l 可视化编辑环境试图提供一个所见即所得( w y s l w y g ) 的集成编辑开发环境,使设计者能够在统一的环境中完成三维v r m l 文档的设计编 辑和预览,以提高设计者的工作效率。 本文共分为六章。第一章v r m l 可视化集成编辑环境的设计动机及技术背景 两北人学计算机科学系硕士研究生学位论文 v r m l 可视化集j 芷编辑环境的设计 j 实现 讲述设计和开发v r m l 可视化集成编辑环境的动机,并介绍当前相关的技术背景。 第二章v r m l 可视化集成编辑环境框架设计描述了该可视化集成编辑环境的设计 思想和整体框架。第三章v r m l 可视化集成编辑环境的功能描述介绍该可视化编 辑环境设计的功能,着重介绍节点树视图以及路由视图的功能。第四章v r m l 可视 化集成编辑环境的实现通过代码描述了如何用程序实现些重要、关键的设计 思想以及功能。第五章开发过程中的经验和不足总结了开发中的一些心得体会, 并且对所开发的编辑环境的不足之处做了归纳。第六章未来工作在论文的最 后,我们对以后的工作方向进行前瞻性的介绍。 两北丈学计算崩l 科学系硕士研究生学位论文 v r m l 可视化集垃编辑环境的设计j 实现 第1 章v r m l 可视化集成编辑环境的 设计动机及技术背景 1 1虚拟现实v r 与虚拟现实建模语言v r m l 虚拟现实( v i r t u a lr e a l i t y ,v r ) 是计算机生成的3 d 仿真环境,在这个环 境中用户既可以浏览3 d 场景,也可以对场景中的物体进行各种操作。虚拟现实 的基本特征可以概括为:沉浸( i m m e r s i o n ) 、交互( i n t e r a c t i v e ) 和想象 ( i m a g i n a t i o n ) 。对于我们,就在于如何运用计算机技术使这个虚拟场景在视觉、 听觉、触觉上都像是真实的,在虚拟世界中可以随意漫游、和3 d 物体实时交互, 感觉就像是在真实的世界中一样。虚拟现实中的一项最基础也是最关键的技术就 是创建和维护虚拟世界中的3 d 物体的模型,这项技术的深入发展,能够更生动、 逼真地描述虚拟世界。 虚拟现实技术是当前十分活跃的计算机研究领域之一,而虚拟现实建模语言 ( v i r t u a lr e a l i t y m o d e l i n gl a n g u a g e ,v p j l ) 也正是一个近几年随着i n t e r n e t 等技术发展起来的新技术,能够在w e b 页面上表现3 d 场景同时又与多媒体通讯、 i n t e r n e t 、虚拟现实领域密切相关。v r m l 提供了一种高效的描述简单和复杂三 维对象和场景的文件格式,是w w 在3 d 形式上的扩展,用户只需事先给普通的 网络浏览器安装上专有的插件就可以实现网络上的3 d 浏览。以v r m l 为基础的第 二代w l v w = 多媒体+ 虚拟现实+ i n t e r n e t 把3 d 交互能力带入h t m l 为基础的第一 代w w w = 多媒体+ 虚拟现实中,提供了跨平台发布3 d 网页的能力,增强了网页 的交互性、动态性、连续感以及用户的主观参与性,给用户一种更自然的体验方 式。 v r m l 定义了一种把3 d 图形和多媒体集成在一起的文件格式。从语法角度 看,v r m l 文件是显式地定义和组织起来的3 d 多媒体对象集合:从语义角度看, v r m l 文件描述的是基于时间的交互式3 d 多媒体信息的抽象功能行为。在v r m l 标 准出现以前,各种v r 系统以及3 d 文件格式就已经被设计和实现出来许多v r 的软 件包也已经被开发和正在应用中,例如:v r e a m ,s u p e r s c a p e ,s e n s e 8 w o r t d t o o l k i t 等等。不同的v r 系统仅使用自己的文件格式描述和存储3 d 虚拟场 j 西北大学计算帆科学系硕士研究生学位论文 v i l m l 可视化集成编辑环境的设计j i 宴现 景,这些文件格式表现在句法上、概念上是完全不同的,造成了相互之间的数据 格式相互转换的可能性很小。w w w 对3 d 虚拟现实世界的描述缺乏一种标准,v r m l 的出现恰到好处地填补了这个空白。用v r m l 柬描述3 d 的w w w ,是出于它具有以下 三大特色:一是v r m l 的访问方式是基于客户服务器模式的,实现了平台无关性。 服务器提供y v r m l 文件及支持资源( 图像、视频、音频等) ,客户通过网络下载 v r m l 文件,并且通过本地平台上的v r m l 浏览器访1 司3 d 的虚拟场景。二是v p n i l 不但 能够描述静态和动态的3 d 对象,而且可以通过包含关系和超链接将对象和其他场 景组织成层次性的结构,利用这种层次性的文件可以创建任意太的虚拟现实场 景。理论上讲,v r m l 浏览器应该能够处理数亿个对象组成的分布在i n t e r n e t 上的 场景。并且由于网络性能差异,v p & i l 浏览器为了提高性能而降低图像或仿真质量, 使其在高、中、低档的机器上都能工作的得心应手。三是v r m l 提供的技术能够把 2 d 、3 d 、文本和多媒体集成为统一的整体。当把这些媒体类型、脚本描述语言以 及i n t e r n e t 的功能结合在一起,使v r m l 在支持传统2 d 界面的同时,产生种全新 的交互式应用,将界面扩展到更深层次的时间和空间中。 1 2 设计动机 为了提供对三维世界更加完善的描述能力,逐渐出现了些v r m l 开发工具。 从1 9 9 5 年秋季s g i 公司推出的第一个v r m l 造型工具w e b s p a c ea u t h o r 至0 目前各具 特色的v r m l 建模软件,v r m l 编辑环境经历了纯文本开发向可视化开发的转变。由 于v r m l 采用a s c i i 文本格式来描述3 d 世界,最简单、直接的文本编辑器加浏览器 的编辑模式对初学者很适用,但在很大程度上降低了开发效率:用户必须在文本 编辑器中编写v r m l 的代码,写好之后需要在v r m l 浏览器中观察所构造的三维世 界的实际效果。如果需要调整就必须返回文本编辑器中进行修改,之后还要再到 测览器中观察修改后的效果,过程十分繁琐,v r m l 文件的制作人员不得不面对枯 燥的代码编写。由于v r m l 本身是纯文本的,但描述的又是3 d 场景,它不符和人f 1 的认知规律:程序员面对的是一维的代码,在头脑中又要把那些文本和虚拟空牺j 的3 d 模型联系起来,需要对3 d 世界的框架有着整体上和细节上的把握。随着所构 造环境的复杂化,用户感到仅仅利用v r m l 规范的语法来描述3 d 虚拟场景是远远不 够的,用户迫切需要使用可视化开发工具来提高他们构造3 d 虚拟场景的效率和速 两北大学计算机科学系硕士研究生学位论文 4 v r m l 可视化集成编辑环境的设计与实现 度。 当前的v r m l 造型系统中,交互技术主要使用2 d 鼠标和键盘来实现,2 d 鼠标是 造型过程中集合数据输入和拾取的主要设备。v r 技术的发展提供了一种新的人机 交互方式。3 d 交互、触觉感知、语音识别、手势识别等技术均可以应用在造型技 术中,它能提供一种快速、直观的交互方式。随着多通道用户界面技术不断发展, 基于多功能笔式交互的用户界面、基于虚拟手交互的用户界面 8 都得到了深入 研究,目前已经设计和实现了基于虚拟手交互的v r m l 造型工具。这些交互手段无 疑会增强3 d 交互的灵活性,使用户对其创建的3 d 物体及3 d 虚拟场景的操作更加自 然( n a t u r a l ) 、直接( i n t u i t i v e ) 。很遗憾的是该系统只是实现j v r m l 语言中 最基本的节点和一些常用操作,直接影响到创建出来的v r m l 虚拟场景的真实性、 动态性以及可交互性。随着用户界面的不断发展,迫切提出了对v r m l 的造型工具 完善性的要求。 v r m l 2 0 规范正式发布之前,v i 瑚l i 0 描述的是一个静态的、毫无变化可言的 3 d 世界。v r m l 2 o 最大的特性在于它不但增强了构造静态场景的能力,还新增了 交互的能力( 新增了感应器节点) 、支持动画的能力( 新增了插值节点) 、提供原 型的能力( 新增了原型节点) 以及描述语言的能力( 新增了脚本节点) ,特别是 利用路由语句来实现事件路由机制,给v r m l 提供了动态改变3 d 场景图的能力。随 着v r m l 9 7 的正式发布,v r m l 语言对3 d 世界造型的能力有很大提高,特别是描述动 态3 d 场景的能力越来越强。然而,对v r m l 可视化编辑环境的研究明显滞后于v r m l 的发展。很多v r m l 编辑环境不支持新增节点。特别是目前大部分的v r m l 造型工具 不支持路由语句的可视化编辑( 例如:r e n d e r s o f tv r m le d i t o t ) ,对路由的定 义只好手工完成,从而使想构想复杂的动态3 d 虚拟场景的用户必需要深入了解 v r m l 的语法、通晓v r 儿所有的内部细节。这些对于那些v r m l 知识掌握不全面的用 户来说,快速构造逼真、动感的3 d 世界几乎是遥不可及的。v r m l 9 7 规范中新特性 的出现,对v r m l 集成编辑环境,特别是对动态场景的可视化编辑提出了更高的要 求。 两北大学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计与实现 1 3 技术背景 1 3 1 v r m l 9 7 体系结构 根据国际标准i s o i e c1 4 7 7 2 1 :1 9 9 7 ,v r m l ( v i r t u a lr e a l i t ym o d e l i n g l a n g u a g e 虚拟现实建模语言) 是一种描述可交互的三维对象和世界的文件格 式。v r m l 最早开始于2 0 世纪9 0 年代初期。1 9 9 4 年3 月在同内瓦召开的第一届例 大会上,首次正式提出了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 o 的基础 上进行了很大的补充和完善。它以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 o 基础进行上进行了少量的修正。 节点 v r , v l 文件包含描述空间中造型及其属性的节点,这些节点是v r m l 的构件。 节点能够描述造型、颜色、光照、视点以及造型、动画定时器、传感器、内插器 等的定位和朝向。节点一般包括节点类型、域和域值。在v p j “l 9 7 规范中规定了 5 4 种节点类型,按照它们所描述的对象功能和行为,大致可以分为以下几类: 一编组节点( g r o u p i n gn o d e s ) :锚节点( a n c h o r ) 、公告牌节点( b i l l b o a r d ) 、 碰撞节点( c o l l i s i o n ) 、组节点( g r o u p ) 、变换节点( t r a n s f o r m ) 一表现节点( a p p e a r a n c e ) :表现节点( a p p e a r a n c e ) 、字体风格节点 ( f o n t s t y l e ) 、图像组织节点( i m a g e t e x t u r e ) 、材料节点( m a t e r i a l ) 、动画组 织节点( m o v i e t e x t u r e ) 、点组织节点( p i x e l t e x t u r e ) 、文本组织节点 ( t e x t u r e t r a n s f o r m ) 一感应器节点( s e n s o r s ) :圆柱感应器节点( c y l i n d e r s e n s o r ) 、平面感应器节 点( p l a n e s e n s o r ) 、接近感应器节点( p r o x i m i t y s e n s o r ) 、圆球感应器节点 ( s p h e r e s e n s o r ) 、时间感应器节点( t i m e s e n s o r ) 、接触感应器节点 ( t o u c h s e n s o r ) 、可视感应器节点( v i s i b i l i t y s e n s o r ) 蠢特殊组节点( s p e c i a lg r o u p s ) :在线节点( i n l i n e ) 、细节程度节点( l o d ) 、 西北大学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计0 实现 丌关节点( s w i t c h ) 曩几何节点( g e o m e t r y ) :长方体节点( b o x ) 、圆锥体节点( c o n e ) 、圆柱体节点 ( c y l i n d e r ) 、高度珊格节点( e l e v a t i o n g r i d ) 、挤压节点( e x t r u s i o n ) 、索引面集 节点( i n d e x e d f a e e s e t ) 、索引线集节点( i n d e x e d l i n e s e t ) 、点集合节点 ( p o i n t s e t ) 、球体节点( s p h e r e ) 、文本节点( t e x t ) 插值器节点( i n t e r p o l a t o r s ) :颜色插值器节点( c 0 1 0 r i n t e r p o l a t o r ) 、坐标 插值器节点( c o o r d i n a t e i n t e r p o l a t o r ) 、普通插值器节点 ( n o r m a l i n t e r p o l a t o r ) 、方向插值器节点( o r i e n t a t i o n i n t e r p o l a t o r ) 、位置插 值器节点( p o s i t i o n i n t e r p o l a t o r ) 、缩放插值器节点( s c a l a r i n t e r p 0 1 a t o r ) 曩普通节点( c o m m o nn o d e s ) :音频剪接节点( a u d i o c l i p ) 、有向光源节点 ( d i r e c t i o n a l l i g h t ) 、点光源节点( p o i n t l i g h t ) 、描述语言节点( s c r i p t ) 、形状 节点( s h a p e ) 、声音节点( s o u n d ) 、场光源节点( s p o t l i g h t ) 、三维世界信息节点 ( w o r l d l n f o ) 几何属性节点( g e o m e t r i cp r o p e r t i e s ) :颜色节点( c o l o r ) 、坐标节点 ( c o o r d i n a t e ) 、普通节点( n o r m a l ) 、组织坐标节点( t e x t u r e c o o r d i n a t e ) 一绑定节点( b i n d a b l en o d e s ) :背景节点( b a c k g r o u n d ) 、雾效果节点( f o g ) 、 浏览信息节点( n a v i g a t i o n l n f o ) 、视点节点( v i e w p o i n t ) 域和域值 节点的基本数据包含在域( f i e l d ) 中,每个节点有零个或多个域。域用来 描述节点的本质属性,如c y l i n d e r 节点中包含两个域h e i g h t 和r a d i u s ,分别 定义了圆柱体的高度和底面半径。其他节点还有设置颜色、造型朝向和设置光照 亮度的域。 域值定义如颜色、尺寸和位置等属性,每个值属于特定的域值数据类型。所 有的域类型要么是单值类型,只有单一的值,命名以“sf j ,丌始,包括s f b o o l 、 s f c o l o r 、s f f l o a t 、s f l m a g e ,s f i n t 3 2 ,s f n o d e 、s f r o t a t i o n ,s f s t r i n g 、s f t i m e , s f v e c 2 f 、s f v e c 3 f 等;要么是多值类型,可以有很多值,命名以“m f ”开始, 宫癌m e c o l o r ? m f f l o a t ? m f i n t 3 2 ,m f n o d e 、m f r o t a t i o n ,m f s t r i n g ,m f v e c 2 f ? m f v e c 3 f 等。 两北人学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计i ,实现 d e fu s e 机制 为了能够使得对v r m l 空间中节点重用以及快速地改变,v r m l 提供y d e f 来定 义原始节点节点,提供了u s e 可以多次使用已被定义了的节点。在同一节点中, 所有的实例和原始节点共享相同的节点描述,当原始节点发生改变,所有实例将 随之一同变化。 场景图 t r a n s f o r m r o t a t i o n00l0 6 6 e h ii d r e n s h a p e a p p e a r a n c ea p p e a r a n c ef m a t e r i a lm a t e r i a l d i f f u s e c o l o rl10 ) g e o m e t r yc o n e ) 图1 1v r m l 场景图 场景图是v r m l 3 d 空间的内部表示,节点按照一定规则构成场景图( s c e n e g r a p h ) 。场景图看起来就像一棵被倒置的树,可以有若干个根结点。场景图具 有“节点一域一域值”的形式,具有一种层次关系,是有向无圈图。 事件路由 v r m l 提供了事件路由机制,完全从场景图的层次结构中分离开 1 0 ,使3 d 虚拟场景更具动感。事件路由技术使得人们可以和v r m l 描述的3 d 图形进行交互, 可以使这些3 d 图形随时间延续表示不同的状态及属性。v r m l 中,由于环境的变化、 用户交互以及时间的推移而产生事件。v r m l 采用事件( e v e n t s ) 作为两个不同节点 西北大学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的垃计1j 实现 间传输数据的方式。v r m l 完全遵循事件驱动,事件入口( e v e n t l n ) 是由其它节 点产生的数据信息,用于改变接收节点的状态。事件出口( e v e n t o u t ) 是由于一 些节点的状态发生了改变而输出的数据信息。暴露域( e x p o s e df i e l d ) 集事件 入口与事件出口于一身,既可以接受事件也可以往其他节点输送事件。 图1 2v r m l 事件路出 路由( r o u t e ) 是用来实现事件路由机制的v r m l 语句,是它给v r m l 提供了 动态改变场景图的能力,使节点发生的事件最终传播到目标节点并改变其属性。 通过定义好的路由语句可以将节点发出的事件传播出去从而影响其它节点的属 性。事件一旦产生就会根据路由语句的定义被及时地由发送事件节点的事件出口 传送到接收节点的事件入口中,并且由接收节点处理该事件改变节点的状 态、产生其它事件或是改变场景图的结构。路由总是从e v e n t o u t 到e v e n t i n 上 创建,并且e v e n t i n 和e v e n t o u t 的类型必须精确匹配,冗余的路由会被忽略。 所有事件发出或接收的对象必须有自己的名字,以便这些对象可以被引用。 r o u t e 语法: r o u t en o d e o b j e c t i n a m e e v e n t i nt on o d e o b j e c t 2 n a m e e v e n t o u t 1 3 2 用v r 札构造动态虚拟场景 v p w l 9 7 规范将多项多媒体技术融合,使构造出的3 d 虚拟场景具有声音、动 画、人机交互的能力,生动、逼真的模拟了真实世界。v i g i l 提供了以下两类构 造动态虚拟场景的方法 8 ,9 : 第一类:利用传感器、插值器,通过路由改变对象状态 v r m l 提供了不同功能的传感器( s e n s o r s ) ,如:t i m e s e n s o r 、t o u c h s e n s o r 、 p l a n e s e n s o r 、s p h e r e s e n s o r 、c y l i n d e r s e n s o r 等等。分别提供了虚拟世界对时 9 两北人学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计j ,唼现 问变化以及用户交互的感知。 v r m l 也提供了不同功能的插值器( i n t e r p o l a t o r s ) ,如: p o s i t i o n i n t e r p o l a t o r 、o r i e n t a t i o n i n t e r p o l a t o r 、c o l o r i n t e r p o l a t o r 等等。 当时间流逝、环境变化以及用户交互时,不同效用的传感器被激活而产生v r m l 事件,这些事件通过路由语句被传递到相应的插值器或者其他节点,从而产生动 画或是使得观察者能够操作虚拟空间中的某些3 d 造型。例如:一个跳动的心脏, 就是利用v r m l 的路由语句,将t i m e s e n s o r 节点的f r a c t i o n c h a n g e d 域的输出 绑定到p o s i t i o n i n t e r p o l a t o r 节点的s e t f r a c t i o n 域的输入上,然后再将 p o s i t i o n i n t e r p o l a t o r 节点的域v a l u e _ c h a n g e d 的输出绑定到心脏造型节点的 域s e t s c a l e 的输入中。 第二类:利用其他方法实现的动态场景 在对象上包装电影文件,把电影文件作为一个移动的纹理施加到对象上,由 m o v i e t e x t u r e 节点完成对对象的包装,能使虚拟世界呈现种动态效果。例如: 在虚拟世界中的电视机或是电影屏幕上放映电视节目或是电影,而非一张静止的 图片,将大大增强了虚拟世界的逼真程度。 使用纹理坐标,设置对纹理与对象之间的映射所进行的变换,通过 t e x t u r e t r a n s f o r m 节点移动或旋转纹理,以产生动画效果。例如:要虚拟向上 冒的水泡,可以在几何体上贴一种水泡的纹理,然后使该纹理在纵向坐标上随时 间流逝循环的移动,就会产生冒水泡的动画效果了。 1 3 3 o p e ni n v e n t o r - - 3 d 交互式图形开发工具箱 早在九十年代初,硅谷图形公司( s i l i c o ng r a p h i c s ,i n c ) 就推出它的新一 代三维计算机图形接口o p e ni n v e n t o r 使用o p e n g l 作为底层显示平台准确、迅 速的渲染v r m l 场景。它使得程序员在基于场景结构和对象描述的基础上快速有效 地开发各种交互式的三维图形程序。目前,t g s ( t e m p l a t eg r a p h i c ss o f t w a r e i n c ) 已经获得授权在w i n d o w s 平台之上开发 o p e ni n v e n t o r 的若干版本,包 括w i n d o w s 9 x ,w i n d o w sn t ,w i n d o w s2 0 0 0 等。 v r m l 与o p e ni n v e n t o r 的关系十分密切。o p e ni n v e n t o r 成为v r m l 的技术 基础、v r m l 的一个超集( s u p e r s e t ) 1 1 ,而v r m l j 是一个经过修改并扩充一些 西北大学计算机科学系硕士研究生学位论文 0 v r i v i l 可视化集成编辑环境的设计与实现 网络功能的o p e ni n v e n t o r 三维图形文件格式的子集。 o p e ni n v e n t o r 是目前唯一的直接支持v r m l 规范节点的3 d 交互式图形工具 箱。大多数的图形工具箱在读或写v r m l 文件时要做一些转换工作,这样会造成文 件中信息的丢失。例如:用户创建了一个v r m l 的c y l i n d e r 节点,但是输出时却是 以v r m l 的i n d e x e d f a e e s e t 的方式。这种现象不会发生在基于o p e r li n v e n t o r 的应 用程序中。 最重要的是,o p e ni n v e n t o r 直接支持v p 6 1 l 规范中的“路由”概念。其它 大多数的3 d 图形工具箱并不支持这些概念,意味着触发动画的路由信息将被丢 弃。而o p e ni n v e n t o r 则提供了“域到域连接”技术而支持路由信息的存储,基 于o p e ni n v e n t o r 的应用程序能够在最大限度上保存v r m l 规范中路由信息,将 动态的v r m l 虚拟场景生动、逼真的呈现出来。 1 4v r m l 编辑环境的最新发展 目前,如何用v r m l 造型工具设计更加完善、规模更大的动态虚拟场景的问 题越来越得到一些v r m l 造型工具厂商的重视,因为这对文本编辑器和可视化编 辑器的设计开发者来说,是一次巨大的挑战。 p a r a l l e l g r a p h i c s 公司的v r m l p a d 是一个基于文本的v r m l 编辑器。过去的 图1 3v r m l p a d 编辑器 版本中,v r m l p a d 仅能够手工编辑路由语句,当遇到稍微复杂、大型的动态场景, 对繁杂的路由语句的编辑更是对v r m l p a d 用户专业知识的巨大考验,而且容易出 差错。新版本中,该编辑器实现了一个r o u t i n gm a p 的编辑区域,提供了场景图 j i 西北大学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计与实现 中路由语句的图形化显示,如图1 3 。从事件发出节点到事件接收节点之间用不 同颜色的带箭头的线条表示不同的路径。对场景中的路由语句进行简单编辑,如 对路由语句进行添加、删除、注释等操作。但我们注意到,r o u t i n 【g m a p 和 s c e n e t r e e 对用户是不同时可见,非常的不直观,使用户在操作过程中频繁的翻 页查看路由语句与节点树的对应关系。 p a k s o f t 公司的v r m l b e a n s 可视化开发工具以其易用性在3 d 造型工具中赢 得一席之地。v r m l b e a n s 能够使毫无v r m l 开发经验的用户仅仅考虑3 d 空间的2 d 布局就可以创建虚拟场景。用户所要做的只是将2 d 物体摆放在一个2 d 平面上, 用户可以改变背景色、可以更换地板的质地、甚至还可以给场景设置背景音乐, 然后的所有工作就由v r m l b e a n s 来完成,生成最终的v r m l3 d 场景。新版本的 v r m l b e a n s 在用户界面上更加贴近用户,并且提供了2 0 余种3 d 物体供用户造型 使用,充分体现了其易用的特性。图1 4 就是我在很短时间内利用该软件构造的 v r m l 场景,而该场景的文本代码有8 1 5 行。尽管如此方便快捷,但v r m l b e a n s 有其无法克服的缺陷:一是为了追求易用性,它只能创建静态场景,v r m l 9 7 规 范的新特性几乎没能体现出来;二是仅能对软件事先提供的3 d 物体进行若干次 组合,用户无权创建出自己构思的基本物体,而且没有权利对所提供的物体进行 属性设置,用户创建自由度大大降低。三是它完全屏蔽了v r m l 的树形文件格式, 不能够显示出其内部数据结构,3 d 物体之间的层次关系也无法显示,对于初学 者来说也许很方便,但是对于想构造较大规模场景的用户来说太困难。 两北凡学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计与实现 第2 章v r m l 可视化集成编辑环境 框架设计 首先,我必须要说明的是,我的工作是在9 8 级研究生陈曦的工作基础上完 成的。陈曦的工作初步实现了一些最基本的节点和功能 1 2 ,以及对静态场景的 基本操作。因此,我所作的工作主要有两个大的方面,一个是对节点树的描述能 力从根本上做了修改,使节点树对v r m l 节点和域都能够最大限度的支持,提高 了对v r m l 节点和域的编辑能力,增强了创建静态场景的能力。另一个是将路出 语句表示出来,并且能进行可视化的编辑。这两部分是我工作的重点和创新。 2 1 总体框架设计 2 1 1 v r m l 文件结构剖析 r l i l l l 的蛹景圈结构v l 的路由语句结构 图2 1v r m l 的文件结构 v r m l 文件的结构可以被剖析成两部分,如图2 1 :一部分是用于描述静态 3 d 场景的可以包含所有v r m l 节点的场景图结构;另一部分是用于实现场景动画 的路由语句结构。场景图结构完成对整个3 d 场景的建模,而路由语句结构描述 的则是已存在于场景图中的某些节点之间的特定关系,通过v r m l 事件的发送和 接收来实现动态场景。 西北夫学计算机科学系硕士研究生学位论文 v r i v l l 可视化集成编辑珂j 境的设计与实现 2 1 2 总体框架设计 我们设计的v r m l 可视化集成编辑环境的框架如图2 2 所示。我们设计了三 个主要视图节点树编辑视图、路由语句编辑视图与3 d 场景视图。它们均是 用户可编辑的区域,可以接受来自用户的合乎v p o “l 规范语法的编辑指令。这些 编辑指令用于改变v r m l 文件场景图中的相应节点及其相关属性,由于对文件一 致性的强制维护,最终这些改变同步地反映到三个视图中去,使用户可以进行可 视化的编辑。 读入的v p o “l 文件在节点树中以及路由语句编辑视图中进行编辑,可编辑的 3 d 场景视图将会实时的显示该文件所描述的3 d 场景,这三个环境必须对同一个 v r m l 文件保持一致性。程序员在三个不同编辑环境中的操作体现双向编辑的特 色。两两之间相互影响,最终改变v r m l 文件的文本代码,并存储为v p o “l 2 0 格 式的文件。特别要提到的是针对路由语句的编辑,程序员可以在节点树中定义路 由语句,也可以在路由语句编辑视图中定义及修改路由语句,所有的变化都会动 态的体现在3 d 场景视图中,程序员可以在定义路由后的第一时间看到动画的3 d 场景。可以说,我们设计的v r m l 可视化编辑器的原型已经实现了将静态场景与 路由语句的可视化编辑结合起来,使程序员能够在一个统一、集成的可视化编辑 环境中编辑v r m l 2 0 格式的文件,并能够实时预览。 图2 2v r m l 集成编辑环境的总体框架 该集成编辑环境的主要特点表现在三个方面:一方面是在节点树中使用了面 向对象的组织结构,这种结构不但允许用户动态地组织和维护图形对象及其关 1 4 两北火学计算机科学系硕士研究生学位论文 v r m l 可视化集成编辑环境的设计与实现 系,而且完全支持v r m l 9 7 规范的三维建模方式,还可以全面支持节点共享的 d e f u s e 机制。另一方面在该集成环境中基本实现了所有的v r m l 9 7 规范定义的节 点。在此集成环境前一版本中,仅实现了一些最基本的节点,对未实现的节点只 能在场景视图中显示,但是用户不可对其进行编辑 1 2 。这为用户对静态3 d 场景 的创建提供了强有力的支持。最后一个方面,就是技术上完全支持v r m l 的事件 路由机制。程序员可以在节点树中定义路由语句,也可以在路由的编辑环境中定 义及修改路由语句,所有的变化都会动态的体现在3 d 场景视图中,程序员可以在 定义路由后的第一时间看到动画的3 d 场景。这是实现动态v r m l 场景的可视化编辑 中的核心技术。 2 2 节点树视图的设计 2 2 1 v p - 3 1 l 场景的有向无圈图 严格地讲,v p o i i l 的场景图的数据结构是一个有向无圈图。v r m l 提供了一种 d e f u s e 共享机制,使三维世界中的某些域值完全相同的节点可以

温馨提示

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

评论

0/150

提交评论