基于X3D的虚拟现实设计与实现方案的研究

上传人:沈*** 文档编号:96907491 上传时间:2022-05-26 格式:DOC 页数:60 大小:2.57MB
收藏 版权申诉 举报 下载
基于X3D的虚拟现实设计与实现方案的研究_第1页
第1页 / 共60页
基于X3D的虚拟现实设计与实现方案的研究_第2页
第2页 / 共60页
基于X3D的虚拟现实设计与实现方案的研究_第3页
第3页 / 共60页
资源描述:

《基于X3D的虚拟现实设计与实现方案的研究》由会员分享,可在线阅读,更多相关《基于X3D的虚拟现实设计与实现方案的研究(60页珍藏版)》请在装配图网上搜索。

1、毕业论文基于X3D的虚拟现实设计与实现方案的研究摘要: X3D是一种正在蓬勃发展的网络三维技术,本文目的是为了探索一个能够实现X3D虚拟现实的设计实现方案,通过系统阐述X3D的发展历程,技术特点,组成和相关知识,然后对比了X3D与其他网络三维技术的不同,最后提出基于X3D的虚拟现实设计与实现方案,对X3D进行充分的探索和验证,寻找一个最优实现方案,从实现原型系统出发,展现整个X3D系统设计过程和实现过程,实现了一个完整的校园地图导航系统,验证所提出的X3D方案的可行性并对其未来进行了展望,为用户使用X3D的设计与实现提供了完整可行性的方法。关键词:X3D;虚拟现实;3D建模 ;XMLVirtu

2、al reality based on X3D design and implementation ofAbstract: X3D is a thriving network three-dimensional technology, this article is designed to explore a possible design of virtual reality X3D implementation, through the development of the system explains X3D, technical features, components and re

3、lated knowledge, and then compares the X3D and other network is different, three-dimensional technology that virtual reality based on X3D design and implementation, on X3D adequate research and validation, look for an optimal implementation, set off from the implementation of the prototype system, r

4、eveal the entire X3D system design process and implementation, implements a full campus map navigation system, verify that the proposed feasibility of X3D and future perspectives, as the user is using the design and implementation of X3D provides the complete feasibility.Keywords: X3D;Virtual realit

5、y;3D Modeling;XML 目 录1 引言11.1研究基于X3D虚拟现实设计与方案的背景11.1.1 相关背景11.1.2 X3D标准推出的目的21.2X3D的定义及其知识基础31.2.1 什么是X3D31.2.3 X3D支持的特性41.2.4 X3D Profile(轮廓)与一致性51.2.5 X3D开发联盟Web3D61.2.6 关于VRML的基础知识61.2.7 关于虚拟现实的基础知识71.3近来国内外X3D课题的研究现状81.3.1 近来国内外X3D课题的研究现状81.3.2 现行研究X3D存在的问题91.4本课题研究要达到的目标112 X3D要解决的几个关键问题122.1 设

6、计中要解决的问题122.1.1 复杂场景的搭建问题122.1.2 场景和动画交互的控制问题122.2 实现过程中所采用的关键技术122.2.1 复杂场景关键技术及其复杂性的研究122.2.2 场景和动画交互关键技术复杂性的研究143 X3D系统设计163.1 X3D设计实现的策略163.2 X3D编程模型及数据结构173.2.1 X3D编程模型173.2.2 X3D的数据结构184 X3D原型系统实现技术194.1 系统软硬件环境194.2 分模块详述X3D原型系统各部分的实现方法194.2.1 办公大楼X3D代码文件头214.2.2 办公大楼X3D代码文件体224.2.3 电教室VRML文件

7、的转换355 结论与展望39致谢40参考文献41基于X3D的虚拟现实设计与实现方案的研究 指导教师: 1 引言1.1 研究基于X3D虚拟现实设计与方案的背景1.1.1 相关背景 Internet飞速发展,互联网已成为人们交流的重要手段,为人们快速获取,发布和传递消息提供重要渠道。现代技术日新月异,Web3D网络三维立体虚拟现实网页技术也在不断发展,从VRML(Virtual Reality Modeling Language)虚拟现实建模语言开始,互联网进入了三维立体网络空间时代。 然而VRML没能一统网络天下,后面陆续出现Atmosphere、Blaxxun3D、Cult3D,Fluid3D

8、,Java3D,Viewpoint,Pulse3D,Shout3D,ShockWave3D、Vecta3D等等。这些技术各具特点,主要应用于电子商务、网络娱乐、远程教育、企业数据可视化等领域,但也带来了标准混乱,互不兼容等问题。 X3D的前身是VRML,VRML的发展一度由于硬件问题带宽问题停滞发展,在1994年推出VRML2.0就没有更新版本了,很多人以为VRML就此消亡,然而1998年底,VRML联盟更名Web3D联盟并在1999年底确定建立X3D统一网络三维标准,2002年宣布草案,2004年8月X3D被国际标准化组织(ISO)批准通过为国际标准ISO/IEC 19775,正式成为国际通

