您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 企业文化 > 开放式虚拟环境实验平台的设计与初步实现
第21卷第13期系统仿真学报©Vol.21No.132009年7月JournalofSystemSimulationJul.,2009•3980•开放式虚拟环境实验平台的设计与初步实现王志良1,石琳1,李志刚2(1.北京科技大学信息工程学院,北京100083,2.唐山学院计算机科学与技术系,唐山063000)摘要:分析了具有通用性的开放式虚拟环境实验平台的所需功能的基础上,提出了平台的体系结构,并且详细介绍了此平台的核心部分-----面向视景仿真的虚拟环境平台的结构以及实现过程中涉及到的关键技术:包括面向对象设计思想,自定义脚本技术,模型导入技术,碰撞检测技术等。采用面向对象的方法进行设计,利用第三方软件完成模型构建,以C++为底层开发语言,利用DirectX实现了虚拟环境的渲染,并对此平台进行了测试,将其应用于虚拟室内环境漫游。关键词:虚拟环境;视景仿真;自定义脚本;碰撞检测;DirectX中图分类号:TP314文献标识码:A文章编号:1004-731X(2009)13-3980-05DesignandImplementationofOpenVirtualEnvironmentPlatformWANGZhi-liang1,SHILin1,LIZhi-gang2(1.InformationEngineeringCollege,UniversityofScienceandTechnologyBeijing,Beijing100083,China;2.DepartmentofComputerScienceandTechnology,TangshanCollege,Tangshan063000,China)Abstract:Mainfunctionsofanopenandgeneralvirtualenvironmentdevelopplatformwereintroduced.Architectureandthekerneloftheplatform--VisualSimulationOrientedvirtualenvironmentplatformwereproposed,includingitsstructureandsomekeytechniquesduringimplementation:Object-Orienteddesignthought,selfdefiningscripttechnology,modelimportandcollisiondetection.TheimplementationtakesC++aslanguageandDirectXasgraphicalrenderingAPI.Anexperiment--walkthroughinavirtualapartmentwasusedtotesttheplatform.Keywords:virtualenvironment;visualsimulation;selfdefiningscript;collisiondetection;DirectX引言虚拟现实(VirtualReality)是近几年来十分活跃的技术领域,是继多媒体后另一个在计算机界引起广泛关注的研究热点。从本质上讲,虚拟现实就是一种先进的计算机用户接口,通过给用户同时提供诸如视、听、触等各种直观而又自然的实时感知交互手段,最大限度的方便用户的操作,从而减轻用户负担,提高整个系统的工作效率[1]。根据VR应用对象的不同,其作用可谓多种多样,例如将某种设计构思可视化;实现逼真的遥现场操作;任意复杂环境下的廉价模拟训练等。然而各领域的应用都离不开虚拟环境的开发,设计一个成功的虚拟环境是极其复杂的工作,它对于软件开发环境提出了极高的要求。很难想象有一个新的应用系统从基本的代码开始进行开发会是什么样子。有关虚拟现实的开发平台,近年来国内外进行了许多研究,而且国外已经有了一些相对成熟的商业产品。例如Sense8公司开发的WTK[2](WorldToolKit)是用C语言开发收稿日期:2007-11-27修回日期:2008-03-12基金项目:国家自然科学基金(60573059);北京市重点学科建设项目(XK100080537)作者简介:王志良(1956-),男,河南周口人,教授,研究方向为人工心理,人工智能,机器人;石琳(1981-),女,河北泊头人,回族,博士,研究方向为人工心理,虚拟现实;李志刚(1979-),男,河北唐山人,硕士,研究方向为人工智能。的面向对象的VR开发函数库,可运行于包括PC机在内的各类硬件平台;由GeminiTechnology公司开发的GVS(GenericVisualSystem),其特点是以较少的编程就能实现实时可视化模拟;由Dimension公司开发的SuperscapeVRT3[3](VirtualRealityToolkit)是一个较为完整的VR系统开发环境,它采用图形用户界面,易于使用;由Division公司开发的dVS[4],既支持用C语言进行开发,也可用于Division公司的Amaze开发环境。利用Amaze,用户不用编写C/C++语言代码就可以完成虚拟环境的仿真。国内对于这方面的研究起步较晚,但也有一些大学取得了一定的研究成果。例如北京航空航天大学虚拟现实与可视化新技术研究室开发了虚拟北航校园项目,并设计实现了虚拟环境漫游平台[5];清华大学智能技术与系统国家重点实验室开发了虚拟现实软件开发平台VRMagic[6],主要将其应用于生物大分子可视化;上海交通大学CIM所也自主开发了VRFlier平台[7],主要将其应用于虚拟设计。这些开发平台针对不同的应用领域及目的,在一定程度上提高了虚拟现实应用系统的开发效率,但也存在一定问题,如它们基本上都是从实现的角度来辅助用户完成相关的VR应用系统的开发,对用户的要求还比较高;另外,有的平台价格昂贵,最为重要的原因在于,由于对这些平台的核心模块不了解,很难在此基础上进行二次开发。因此,针对以上平台存在的问题,并且结合目前本实验室内的各研究方向及相关内容,为避免不必要的重复性劳第21卷第13期Vol.21No.132009年7月王志良,等:开放式虚拟环境实验平台的设计与初步实现Jul.,2009•3981•动,使每个小组的主要精力都分别放在核心内容的研究上,不需为实验平台的构建而担心,从而提高工作效率,使各届学生工作具有延续性,本文提出为大家提供一个通用的开放式的虚拟环境实验平台,使新的应用或者测试可以在已有的平台基础上进行。然而,“大而全”的系统不现实,也没有必要,本文按照“有限目标,重点突出”的指导思想,结合实际需求,明确了实验平台的基本功能,根据功能提出了其体系结构的设计方法,以C++为开发语言,DirectX为图形接口,完成了此实验平台的初步实现。1功能介绍本平台的根本设计目的就是可以灵活自由地构建虚拟环境,而一个虚拟环境是否逼真,取决于人的感官对环境的主观感受,人对环境的感知主要是通过视觉,听觉,触觉等。心理学家称,人从外界感知的信息中大约有80%是通过视觉得到的[8],所以,一个虚拟环境的好坏主要取决于其视景生成系统的好坏。因此,基于以上分析,又根据当前流行的虚拟现实开发平台的功能分析与优劣比较后,总结出了本平台的核心功能以及围绕核心展开的其它基本功能如下:(1)可实现逼真视景的仿真(核心功能)(2)可支持第三方软件建模:即可以充分利用当前主流的建模软件所建立的模型,包括静态模型和动态模型(骨骼动画);(3)可实现场景编辑透明化:即用户无需改变甚至了解内部操作,只需进行简单的场景编辑,就可以得到具体的虚拟场景;(4)可实现用户定制渲染条件:例如,用户可自定义灯光,雾等特殊效果,并将其应用于虚拟环境;(5)可扩展性及接口简单易用:用户可将此平台很好地与新的应用程序进行结合,从而扩展软件系统的整体功能。2体系结构在明确平台功能后,设计实现平台的关键就是对平台结构进行整体规划,然后分步实施。逻辑上讲,整个平台体系如图1所示.本文所述部分属于平台的前期开发,即图中左下部分,视景仿真平台的开发。在这一部分的基础上,用户可根据具体需求通过二次开发来编写虚拟现实应用程序,经过进一步扩充可使各种仿真在网络上运行,并支持当前流行的分布式交互仿真标准。底层的基础平台搭建完成后,可以进一步开发上层的可视化开发TOOLBOX,它可为用户提供友好的,具有高级功能的图形用户界面,借助它用户可以更加高效地完成虚拟现实应用程序的开发,甚至可以不需要编程。图1虚拟环境实验平台系统结构3视景仿真虚拟环境平台的结构设计视景仿真虚拟环境平台是整个系统的核心,它的搭建起着至关重要的作用。其设计既要考虑使平台具有较好的通用性,可以描述复杂的虚拟场景,同时又能满足性能需求。3.1平台模块设计本文采用模块化设计,视景仿真虚拟环境平台的模块间交互如图2所示:图2视景仿真虚拟环境平台的模块间交互结构“脚本分析模块”向其他各模块提供对脚本文件信息进行分析的功能支持。其主要工作是读取脚本文件,分析其中的信息,把分析结果传递给使用该模块的其他模块。本系统使用的是自定义脚本,其目的是为了实现核心功能中提到的场景编辑透明化,该脚本格式与C语言相仿,并且命令个数较少,语义清晰,简单易用。“模型导入与管理模块”的职责是将模型导入模型池并对模型池进行管理。该模块接受“场景生成及显示模块”的控制信息。“场景生成及显示模块”的主要职责是生成虚拟场景并将其正常显示。该模块需要使用“脚本分析模块”分析脚本信息,然后根据相关信息使用“模型导入与管理模块”取得模型对象并将其组合搭建为最终的虚拟场景。另外,该模块还要接受“用户控制接口模块”的请求对场景或者显示设置做出第21卷第13期Vol.21No.132009年7月系统仿真学报Jul.,2009•3982•相应调整,并更新显示整个场景。“用户控制接口模块”主要用来提供系统的对外接口,供二次开发人员使用,同时该模块还要翻译用户控制信息,把该信息转换为相应的场景控制信息,并提交给“场景生成及显示模块”。3.2系统流程设计系统整体的工作流程大致如图3所示,平台首先利用第三方软件,当前流行的建模软件3DMAX或MAYA进行建模,然后利用微软提供的导出插件(PandaDXExport6.dle),将模型导出为.X文件,作为最基本元素被读入系统,根据主程序脚本和场景构造脚本文件中所含信息构造场景,而后进行渲染,并根据用户具体定制情况进行场景的最终显示。主程序信息脚本和场景构造脚本都是文本文件格式(TXT)的自定义脚本文件,用户可以只需通过简单编辑这两个脚本文件,无需编程就可以构造具体的虚拟环境。前者主要包括了一些程序初始化信息,系统只包含一个;后者针对不同的场景具有不同的脚本文件,根据场景的多少,系统可包含多个场景构造脚本文件,在后面的测试中会有具体说明。有关自定义脚本文件的具体格式及内容在下节会有详细介绍。图3视景仿真虚拟环境平台的实现流程4视景仿真虚拟环境平台的实现4.1面向对象设计思想本文利用面向对象的编程思想,C++为编程语言,DirectX为图形接口初步实现了平台的基本功能。DirectXGraphics[9]是Microsoft公司推出的一个三维计算机图形开发库,提供了从模型数据生成到三维渲染着色各个阶段的功能支持[10]。目前,该平台由以下类来支持,如表1所示。本平台的类结构主要参照了系统设计中对各个模块的划分。从模型、灯光到场景都有相应的类与之对应,这种以独立的实际对象进行抽象类设计的方法可以减小类之间的耦合性,提高内聚性。另外,在这些类的设计中充分利用了C++语言的继承与多态等面向对象的设计方法,使得最终结果具有很好的可扩表1平台支持类库类名含义CDXGraphics图形接口类CDXScene场景类CDXModel基本模型类CDXModelSkin动画模型类CDXModelMesh网格模型类CDXCamera相机类CDXLight灯光类CDXInput用户输入控制接口类CDXLayer界面类CDXLayer
本文标题:开放式虚拟环境实验平台的设计与初步实现
链接地址:https://www.777doc.com/doc-916704 .html