第16卷第6期 2 0 0 8年12月 电 脑 与 信 息 技 术 Vol_16 No.6 Dec.2008 Computer and Information Technoloav 文章编号:1005—1228(2008)06-0007—03 虚拟场景动态交互式可视化的研究 袁海波,刘厚泉,吴雪峰 (中国矿业大学计算机科学与技术学院,江苏徐州221008) 摘要:文章介绍了虚拟场景动态交互式可视化的研究现状和面向对象空间数据模型,基于语义的动态交互技术,描述了 VRA4L中动作响应的架构,提出了基于面向对象空间数据模型的虚拟场景的动态建立和可视化,以及空间操作分层处理 的观点,结合项目实例加以验证和实现,最后对已做工作进行总结并展望下一步的工作。 关键词:虚拟场景;面向对象;VRML;分层模型 中图分类号:TP31l 文献标识码:A Research on the Dynamic Interactive Visualization of Virtual Scene YUAN Hai—bo,LIU Hou—quan,WU Xue—feng (School of Computer Science and Technology,China University of Mining and Technology, Xuzhou,Jiangsu,221008,China) Abstract:Dynamic intemctive visualization of virtual scene,object—oriented spatial data model,as well as dynamic interactive technology based on semantics,is introduced in this paper.The process how VRML responds to manipulation is described later.Then the opiion anbout building and visualizing virtual scene dynamically based on object—oriented spatila data model is proposed,SO is dealng witih spafi ̄animpulation by hierarchy mode1.Example,summarization, implementaiton and next work are百ven in the end. Key words:virtual scene;object—oriented;VRML;iehrarchy model O引言 虚拟现实技术的应用日益深人,和其他计算机技 三维空间数据模型包括几何数据模型和拓扑数据 模型,前者关注于空间单个对象的表达,而后者处理的 是空间对象集合中各个对象之间的空间关系。目前对 空间几何数据模型的研究主要有:基于镶嵌的数据模 型,如三角网与格网模型、三维体元模型、八叉树模型; 基于矢量的数据模型,如边界表示模型、线框模型;混 术的结合也越来越密切。分布式虚拟环境、三维地理信 息系统(GIS:Geographic Information System),是虚拟现 实技术分别和网络技术、GIS技术相融合的典型。 但是,目前虚拟现实技术的相关研究侧重于虚拟 场景的逼真表现和高度的沉浸感,对场景内空间实体 的数据模型及动态交互关注相对较少。虚拟场景中的 合数据模型,以面向对象的数据模型为代表;函数型数 据模型等 ”。 空问数据模型是对客观世界的抽象,是空间数据 的组织方式,空间数据结构则是空间数据在计算机中 的物理存储方法。三维空间数据结构可分为矢量和栅 格两种。矢量数据结构适合于不规则几何对象的数据 存储,空间实体被表示成带有属性的点、线、面和体对 大量空间信息,不能够有效地被用户利用;基本的空间 操作仅仅局限于漫游控制,且交互性不高,难以反映操 作对象和其他实体间的联系。解决这些问题,首先需要 采用合适的空间数据模型和数据结构,对海量的空间 数据进行组织、存储;其次,强化对空间实体行为动作 的定义,在空间操作时附加实体间的关联进行约束。 象,实体间的拓扑关系比较清晰。栅格数据结构把空间 实体看作由相同的细小单元块组成,结合使用空间索 1 相关研究 1.1 空间数据模型和数据结构 引系统存储实体的相关数据,主要用于数字高程模型 (DEM)和数字正射影像(DOM)两类数据。 面向对象的空间数据模型中,分析现实世界中同 收稿日期:2008—08—04 作者简介:袁海波(1985一),男,江苏连云港人,硕士,研究方向为地理信息系统、虚拟现实等;刘厚泉(1963一),副教授,研究方向为地理信息系统、虚拟 现实、信息集成等。 电 脑 与 信 息 技 术 2008年12月 一类型或者相似类型的空间实体,并将它们抽象为点、 线、面、体四个基本数据类型。抽象出的数据类型是这 一类型和与该类型有关操作的封装。利用四个基本的 数据类型,可以表示大多数的空间实体,对于复杂的实 体,需要重新进行抽象,得到符合它的数据类型,然后 对其进行描述。例如:在描述地形地貌时,用基本的数 据类型无法实现,只有对地形地貌进行抽象,引人 DEM对象的抽象数据类型,才能够表达多尺度三维真 实地形状况。龚健雅在对矿山空间对象进行分析抽象 时,定义了20种空间地物,抽象归并为13类数据类 型,较好地处理了复杂、特殊的三维对象问题翻。 1.2基于语义的动态交互技术 虚拟场景中的对象,不仅具有几何特征、属性特 征,还包含和其他对象间的关联特征,对象自身的约束 规则等等。纪连恩等提出了基于语义的三维交互技术嘲, 给出了语义对象的多组件体系结构。在体系结构中,一 个语义对象除了包含基本的几何、属性特征外,还包含 交互上下文的语义信息,由图形构件、行为构件、规则 构件、交互构件和应用构件组成一个较为完整的语义 对象。图形构件描述对象的基本特征,行为构件表达对 象的行为,规则构件表达对象的交互规则和所受约束, 交互构件和应用构件分别表示对象可响应的事件和与 对象相关联的任务。 2基于VRML的指令处理框架 利用vRML(vir【ual Reality Model Language)来可 视化虚拟场景,是因为VRML基于对象、结构化强的 特点,另外,VRML提供的节点、原型重用,感知与检 测,脚本程序控制等机制,适用于场景的动态生成和操 作控制。 虚拟场景中的空间操作整体上分为三个步骤:用 户操作(manipulation),事件处理(r ̄sponse and exe— cute),结果反馈(represent)。采用封装技术能够实现事 件处理过程的高度沉浸感和完全透明性,即用户无须 了解事件处理的流程,直接获得相应的反馈结果。结合 VRML的技术特点和相关应用,设计了如图1的框架。 框架中,对指令的处理流程进行了详细设计。输入 (Input)是用户的具体操作,将被发送到解释器Trans— lator)中进行指令的分解、翻译。用户一个动作的输入, 往往是多个处理过程的集合:例如一个开灯的动作,计 算机在接收到指令后,需要将开关转到“可关闭”状态, 房间状态为“明亮”,房间内的其他物体可见等等。因 此,良好的指令分解和翻译,可以提高事件处理的效率 和整个交互任务的完成质量。 图1基于VRML的指令处理框架 在执行模块(Executor)中,传感器(Sensor)负责监 听,将解释器传来的指令流传递到路由(Route)。路由 在传感器的事件出口和指定节点的事件人口间起到跳 转作用,如果遇到复杂的过程,则需要跳转到脚本 (Script)节点的事件人口,利用节点内的程序代码完成 相关的操作。执行模块还需要结合规 ̄lJ(Rule),对程序 的执行进行约束和。 VRML中除了节点构成的体系外,还有事件体系, 它由相互通讯的节点组成。事件有事件人口(eventIn) 和事件出口(eventOut)两种接口类型,事件人口负责监 听和接收外界事件,事件出口则负责向外界发送节点 产生的事件,出口和人口利用路由相连[41。整个指令处 理的过程就是一系列相关的事件链,事件链的头由传 感器或脚本来产生,事件链的结束以对VRML文件中 属性节点(Attribute Node)的修改完成为标志,最后将 新的场景输出渲染。 3虚拟场景动态交互的分层设计 虚拟场景中进行动态交互时,对某个实体进行相 关的操作,首先要改变该实体的几何和属性状态,然后 根据关联特征,改变和其有关联的实体的几何、属性状 态,最后完成整个场景的状态改变和更新。利用面向对 象的空间数据模型,对特定场景中的实体进行抽象,将 抽象出来的数据类型存储于空间数据库中圈。对场景进 行可视化时,从空间数据库里读取空间信息,动态生成 场景。另外,结合基于语义的思想,对场景中的单个实 体进行封装,将它的几何特征、属性特征、关联特征、相 关动作封装在一个模块内,整个三维虚拟场景可看成 多个实体封装模块的集合。当对一个模块进行操作时, 只需要改变该模块以及和它相关的模块状态即可。根 据上述的思想,对虚拟场景进行层次划分:实体模块 层,指令解释、执行层,显示层。在动态交互中,用户在 显示层中的操作被送到指令解释、执行层,解释、执行 层和实体模块层进行通信,结果由实体模块层返回显 示层。具体的结构见图2。 第16卷第6期 袁海波等:虚拟场景动态交互式可视化的研究 指令以后,如果该部件的VRML文件已经存在且无需 重新生成,则直接进行相关数据的修改,使其状态变化 到执行后的效果,并反馈到场景中进行更新。如果需要 重新生成VRML文件,则从存储空间信息的数据库中 图2虚拟场景动态交互的分层设计结构 底层为实体模块层,是虚拟场景中实体对象的集 合,包含个体状态、执行部件和内部规则三个部分。个 体状态是个体的几何特征、属性特征的空间显示。在个 体几何特征的存储上,可以借用矢量数据结构,按点、 线、面、体、复杂对象进行存储。属性特征是空间状态中 的另一重要方面,在对属性特征进行处理时,同样可以 借助面向对象的思想,对属性特征进行抽象,如抽象出 颜色、材质、纹理等基本数据类型。但是目前常见的处 理方法是将属性特征放到专题文件中进行存放。内部 规则是实体自身受到的约束,比如起重机最大起重量 的,在虚拟场景中就不能执行超过最大起重量的 任务。执行部件,是程序控制部分,利用代码实现空间 数据库的读取、VRML文件的生成、修改和内部规则的 比照。 指令解释、执行层负责监听虚拟场景的操作,并将 操作进行翻译、分解,结合虚拟场景当前的整体状态, 将指令分发到不同的实体模块。在指令分发的同时,需 要参照外部规则,即场景中各个实体之间存在的显性 的或者隐性的关联,确保将指令传递到正确的实体模 块。显示层对VRML文件进行渲染显示,对用户的操 作能够及时准确地捕捉并发送至解释、实行模块。当处 理结果完成返回时,接收新的场景,完成场景的更新。 在VRML文件的相关操作中,借用基于VRML指令处 理的框架,完成监听、控制、修改等任务。 4用例 根据分层设计的思想,在起重作业模拟操作训练 软件中进行实现。起重机在进行起重作业时,其每一节 起重臂可以看作个体,其几何特征近似于规则的柱状 体,所以在数据库中存储较为方便。系统的结构图见图 3。解释器对受训者的操作指令进行解释分解,查看当 前起重机的状态,读取起重机各部件之间的牵制和联 系,将指令发送到对应的部件模块执行。部件模块收到 读取信息,生成VRML文件。 图3模拟训练软件系统结构图 如图4所示,在起重作业模拟训练软件中,比如 需要将起重臂的第二节臂伸长5米。首先,读取场景的 整体状态,倘若起重机没有处于工作状态,则显示“不 可操作”。当起重机处于工作状态,解释执行部件查看 和第二节臂相关的部件,有第一节、第三节臂,操作盘 的指示灯,挂钩和挂绳。分别将指令传到这几个部分, 由其模块内部自行计算状态的改变。则各部件反馈回 的结果是第一节臂无变化,第三节臂位置相应上升5 米,控制台指示灯显示第二节臂伸展状态,挂钩和挂绳 的相对位置,在和起重臂所成角度的方向上,移动5米 的距离,完成状态改变。 图4起重作业模拟操作训练软件界面 5结论 本文结合面向对象的空间数据模型,对虚拟场景 中的实体进行抽象,依据不同的数 (下转第45页) 第16卷第6期 于千城:企业数据仓库中元数据的应用研究 图2 MetaStage交叉工具影响分析示例 3结束语 参考文献: [1 Po】oh J,Chang D,Tdbert D,等.彭蓉,刘进译等译.公共仓库元模型 元数据管理是提高数据仓库数据质量的必由之 开发指南 】.北京:机械工业出版社,2004. 路,元数据管理的复杂性及元数据管理的很多内容仍 [2]Marco D.张铭,李钦,等译.元数据仓储的构建与管理【M].北京:机 械工业出版社,2004. 然需要依靠管理制度、流程、其它辅助工具以及人工参 [3]王彦龙.企业级数据仓库 DW)原理、设计与实践【M】.北京:电子工 与来共同完成。 业出版社,2006. (上接第9页)据类型进行存储。参考基于语义的交 参考文献: 互技术,对实体及其相关操作进行封装。利用VRML 【1】符海芳,朱建军,崔伟宏.3D GIS数据模型的研究[J].地球信息科 相关技术,对虚拟场景进行显示,利用对VRML文件 学,2002,4(2):45--49. 的操作,完成动态的交互式的可视化任务。 [2]龚健雅,夏宗国.矢量与栅格集成的三维数据模型[J】.武汉测绘 科技大学学报,1997,22(1):7—15. 在起重作业模拟操作训练软件中,贯穿了文中的 【3】纪连恩,张凤军,付永刚,等.虚拟环境下基于语义的三维交互技 设计思想,效果明显,能够准确地完成训练操作中的各 术啊.软件学报,2006,17(7):1535-1543. 种任务。但是在空间信息显示方面,做得还很不足,这 [4】申蔚,夏立文.虚拟现实技术【M】.北京:北京希望电子出版社, 也是以后进一步研究和实践的重点。争取能够更好地 2002. 利用空间数据库中的信息,在空间信息的展示、空间分 [5]朱庆,林晖.数码城市地理信息系统——虚拟城市环境中三维城 市模型初探【M】.武汉:武汉大学出版社,2004. 析、空间决策等方面,有进一步的突破和提高。