9、用标准。新一代的国际标准X3D(Extensible 3D)的诞生有望统一互联网3D图形软件规范,技术和产品。X3D是可扩展的,任何开发者都可以根据自己的需求扩展其功能,无论是小型3D展示还是广播级应用,X3D将成为大家遵循的规范标准,这样将结束标准混乱,互不兼容的问题,X3D的前途大有所为,X3D必将为网络三维立体虚拟现实技术的发展提供强有力的支持。如下表1-1所示,看见网络三维标准有多么混乱,各种格式的差距区别巨大: 表1-1 几种网络3D技术的比较名称浏览器要求运行平台特点Cult3D 需要插件Win ,MacOS,SunOS,Linux,HP AIX等基于JAVA,文件体积小,图像质量

10、好,不需硬件支持Viewpoint需要插件Win,MacOS基于XML,可伸缩,流式传输,高压缩比Atmosphere需要插件Win,MacOS可连接多用户,实现虚拟社区,光照追踪算法,室内展示效果好,自然重力,碰撞模拟Shout3D不需插件Win,MacOS,UNIX基于JavaApplet,遵循X3D规范Blaxxun3D不需插件Win,MacOS,UNIX遵循X3D规范B3D需要插件Win流式传输Java3D需虚拟机Win,SunOS,MacOS等可以调用VRML场景1.1.2 X3D标准推出的目的X3D作为国际标准受到了各界广泛的关注,支持和期待。X3D并不是一个全新的标准,X3D的一

11、个发展就使VRML组件化,让应用者根据自己的需求对X3D的功能进行割舍,X3D的出现是还为了不同3D内容创作的数据在3D行业不同应用中交流中保持一致性,如在模拟3D引擎,游戏,专业或消费类硬件和移动设备中使用的3D文件,确保数据的耐用性,数据的互可操作性。使用工业化标准XML,使X3D不依赖于任何一个组织,在任何时间都能使用,不受资金和权限限制,可扩展的配置文件定义和组件化的功能设置,适应底层硬件,公开提供源代码且免版税。ISO认证为核心提供规格,扩展和修正,与其他标准组织W3C的活动,包括协会,建立可互操作的XML协议和技术,可扩展允许特定功能可以很容易提供垂直市场应用的补充。W3C发展的概

12、况,可以确保可靠性和X3D的文件和应用程序的一致性每个一致性测试。1.2 X3D的定义及其知识基础1.2.1 什么是X3DX3D一种无需任何授权费用的开放标准的文件格式以及运行架构,使用XML来描述与交换的3D场景和对象。它是一套国际标准化组织ISO认可了的标准,为应用程序网络系统中嵌入实时图形内容而提供存储、恢复及回放的系统,在一种开放式架构中支持各式各样的领域与用户种类,其结构如下图1-1所示:图1-1 X3D的浏览的体系结构 X3D具有一整套丰富的组件化特性,能胜任工程、科学可视化、CAD与建筑、医学可视化、培训与仿真、多媒体、娱乐、教育,以及更多的工作。作为虚拟现实建模语言中演变的明显

13、更成熟、更优雅的X3D标准,可以作为所有应用程序及网络应用程序之间3D数据实时通信开发工作的良好开端。X3D是基于VRML所发展出来的新标准,它继承了来自VRML的经验及血统,并且有着更为强大的能力。现在X3D的存在已经取代了VRML,但它也对现有的VRML内容及浏览器提供了支援,让仍现存的VRML不需经过即可在任何的X3D浏览器,它可以完全的对VRML提供支援。1.2.3 X3D支持的特性 X3D作为一种新的网络三维标准,它整合了XML的关键:Web Services,分布式网络,跨平台、跨应用程序的文件与数据交换,并且支持了很多新的特性,能够支持的特性有以下:(1) X3D支持实时3D图形

14、及可编程渲染 ,可以支持多面体、参数化几何体,多层次变换、灯光、材质、多通道/多级纹理映射、像素与顶点渲染及硬件加速。X3D也支持2D图形,可以用空间化的文本;2D矢量图形;2D/3D使用。(2) X3D支持CAD数据,可以将X3D作为CAD数据转换为一种开放的格式,可供出版和交互式媒体使用。(3) X3D支持动画,X3D可以利用计时器及插补器来驱动连续性动画,输出仿人体动画与变形。 (4) X3D支持空间化的音频与视频,人们可使用可视化的声源映射到场景中的几何体上,图形图像是实时的,交互式的,高质量的,并且3D数据中包括多媒体视频或者音频。 (5) X3D支持用户交互,人们可以用基于鼠标的拾

15、取与拖拽还有键盘输入等操作。(6) X3D支持导航和摄像,用户可以在3D场景中的移动,并且支持碰撞检测,还有靠近与可见性检测使用户能感受真正的虚拟现实。 (7) X3D支持用户定义的对象,用户可以通过创建用户自定义的数据类型来扩展浏览器内置功能,并且具有可扩展性,X3D允许为垂直于市场应用和服务添加组件以便扩展X3D功能,X3D支持组件化,允许轻量级的3D运行核心引擎,使得其更容易适合各种平台。(8) X3D还支持脚本,用户可以通过编程语言和脚本语言动态改变场景,例如用JavaScript连接控制场景。 (9) X3D支持网络,能够整合单一X3D场景和网络上X3D场景的资源;通过超链接的方式对

16、象链到其他场景或WWW上其他资源。 (10) X3D还支持物理仿真与实时通信,仿人体动画,空间地理信息数据,与分布式交互仿真(DIS)协议整合。以上特性看来X3D是全面的先进的非常有前途的一种技术,发展空间广阔。 1.2.4 X3D Profile(轮廓)与一致性在X3D中Profile(轮廓)指对某个应用领域或某个应用级别的一种定义或声明,可以控制应用程序对系统资源的使用,在具体的应用中,我们可以把它理解为应用范围或应用级别或概貌。X3D的组件模块化架构使得可以有各种层次的profile,可以增强虚拟环境沉浸性还有加强它交互能力,专注于市场应用中-由模块化功能(组件)组成的小的可下载的占更小

17、空间-数据的交换格式。以便易于被应用程序和内容开发者理解和实现.一种基于组件的架构支持创建各种不同的能够单独支持的profile。通过添加新的“层次”(level),组件可以单独被扩展或修改,也可以增加 新的组件来引进新的特性。通过这种机制,X3D规范中的一些发展可以很快活动起来,因为一个领域的开发不会拖慢整个X3D规范的进度。基本的X3D轮廓(Profiles)其轮廓结构如下图1-2所示 图1-2 X3D的Profile轮廓图Interchange 是应用程序间通信的最基本的级别声明。它支持几何体、纹理、基本的灯光和动画。其中运行时没有模型被渲染,使得它非常容易整合到任何应用程序中。 Int

18、eractive 通过加入各种传感器节点,实现用户导航和交互,如 PlanseSensor,TouchSensor,加强的计时器和灯光,使得3D环境具有一些基本的交互能力。 Immersive 具有完整的3D图形和交互能力,包括音频支持、碰撞检测、雾和脚本。 Full 所有定义的节点,包括NURBS、H-Anim和地理组件。另外的X3D Profile,正在Web3D联盟旗下的小组开发,如下:MPEG-4 Interactive 是Interactive profile的一个小容量的版本,为广播、手持设备和移动电话设计。 CDF (CAD Distillation Format) 则还在开发中

19、,将CAD数据转换为一种开放的格式,提供出版和交互式媒体使用1.2.5 X3D开发联盟Web3DX3D是由Web3D组织倡导制定的标准,Web3D是一个非盈利的、国际标准化组织,已经进行过VRML 1.0和2.0规范的开发。现在,Web3D协会利用它的广发的工业支持,开发X3D规范,使得应用程序与远程网络和WEB服务之间能够在Web上进行通 信。通过ISO与W3C的良好协调效果,Web3D组织在坚持和扩展它的标准化活动。Web3D组织将会支持一个协作式环境,并推动开放式标准、无需授权费用的基于XML的3D交换格式的开发计划,以及WEB、分布式网络和移动设备上,各种不同创作和表现的硬件和软件环境

20、下,3D场景和对象的表现和通信。1.2.6 关于VRML的基础知识VRML(Virtual Reality Modeling Language)即虚拟现实建模语言。是一种用于建立真实世界的场景模型或人们虚构的三维世界的场景建模语言,也具有平台无关性。本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言。VRML的对象称为结点,子结点的集合可以构成复杂的景物。结点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。VRML不仅支持数据和过程的三维表示,而且能提供带有音响效果的结点,用户能走进视听效果十分逼真的虚拟世界(如简易迷宫、国际象棋)。用户使

21、用虚拟对象表达自己的观点,能与虚拟对象交互,为用户对具体对象的细节,整体结构和相互关系的描述带来的新的感受。如下图1-3所示:图1-3 当时使用Lightscaps等三维软件制作的单纹理VRML场景1.2.7 关于虚拟现实的基础知识虚拟现实(Virtual Reality,简称VR),又称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。概括地说,虚拟现实是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式,与传统的人机界面以及流行的视窗操作相比,虚拟现实

22、在技术思想上有了质的飞跃。虚拟现实设备如下图1-4所示:(图1-4 虚拟现实设备:从左上到右下分别为遥控手柄、感应头盔、数据手套和另一个遥控手柄)一般来说,一个完整的虚拟现实系统由虚拟环境、以高性能计算机为核心的虚拟环境处理器、以头盔 显示器为核心的视觉系统、以语音识别、声音合成与声音定位为核心的听觉系统、以方位跟踪器、数据手套和数据衣为主体的身体方位姿态跟踪设备,以及味觉、嗅觉、触觉与力学反馈系统等功能单元构成。完整的虚拟现实活动舱如下图1-5所示:(图1-5 单人沉浸式虚拟现实活动舱)1.3 近来国内外X3D课题的研究现状1.3.1 近来国内外X3D课题的研究现状 国外研究以Wed3D联盟

23、为领头人,分成工作组分别对X3D的各个方面进行研究,分工详细,成果很丰富。因为成员同意知识产权(IPR)的政策,有效地防止被X3D的通过的任何专利为基础的技术。例如X3D &HTML5工作组,负责X3D在HTML5规范方面的研究。其目标是让使用本地声明和XML为基础的X3D场景支持可缩放矢量图形(SVG)和数学标记语言(MATHML)。X3D医疗工作组,负责医学影像(DICOM)在X3D中的使用研究,使X3D正确的无误的支持三维医学影像图形。X3D移动工作组,负责移动平台的X3D,使基础的X3D正确支持三维图形的移动平台,这是X3D通用性的体现,X3D移动工作组为实现这一目的努力。X3D地球工

24、作组,负责地球空间研究探索世界模式的行为,类似谷歌地球但比其更加真实的研究。如下图1-6所示:图1-6 X3D地球工作组项目示意国内研究X3D的人很少,基本上是以个人为单位去研究,中国在X3D技术方面的研究要落后于西方国家,中国台湾科技大学设计研究所的教授带领学生研究X3D项目,同样只是基础相关知识的研究且研究发展很慢。1.3.2 现行研究X3D存在的问题第一个问题是X3D出现的时间比较短,国内研究的人很少,与X3D相关的著作很少,比较多的是X3D的前辈VRML的著作,对X3D只是略微介绍,其实X3D与VRML有很多不同,却无人有专门的著作;外国的专门的著作也很少,最出色的书是X3D: Ext

25、ensible 3D Graphics for Web Authors,介绍的比较详细,不过由于是英文阅读起来有很多不便。现行研究X3D存在问题的解决方法无他,细心收集总结,还有就是对外国文献的翻译。第二个问题就是创作工具少,X3D发展慢的原因就是因为创作工具太少,而且使用不方便,X3D的创作软件如下表1-2所示: 表1-2 X3D创作软件软件名称开发者X3D-EditWeb联盟BS EditorBitManagementVivaty StudioSwirlX3D EditorPinecoast SoftwareWings3DNendo and Mirai from IzwareBlender

26、http:/www.blender.org/Blender 基金会各个创作软件的优缺点:官方组织软件X3D-Edit使用的是代码编写模式,对创作复杂模型很不方便,而且与SUN公司的Net Beans IDE相结合,如果不熟悉使用该工具进行JAVA编程,创作X3D会有很大困难。如下图1-7:图1-7 X3D-Edit界面BS Editor由BitManagement公司出品也是一种代码编写模式的创造软件,与X3D-Edit有着相同的问题,不能所见即所得。如下图1-8:图1-8 BS Editor界面Vivaty Studio是一种所见即所得的软件,创作比较方便,不过目前版本是bata1.0,其稳

27、定性和功能完善性有待测试和完善,如下图3:图1-9 Vivaty Studio界面Wings3D是一个自由开放源码X3D/VRML创作环境,也是一种所见即所得的创造软件,由于其创作方法比较复杂,很少人使用。Blender国际上比较有名的开源的三维软件,它也提供了X3D的插件和出口,不过它比较依赖于插件提供的功能,否则复杂模型无法完整输出。SwirlX3D Editor是Pinecoast软件公司出品的X3D/VRML创作软件,也是代码编写模式,且使用起来还没上两种专业和方便。1.4 本课题研究要达到的目标由于X3D技术随着互联网的进步其自身也在不断发展,从ISO/IEC 19775:2004

28、到ISO/IEC 19775-1.2:2008,标准不断更新,开发工具和方法也日新月异,随着带宽的不断增长X3D在不断的成长,为各大知名公司所采用,如Autodesk ,Adobe等公司均保持着与X3D虚拟现实技术紧密联系,或有相关接口,或有相关产品发布,所以基于X3D的虚拟现实设计和实现方案成为了迫切需要研究的课题。本文的目的就是通过分析当前X3D的发展情况,探索X3D的技术特点,探索和比较X3D性能和优劣势,研究X3D虚拟现实的设计和实现,通过原型系统的设计和实现,从而了解X3D的构建方法,实现虚拟现实,为研究X3D探寻一条简单易行的方案,为用户发展X3D技术提供依据,并对X3D的发展前景

29、进行探讨和展望。2 X3D要解决的几个关键问题2.1 设计中要解决的问题2.1.1 复杂场景的搭建问题很多X3D都是代码方式编写,对复杂场景搭建十分麻烦而且工作量大速度慢,而相关的以所见即所得方式编写X3D的软件,其操作性,贴图和场景重现性都有各自的缺点,不像行业软件3DS Max ,MAYA那样方便这样对于复杂场景的搭建,熟悉行业软件3DS Max ,MAYA的人对这些X3D编辑软件都要一个适应过程,中间也有不少问题需要解决2.1.2 场景和动画交互的控制问题 因为虚拟场景实现的固有难度以及各种相关技术的制约,目前所开发 的虚拟现实场景,大多存在交互性弱、沉浸感不强、实验过程由插值动画完成等

30、诸多问题, 没有很好地体现通过浸没感(Immersion)来完成体验或者相关技能的体验这一场景设计目标,不能反映现实世界的本来面目,致使在虚拟现实场景中的体验效果不甚理想。 2.2 实现过程中所采用的关键技术2.2.1 复杂场景关键技术及其复杂性的研究校园等场景是复杂场景,主要利用二维模型来表现场景中的物体,用二维扫描仪及建模上具(如AUTOCAD和3DMAX等)来构建几何体的模型,为了提高场景的真实感,采用了纹理拼贴、空间布光等方法。为了提高仿真速度,对复杂的模型采用了LOD的建模力法。搭建场景的步骤一个虚拟环境场景的建立主要包括两部分:创建环境和环境漫游。模型的建立是创建虚拟环境、实现虚拟

31、漫游的基础。对于主要楼房等复杂模型构成的虚拟环境,对模型的处理显得尤为重要。因为过多的模型细节会严重降低模拟的效率,系统的构建流程如下图2-1,2-2所示。根节点光照节点属性节点雾节点几何节点变换节点图2-1 一棵场景树示意图纹理模型拼贴测量扫描纹理处理,拼接,校正 建模软件测量数据模型虚拟场景搭建照片数据纹理实物建模图2-2 场景搭建流程图在建模过程中,往往要在模型的细节和复杂性之间寻求平衡,必要时用纹理代替模型细节。对一个大规模的虚拟现实系统,在建模过程中对模型分块是很必要的。这一方面可以减小建模的难度,另一方面在显示过程中可以通过分块显示提高仿真效率。在实际的建模过程中,可以根据需要建立

32、模型的特点选择建模方法。如果要建立有规则平面的几何体,可以使用多边形方法;如果要建立有复杂曲面的几何体,那么最好使用面片或者NURBS,因为要达到同样的曲面效果,面片和NURBS需 要的节点和面数要少些。在实际建模过程中,对于像室外楼宇等模型,可以采用简单几何体拼贴纹理的力法,对于室内物体可以采用比较复杂的几何体,就可以达到仿真的要求。 建好模型后,就要在场景中布置灯光。环境不同,布置灯光的力法也不同。在构建虚拟环境时一般使用环境光、直射光、点光源、聚光灯等光源,在布光时,采用二点布光的力法则,就是使用一个主光源照亮整个场景,使用一个辅光增加局部区域壳度,使用一个背光增加场景对比度。因为所建立

33、的场景比较大,因此在布光时先将 整个场景分成几个布光区域,然后在每个区域中使用二点布光的方法。2.2.2 场景和动画交互关键技术复杂性的研究场景的交互是通过X3D的交互机制来实现的。X3D的交互机制与VRML的交互机制类似,具体地说,X3D交互是通过节点来实现的。按照在X3D 中是否引用第三方语言,将交互分为 内部交互 和 外部交互 两类。下面分别讨论内部交互(X3D内部节点间的交互)和外部交互(X3D节点通过Java的接口交互)的方法。 X3D的内部交互X3D的内部交互是X3D 空间中各节点间的数据交互方法。内部交互 可控制场景中的物体产生一些简单行为动作:如移动对象、开门关门、播放音乐并根

34、据观测者距离音源的远近控制播放音量的大小等等。通过Anchor锚节点,route to路由节点及感知器节点实现的X3D内部交互机制,基本上能够实现场景的简单交互。例如下图2-3所示,A,B,C三个节点,由某个节点中的栏位发送一个值,经由ROUTE,传至另一个节点中的某个栏位,这样就是一次事件的传递, X3D中藉由事件的接收与发送而产生各种事件引发的动作行为。 如下圖,Event1 事件表示由NodeA 節點中的fieldA1 欄位發送一個值,將fieldA1 欄位中的值傳給NodeC 節點中的fieldC2 欄位,如果寫成X3D的語法會是:如下图,事件1事件表示由A节点中的属性A1栏位发送一个

35、值,将属性A1栏位中的值传给C节点中的属性C2栏位。當感測器節點或Script節點產生起始事件,進而導致產生一連串的連鎖事件時,所有的連鎖事件都被視為同時發生。当感知节点或产生起始事件,进而导致产生一连串的连锁事件时,所有的连锁事件都被视为同时发生。 例如下圖中NodeA 節點所發送的Event1 事件導致NodeC 節點產生Event2 事件,進而導致NodeB 節點產生Event4 事件,即便X3D瀏覽器實際上在執行時或許會有時間差,但理論上Event1、Event2、Event4 這三個事件都是視為同時發生的。例如下图中A节点所发送的事件1导致C节点产生事件2,进而导致B节点产生事件4,

36、即便X3D浏览器实际上在执行时或许会有时间差,但理论上事件1、事件2、事件4 这三个事件都是视为同时发生的。 如果節點中的欄位發送事件給多個節點,或者接收來自多個節點中的事件,那這些事件也都被視為同時發生,如果您設定了這種ROUTE,要注意事件發生的順序應該沒有任何影響。如果节点中的栏位发送事件给多个节点,或者接收来自多个节点中的事件,那这些事件也都被视为同时发生,如果您设定了这种ROUTE,要注意事件发生的顺序应该没有任何影响。 例如下圖中,NodeA 節點中的fieldA1 欄位分別發送事件給NodeB 及NodeC 節點,瀏覽器會認為Event3 和Event1 事件是同時發生的,同理,

37、Event3 和Event2 也是同時發生的。例如下图中,A节点中的属性A1栏位分别发送事件给B及C节点,浏览器会认为事件3和事件1事件是同时发生的,同理,事件3和事件2也是同时发生的。 事件发生时,除了传递的值之外,浏览器会自动给定该事件一个时间戳记,这个值是一个SFTime,以表示事件所发生的时间。 B节点A节点C节点属性栏C1属性栏A1属性栏B1属性栏C2属性栏A2属性栏B2事件4事件2属性栏C3属性栏B3属性栏A3事件3事件1图2-3 事件传送范例视图但是因为这种变化参数是事先预备的,不够灵活,况且X3D本身并不具备普通程序 设计中的转折、分支判断、循环等基本功能,因此无法完成复杂运动

38、的交互 与控制。因此,在虚拟实验系统的实际设计中,大多采用X3D的内部外部交互相结合来实现复杂运动的交互与控制。VRML的外部交互在外部交互中,X3D引入了Script节点。其实现思想是: Script节点中的域URL指定一段实现事件处理的Java程序代码或脚本JavaScript,然后将程序计算返回的结果递交给Script节点的输出事件,再通过route to将该事件传递给场景中某对象的相关域,达到改变场景的目的;或者直接由Script节点中指定的第三方程序控制X3D场景。3 X3D系统设计3.1 X3D设计实现的策略X3D的体系结构 X3D的体系结构的设计是根据软件构件技术为指导的。构件技

39、术来源于面向对象理论,在最新的X3D规范中,使用了构件技术对X3D规范进行实现,以增强对其他编程语言的交互性。X3D的组件化设计使开发者能够更容易的加入更多的特性,也可以从现有特性进行更多的扩展。构件指的是功能相关的一个或多个节点类型的一个集合,一个构件扩展内核在特定领域的功能。X3D的一个发展就是把VRML97进行组件化。X3D把VRML97的关键特性封装在一个小型可扩展的内核里,然后通过特性集扩展内核,实现较复杂的应用程序定义。组件化的应用减少了对资源的占用,避免的再产生像VRML97那样的封闭的标准。如下图3-1所示,X3D的体系结构组件化能够实现更多的扩展。图3-1 X3D的体系结构模

40、型3.2 X3D编程模型及数据结构3.2.1 X3D编程模型我使用的编程模型类似于瀑布模型,如下图3-2所示:其他X3D编辑器Max,Blender,Maya建模软件自己编码设计VRML模型转换COLLADA交互3D数字资产交换Vivaty Studio 编辑器BS Contact VRML-X3D浏览器,Vivaty Player浏览器,或者其它浏览器或浏览插件测试 图3-2 X3D编程模型示意图我主要使用的X3D编辑工具是Vivaty Studio 编辑器。我制作X3D主要通过如示意图所示的四种方案制作:(1) 先使用MAX,Maya或Blender制作模型场景,再通过COLLADA方法转

41、换成Vivaty Studio 编辑器使用。COLLADA - 交互3D数字资产交换方案是面向交互式 3D 应用程序的基于 XML 的数字资产交换方案,使 3D 创作应用程序可以自由地交换数字资产而不损失信息 - 使多种DCC和3D处理软件包可以组合成强大的工具链管道。独特的交互模式提供了广泛全面的视觉编译。COLLADA FX支持使用 OpenGL ES 着色语言创作和封装着色器,以使一流的 3D 创作工具可以有效协作创建 OpenGL / OpenGL ES 应用程序和资产。然后使用Vivaty Studio 编辑器编辑动画和交互等,最后综合测试,输出X3D作品。(2) 直接使用Vivat

42、y Studio 编辑器编辑模型场景和动画交互等,然后综合测试输出X3D作品。 (3) 使用软件将VRML文件进行转换,然后再有 Vivaty Studio编辑修改,然后输出。(4) 使用其他X3D编辑器,如X3D Tool,BS Editor,Net Beans IDE 6.7.1编辑,然后再Vivaty Studio 编辑器修改,最后综合测试,输出X3D作品。3.2.2 X3D的数据结构 X3D的数据结构是树形结构X3D数据结构在嵌套的节点中,最顶层的节点就是根节点,由它派生整个场景的全部节点。父节点是由根节点派生出来的,再由父节点派生子节点,循环下去直至全部场景。根据X3D语法结构的要求

43、,除了根节点,其他节点之间可以并列或层层嵌套使用。不同作用的节点有着不同的语法结构,父节点可以包括一个或多个子节点,子节点也可以包括一个或多个叶节点。其结构如下图3-3所示场景(Scene)根节点Shape节点父节点Appearance节点Sphere节点子节点Other节点Geomety节点叶节点图3-3 X3D数据结构示意4 X3D原型系统实现技术4.1 系统软硬件环境原型程序采用的开发环境:如下表4-1: 表4-1 系统开发环境类型软硬件开发语言X3D,VRML,HTML,XML集成软件开发环境Net Beans IDE 6.7.1,Vivaty Studio 1.0 Beta,BS E

44、ditor建模工具Autodesk 3ds Max 9 32 位,Blender 2.49b图像图片处理工具Adobe Photoshop CS4, Autodesk Stitcher Unlimited 2009运行平台Microsoft Windows XP sp3. Microsoft Internet Explorer 6.0及BS插件,BS Contact VRML-X3D浏览器运行硬件配置处理器 Intel Pentium 4 Processor内存 785648 KB显示卡 ATI Radeon 9550 / X1050 Series主硬盘 ExcelStor Technolog

45、y J880摄影器材Premier DC-S57 5.0 MEGAPIXEL4.2 分模块详述X3D原型系统各部分的实现方法我做的原型系统为韶关学院虚拟全景导航地图,结构如下图4-1所示,其模块分为引导网页模块和虚拟场景浏览模块。地图引导主页网站主页办公大楼场景南二教学楼场景南一教学楼场景其他场景其他场景图4-1 X3D原型系统模块结构引导网页模块: 采用普通html网页,主要是虚拟现实场景的介绍和操作的指引,还有相关插件的下载引导,还有就是实现权限控制:虚拟场景的添加,删除和修改(与现今网站设计方法相同,只需实现相关网页的添加,删除和修改即可)。虚拟场景浏览模块:虚拟场景文件结构类似,这里主

46、要叙述办公大楼场景的文件结构和构建途径,其次,还通过对一个电教室VRML模型场景转换成X3D模型场景,来探寻X3D的构建方法,实现X3D虚拟全景,为研究X3D探寻一条简单易行的方案。办公大楼场景代码结构分析:办公大楼虚拟场景X3D的文件设计结构如下图4-2所示X3D文件结构X3D文件头:XML宣告 DTD宣告X3D文件体概貌(profile)Head(头文档)Component(组件)Metadata(元数据)Scene(场景)节点根节点节点图4-2 X3D文件结构示意图4.2.1 办公大楼X3D代码文件头每个X3D文件中,文件头必须位于X3D文件的第一行。X3D文件时以UTF-8编码字符集用

47、XML编写的文件。每个X3D文件的第一行应该用XML的声明语法格式(文档头)表示。X3D使用XML语法格式声明:语法解释:(1) 声明从“” 结束(2) Verison属性指明编写文档的XML的版本号(3) Encoding属性是可选项,表示使用编码字符集,在X3D中默认使用国际UTF-8编码字符集 接下来是X3D文档声明,X3D文档什么用来在文档中详细的说明文档的信息,必须在出现在文档的第一个元素钱,文档类型采用DTD格式。DTD 是一套关于标记符的语法规则。它是XML1.0版规格得一部分,是XML文件的验证机制,属于XML文件组成的一部分。DTD 是一种保证XML文档格式正确的有效方法,可

48、以通过比较XML文档和DTD文件来看文档是否符合规范,元素和标签使用是否正确。一个DTD文档包含:元素的定义规则,元素间关系的定义规则,元素可使用的属性,可使用的实体或符号规则。XML文件提供应用程序一个数据交换的格式,DTD正是让XML文件能够成为数据交换的标准,因为不同的公司只需定义好标准的DTD,各公司都能够依照DTD建立XML文件,并且进行验证,如此就可以轻易的建立标准和交换数据,这样满足了网络共享和数据交互。4.2.2 办公大楼X3D代码文件体 X3D文件体主要描述的是X3D 主程序的概貌(profile),主程序概貌包含了组件,说明及场景中的各个节点等信息。主程序概貌中定义了一系列

49、内建节点及其组件集合,在X3D文档中所使用的节点必须在指定的概貌的集合范围内,概貌的属性可以是:Core,Interchange,Interactive,MPEG4,Interactive,Immersive,fullX3D主程序概貌语法的格式:接下来是头文档,头文档(Head)用来描述场景之外的其他信息,可以在头文档中加入组件(component)语句,表示额外使用某组件及支援等级中的节点,头文档中可以加入(meta)子元素描述说明,文档的作者,说明,创作日期或者著作权等相关信息。X3D头元素描述上述代码分别说明了我创作的名称,时间,日期,创作工具。接下来就是X3D的主体部分:场景主题(Sc

50、ene)描述包括信息化(World Info)节点,导航(NavigationInfo)节点,坐标变换(Transform)节点,视点(Viewpoint)节点,动画控制节点WorldInfo(信息化)节点模块:是对场景相关信息的描述,有利于软件开发的规范化,信息化以及工程,WorldInfo(信息化)节点提供了X3D程序的标题和认证信息,标题信息表达程序的意义,而认证信息表示软件开发的作者的相关信息和完成时间,版权,版本等信息。上述信息说明,我的软件由Vivaty Studio创作。作者为678X3D的主要部分其它主要结构如下图4-3:三维造型节点树模块其中包括声音节点模块灯光节点模块背景节

51、点模块视点导航节点模块动画感知控制节点模块信息化节点模块图4-3 程序节点结构(1) 三维造型节点树模块Transform(坐标变换)节点模块,用于创建一个或多个不同于默认坐标系的新坐标系,然后再在新坐标系上建立不同的节点,这样新节点之间就不会重合叠加在一起例如:表示建立新的坐标系Plane01,与原坐标系的距离为-13.8044 -1.22037 -9.7061,新坐标系相对于原坐标系旋转的旋转轴和旋转角度0 -1 0 -1.571 然后以Transform(坐标变换)节点为树根添加子节点,如下图4-4:图4-4 添加子节点 由于我使用的三维模型由建模工具3DS Max9创建造型并赋予贴图,

52、从而变得简单很多,不用手工编码那么复杂,手工编码能精确到两位数已经是极限了,在复杂场景的搭建中很难应用手工编码。三维模型场景搭建的过程如下图4-5:导出.wrl文件导入.wrl文件转换成X3D文件3DS MAX建模场景设计图4-5 三维模型搭建过程 在3DS MAX 9里面搭建模型场景,由于3DS MAX不少贴图是与X3D格式不适应的,还可以在MAX里面使用烘焙方法,制作贴图,烘焙方式制作贴图也就是先在3DS MAX调好贴图,灯光,渲染最终效果,然后用烘焙,把最终效果转化成贴图,这样烘焙后效果好很多,不过导出来的贴图将不能与X3D场景里的灯光再成效果,搭建过程如下图4-6所示:图4-6 3DS

53、 MAX 9搭建模型场景然后使用BS GabH插件导出模型场景文件,如下图4-7:图:4-7 导出文件然后导入Vivaty Studio进行修改,贴图,错误节点纠正调整。(2) 声音节点模块,场景所用的声音模块为一个物体的子节点,调用了一个名为“001.wav”的WAV声音文件,如下列代码所示: Intensity定义了声音的强度,即音量的大小。Priority定义其播放的优先级,如果还有其他声音的话,0表示它最先播放。Min和Max四个参数是定义声音的最小前后点,和最大前后点,只要距离大于Min声音开始衰减,距离大于Max将无法听见该声音。再下面的是引入声音源的节点信息,设定从哪里引用录制好

54、的声音文件,声音文件的播放速度,是否循环,开始和结束时间。(3) 视点导航节点模块由两部分构成:NavigationInfo(导航)节点和Viewpoint(视点)节点构成。NavigationInfo(导航)节点,导航指可以使用一个三维造型的替身作为浏览者在虚拟世界中浏览,通过替身来观察虚拟世界,导航节点描述了场景的观看方式和替身的物理特征。avatarSize参数设定了观察者替身的外表参数。visibilityLimit参数设定了观察者替身的最大观察距离。speed参数设定了观察者替身的漫游速度。headlight参数设定是否使用X3D场景里默认使用的头灯光源。Viewpoint(视点)节

55、点,是为用户提供预先设定的观察位置和朝向,在视点里用户可以像用摄像机取景框一样,观察虚拟世界相应的场景,视点之间可以切换也可以漫游,视点导航就是通过切换视点的坐标来实现场景的路线浏览。分别设定了视点名称,视点的跳跃性,视点的空间位置,视点的朝向。(4) 背景(Background)节点:这个部分是本系统最为主要的部分,它直接体现了用户的虚拟现实感受,创造了对场景的现实感和空间感的直接体验。虚拟现实背景空间分为全景空间背景和天体空间背景。全景空间是一个将造型包围在里面的空间立方体,具有前,后,左,右,上,下六个平面,可以根据需求设定不同的材质和图片。天体空间背景是无穷大的空间球体,可以根据需求设定天空颜色和地面颜色。本系统使用的是全景空间, 分别设定了背景空间名,继承,前,后,左,右,上,下六个平面引用的图像,本系统引用的图像由专业全景图制作工具Autodesk Sti

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!