基于VRML的建筑模型场景设计与演示.docx_第1页
基于VRML的建筑模型场景设计与演示.docx_第2页
基于VRML的建筑模型场景设计与演示.docx_第3页
免费预览已结束,剩余41页可下载查看

下载本文档

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

文档简介

内容提要虚拟现实技术是一门涉及多学科、多领域的新兴研究领域,它的应用研究水平表征了一个国家整个的科学技术发展水平。因此,将被誉为“梦幻般的技术”的虚拟现实技术应用于建筑领域的产品促销、建筑设计、建筑检测等领域,具有十分重要的理论研究价值和实际应用意义。该课题所研究的是一个基于VRML的建筑模型演示系统,是利用VRML和Java语言共同实现的一种新的构建和演示建筑模型的方法。虚拟现实建模语言(VRML)是一种新型的描述型语言,它是建立基于Internet的分布式虚拟环境的有力工具。此论文介绍了如何利用VRML构建虚拟建筑模型和实现演示系统。主要工作如下:第一,阐述如何通过VRML技术使建筑模型与图像、声音、文字、视频等多媒体技术相结合,构建出了一个生动逼真的三维建筑形体。第二,如何利用Java的强大编程能力及其和VRML的接口技术,来实现对实体行为的控制。第三,互联网特性使得更多的人可以通过Internet来观看此建筑,并允许用户通过整合的控制面板来自我定制场景。第四,对一些技术难点,如二维图形三维化、360度全景图和挤出面实现复杂模型等作了较为详尽的阐述。最后,探讨了如何优化 VRML 代码和如何发布 VRML 作品。关键词: VRML 虚拟现实 Java Script1目 录第一章 绪论.11.1 概述.11.2 本课题研究的意义.11.3 国内外的发展动态.21.4 虚拟现实技术.31.4.1 虚拟现实(Virtual Reality,简称 VR)简介.31.4.2 虚拟现实的基本特征.41.4.3 虚拟现实的分类.51.4.4 虚拟现实的应用.51.5 演示系统的设计目标.8第二章 VRML 的介绍和研究 .92.1 VRML 语言 .92.1.1 VRML 简介 .102.1.2 VRML 发展过程及应用 .102.1.3 VRML 场景图及节点 .122.1.4 VRML 中对象的变换和层次 .132.1.5 VRML 中场景对象的组织关系 .142.1.6 构造动态的虚拟现实模型.152.1.7 VRML 浏览器介绍 .182.1.8 VRML 的创作工具 .192.1.9 VRML 的工作方式 .192.2 VRML 交互技术的两种机制 .202.2.1 利用 EAI 扩展 VRML 场景.202.2.2 利用 Script 扩展 VRML 场景.212.2.3 EAI 与 Script 之间的异同.23第三章 开发平台和构建、演示工具.243.1 VRML 对硬件的要求 .243.2 系统采用的开发平台.243.3 系统演示时使用的浏览器插件.243.3.1 插件的介绍.243.3.2 插件的安装和设置.263.4 构建系统使用的编译系统.28第四章 系统的总体设计.314.1 概述.314.2 框架模块的设计.314.3 独立实体模块的设计.3224.4 整体链接模块.354.4.1 多路由问题.354.4.2 递归引用造成浏览器出错.364.4.3 内联.364.4.4 境界信息.374.4.5 自定义节点.374.5 操作面板的整合.37第五章 详细设计.395.1 概述.395.2 二维图形三维化.395.2.1 360 度全景图 .395.2.2 单枝叶实现立体藤蔓.405.2.3 平面树图实现立体树效果.405.3 利用挤出面构建三维花的叶子和床.405.4 多媒体视频支持.425.5 移动的茶几和茶杯.425.6 构建一个多功能办公桌.435.7 带开关的灯.445.8 自动门的实现.455.9 旋转风扇的实现.465.10 沙发的构建.465.11 地毯.475.12 栏杆的制作.485.13 草地的制作.485.14 控制中心的制作.49第六章 代码的优化和发布.516.1 利用VrmlPad及其插件进行VRML文件的优化.516.2 利用 VrmlPad 发布演示系统.52第七章 结论和进一步研究.53参考文献.54摘要.IAbstract.IV致谢第一章 绪论1第一章 绪论本章是此论文的开始部分,在这一章里我将主要说明此课题的研究意义,虚拟现实技术以及目前此课题在国内外的发展情况等。1.1 概述当今时代是数字化、信息化的时代。上个世纪八十年代以来,计算机软硬件技术的飞速发展带来了信息存储、交流和获取的数字化革命,而近十年来互联网技术的兴起使这些数字化信息的获取更加快捷方便,地球仿佛变成了一个小小的村落,人们瞬间就可以了解到地球另一端发生的事情。三维建模和虚拟现实技术都是近些年来随着计算机图形学的发展而日渐成熟的新兴技术,而基于互联网虚拟现实技术己经越来越成为计算机图形学领域的新课题之一。VRML(Virtual Reality Modeling Language)是一项集虚拟现实(Virtual Reality)与 Internet 多媒体于一身的新技术。本课题以“建筑模型演示系统”为研究对象,实现虚拟现实技术在建筑建模及演示方面的新尝试。系统利用 Java Script 脚本控制语言实现了三维虚拟现实场景的交互式浏览。12 本课题研究的意义随着中国改革的不断深化和经济建设的加速,房地产建设成为中国国民经济新的增长点,住房日益成为老百姓关心焦点,对于建筑模型构建和演示的方法也提出更高的要求。Web-3D GIS 发展时间较短,还处于初级阶段,在建筑建模方面的应用也刚刚起步。目前,Web 环境下房产测绘信息的三维可视化还存在着诸多问题。其中主要问题有 Web 环境下房产测绘三维场景的实时构建难以实现,三维成果发布困难,建筑模型三维场景与房产平面图没有有机结合以及现有的网上房产三维成果功能有限等等。针对这些问题,该文确定的研究目标为:在 Web 环境下实现建筑模型构建和演示。研究并设计一套行之有效的解决方案,实现三维建筑模型在 Web 环境下的构建和演示。本文分析了建筑模型构建和演示的特点,引入 VRML 技术作为此方法的实现技术,具体实现了在 Web 环境下建筑模型三维场景的动态构建及演示。作为一种刚刚兴起的技术,VRML 的发展历史并不长,VRML2.0 规范更是在 1997 年才确定,但是由于 VRML 自身独特的魅力,使其应用由原来的军事、医疗迅速向制造业、商业、教育和娱乐等领域迅速扩展,并成为教育应用的一大热点。然而目前虚拟现实在教育中的应用研究大多局限在一第一章 绪论2些高校,研究领域也是主要集中在虚拟校园、仿真实验、工业造型等方面。再加之一些技术上的、开发成本上的因素,使得虚拟现实的教育应用还处于一种研究探索的阶段,还未达到普及应用的阶段。经过将近十年的发展,这项技术日趋成熟,在工业制造、教育、商品展示、房地产、旅游参观、娱乐等方面表现出极好的应用前景。1.3 国内外的发展动态目前3D和虚拟现实技术已经在国内外有了长足的发展,并日渐涉及到越来越多的领域,如城市规划、场景仿真、信息管理、战场指挥、生产管理等等。2003年1月,美国一所著名大学成功地对古罗马竞技场进行了虚拟再现,这一课题震惊了考古界和建筑界,为研究古罗马建筑提供了极具科学价值的可视化参考。在欧洲、日本和美国,虚拟现实日益广泛地被家具商和房地产商用作展示方式和促销手段。北卡罗来那大学的建筑师们曾把虚拟现实用于一栋教堂的设计。之后,它们在该校新建的电脑科学大楼的设计中也采纳了虚拟现实。1992年6月, Intel和Sense两家电脑商联合主办了名为“Designing a Virtual house的展览。为期两天的展览旨在向人们介绍利用虚拟现实技术进行建筑设计的过程。他们利用一台VR工作站”演示建筑师和业主在一起工作的过程。建筑师带领业主一起“进入”设计中,并在走动过程中向业主讲述设计思想。业主可以随时随地“挑剔”方案并提出修改意见。建筑师立即根据业主的意见调整设计,直到业主满意,才一起“走出”设计。虚拟现实在建筑设计中的应用可归纳为3方面:设计手段、设计检测手段和市场促销手段。设计检测手段:虚拟现实技术可以被用来研究建筑及周围环境的声、光线效果及结构性能。如模拟自然光和人造光的效果,检测建筑物的隔音效果和声学指标。市场促销手段:虚拟现实技术一出现,即受到房地产商的青睐,成为他们应付苛刻的买家的得力工具。这一技术也大大方便了买家。利用虚拟现实技术,买家只要戴上头盔和手套等传感设备,就可以任意走动,挑选自己中意的房产。从而节省了大量时间和奔波之苦,也使得房地产交易周期大幅缩短。设计手段:如上所述,虚拟现实为建筑师们提供了新的设计方法。它带给建筑师的工作方式的变革,完全可以媲美CAD问世所产生的影响。最新的虚拟现实技术,使设计者能够漫游的同时对设计做出修改和补充,迅速、准确地对比各种设计方案的可行性。虚拟现实使设计者对建筑与环境,人与空间的体验更加生动和准确,从而使得设计更加美观实用1。随着网络时代的来临,网络教育迅猛发展,尤其是宽带技术将大规模第一章 绪论3应用的今天。国内一些大型的建筑模型设计院已经把虚拟现实作为首选的建模语言。真实、互动、情节化的特点是虚拟现实技术独特的魅力所在,新技术必将引起教育方式的革命,让我们感受到全方位的场景效果。以虚拟现实为特征的 Web3D 技术的诞生,是人们不满足于二维网页、渴求在网络上营造三维虚拟空间的结果。作为一种新的 Web 文件,虚拟现实建模语言(Virtual Reality Modeling Language 简称 VRML)以节点(Node)和事件路由为最基本的组成要素来描述三维对象和交互行为,经过浏览器解释执行后,网上用户就可实现异地漫游,感受一个有声有色的虚构世界。1.4 虚拟现实技术1.4.1虚拟现实(Virtual Reality,简称VR)简介自1945年世界上第一台电子计算机问世以来,计算机技术一直处在飞速发展阶段。现在计算机已经应用在社会生活的各个领域,替人类做大量的工作。随着计算机的处理能力、存储能力的飞速提高和成本的降低,特别是近年来,多媒体技术、并行处理技术、开放系统以及面向对象技术、网络技术等信息技术的飞速发展,人们已经把注意力从提高计算机本身的处理、存储能力方面,逐渐转移到改善人机交互的手段和界面方面。传统的信息处理环境一直是“人适应计算机”,而当今的目标或理念是逐步使“计算机适应人”。人们要求通过视觉、听觉、触觉、嗅觉,以及形体、手势或口令,参与到信息处理的环境中去,从而获得身临其境的体验。这种信息处理系统已不再是建立在单维的数字化空间上,而是建立在一个多维的信息空间中。虚拟现实技术就是支撑这个多维信息空间的关键技术。虚拟现实作为一种全新的人机交互技术,提供了强大的人机交互工具。虚拟现实技术是近年来迅速发展的一门新兴技术,也是多媒体技术发展的更高境界。虚拟现实(Virtual Reality,简称VR),又称临境技术,是最近几年得到迅速发展的技术。“虚拟现实”一词是由美国VPL ResearchInc公司的J. Lanier在1989年所创造的一个词,它通常是指用立体眼镜和传感手套等一系列传感辅助设施来实现的一种三维现实,人们通过这些设施以自然的方式(如头的转动、身体的运动等)向计算机送入各种动作信息,并且通过视觉、听觉以及触觉设施使人们得到三维的视觉、听觉及触觉等感觉世界。它要创建一个酷似客观环境、又超越客观时空,能沉浸其中、又能驾驭其上的人机环境,即由一个多维信息所构成的可操作空间,它最重要的目标就是真实的体验和方便自然的人机交互。虚拟现实就是采用以计算机为中心的现代高科技,生成逼真的视、听、触、嗅觉等一体化的虚拟环境,用户借助必要的外部设备(如特制的数据服、头盔、数据手套等) 以自然的方式与虚拟环境中的客体进行交互作用、相互影响,从而第一章 绪论4产生身临其境的感觉和体验。实现一种虚拟幻觉。它是一种高级的仿真技术,即可以做真实世界的物体仿真(建筑物模型),又可以做抽象物体的虚拟建模(如原子模型)。因此,虚拟现实技术在人工智能、CAD、图形仿真、虚拟通信、遥感、娱乐、军事模拟训练的许多学科带来革命的变化,将对一个国家的国防、军事、政治、经济、文化甚至日常生活产生深远的影响。目前,与虚拟现实相关的内容己经扩大到了与之相关的许多方面,像“人工现实(Artificial Reality)”、“遥现”(Tele presence)、“虚拟环境”(Virtual Environment)、“赛伯空间”(Cyberspace)等,都可以认为是虚拟现实的不同术语。事实上,虚拟实现技术不仅仅是指那些戴头盔和手套的技术,而且还应该包括一切与之有关的具有自然模拟、仿真体验的技术与方法。它的最重要的目标就是真实的体验和方便自然的人机交互,能够达到或者部分达到这样目标的系统就称为虚拟现实系统2。1.4.2 虚拟现实的基本特征虚拟现实是高度发展的计算机技术在各种领域的应用过程中的结晶和反应,它综合了计算机图形学、图像处理与模式识别、智能技术、传感技术、语音处理与音响技术、网络技术等多门科学,将计算机处理的数字化信息变为人所能感受的具有各种表现形式的多维信息。通过视、听、触觉等作用于使用者,对使用者的控制行为作出动态的交互反应.传统的仿真技术很少研究人的感知模型的仿真,无法模拟人对外界环境的感知(听觉、视觉、触觉),而虚拟现实带来了人机交互的新概念和新方法,计算机模拟外界环境对人的感官刺激已经成为可能。虚拟现实依托的学科高度综合化,是现代仿真技术的高级发展和突破,它不仅涉及计算机、人工智能、电子、通信、数学、力学、热学、声学、光学、机械学和生理学等自然科学和技术科学,而且与美学、心理学和社会学等密切相关,是经济和社会生产力发展的巨大需求的产物。虚拟现实的特征在于强调了人机交互过程中人的主体地位,力求达到人机交互的和谐。Brudea在“Virtual RealitySystems and Applications”文中提出的“虚拟现实三角形”说明了虚拟现实的三个基本特征:沉浸(Immersion)、交互(Interaction)、想象(Imagination)。如图1-1第一章 绪论5图1-1 虚拟现实特征(1)沉浸(Immersion),是指用户作为主角存在于虚拟环境中的真实程度。在人与机器交互过程中,人所感觉的是自己投身于这一特殊界面(虚拟环境)之中,从虚拟空间的内部向外观察,而不是作为一个旁观者由外向内观察,从而更逼真地观察所研究的对象,将抽象的数据信息变换成切身的体验,从中获取知识。理想的虚拟环境应该达到使用户难以分辨真假的程度(例如可视场景应随着视点的变化而变化),甚至超越现实,如实现比现实更逼真的照明和音响效果等。(2)交互( Interaction),是指用于对虚拟环境内的物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。虚拟环境是一个封闭的回路系统,将仿真现实环境的图像、音响和语言、压力等等通过人机接口系统作用到使用者的感官,并通过传感器测试及跟踪使用者的行为与反应,实时调整生成的图像序列,使用户通过交互方式感知和响应虚拟环境。例如,用户可以用手直接抓取虚拟环境中的物体,这时手有触摸感,并可以感觉物体的重量,场景中被抓的物体也立刻随着手的移动而移动。(3)想象 (Imagination),是指用户沉浸在多维信息空间中,从定性和定理综合集成环境中得到感性和理性的认识,依靠自己的感知和认知能力全方位地获取知识,发挥主观能动性,深化概念和萌发新意,寻求解答,形成新的概念3。1.4.3 虚拟现实的分类VR( Virtual Reality)最本质的特征是用户对虚拟场景的沉浸,根据用户参与 VR 的不同形式以及沉浸的程度不同,可以把虚拟现实技术划分为五类:(1)桌面虚拟现实系统第一章 绪论6桌面虚拟现实主要利用个人计算机和低级工作站进行仿真。计算机屏幕作为观察虚拟境界的窗口,各种外部设备用来驾驭、操纵虚拟环境中的物体。桌面虚拟现实系统不具备完全投入功能,但是成本较低,应用面比较广。(2)沉浸式虚拟现实系统沉浸式虚拟现实系统利用头盔显示器、数据手套及三维鼠标等交互设备把用户的视觉、听觉及其它感觉封闭起来,使参与者暂时与真实环境隔离开。其特点是能够向观察者提供“真实”的体验。常见的沉浸式虚拟现实系统包括投影式虚拟现实系统、洞穴自动式虚拟环境(CAVE)和头盔式虚拟现实系统。(3)分布式虚拟现实系统多个用户通过网络联系起来,共享同一个虚拟空间,观察和操纵同一虚拟世界,达到协同工作、学习和生活的目的。(4)远程存在虚拟现实系统远程存在虚拟现实系统是虚拟现实技术与机器人控制技术相结合的产物。当某处的用户操纵一个虚拟现实系统时,其结果却在另一个地方发生。(5)增强现实虚拟现实系统增强现实虚拟现实系统不仅要利用虚拟现实技术来模拟现实世界、仿真现实世界,而且还要利用它来增强参与者对真实环境的感受,增强用户在现实中无法感知或不方便感知的感受。战机飞行员的平视显示器就是这类虚拟现实系统的典型实例,它可以将仪表读数和武器瞄准数据投射到安装在飞行员面前的穿透式屏幕上,这样飞行员就不必低头读座舱中仪表上显示的数据,从而集中精力盯着敌人的飞机和导航偏差4。1.4.4 虚拟现实的应用虚拟现实技术从萌芽到现在已经半个多世纪了,大量的研究结果表明,虚拟现实技术已在以下领域获得了成功的应用。随着虚拟现实技术的不断成熟,它的使用空间会越来越广阔。(1)航空航天和军事从某种意义上来说,军事需求推动了科技的发展,虚拟现实技术也不例外。因为在这些领域中仿真和训练特别重要,迫切需要一种逼真的、灵活的、网络化的模拟系统。VR系统在这些方面均能很好地满足需要。美国政府充分认识到VR技术在保持美国技术领先方面具有的战略意义,于是制定了一系列实施计划,如陆军的坦克训练网络SIMNET、海军的反潜艇战ASW系统、航天局(NASA)的虚拟现实训练系统等。(2)工程领域第一章 绪论7近年来,虚拟现实技术己大步走进民用市场。在工业设计中,现在常提到“虚拟样机”这一术语。它实质上是利用VR技术和科学计算可视化技术,根据产品的计算机辅助设计(CAD)模型和数据以及计算机辅助工程(CAE)仿真和分析的结果,生成一种具有沉浸感和真实感、并可进行直观交互的产品样机。用虚拟样机技术取代传统的硬件样机,可以大大缩短新产品的开发周期、降低开发费用。波音777飞机的设计、沃尔沃公司对新型汽车内部仪表和控制部件的布局、Caterpillar公司对挖土机铲斗动作可见性的改进等等,都是这种新技术成功应用的典范。波音777由300万个零件组成,所有的设计在一个由数百台工作站组成的虚拟环境中进行。设计师戴上头盔显示器后,可以穿行于设计中的虚拟“飞机”,审视“飞机”的各项设计指标。(3)高难度和危险环境下的作业训练如医疗手术训练的VR系统,用CT(Computerized Tomography)或MRI(Magnetic Resonance Imaging)数据在计算机中重构人体或器官的几何模型,并赋予一定的物理特征(例如密度、韧度、组织比例等),通过机械手或数据手套等高精度的交互工具在计算机中模拟手术过程,以达到训练、研究的目的。美国的NASA和欧洲空间局ESA曾成功地将VR技术应用于航天运载器的空间活动、空间站的操作和对哈勃太空望远镜维修方面的地面训练。(4)科学可视化科学可视化是理解大量的科学实验数据的有效手段。利用VR技术,很容易将这些东西可视化和形象化,使用户把主要精力集中于实验数据而非计算机界面。(5)教育和娱乐在虚拟教育培训系统中,分布在不同地方的研究人员和受训人员可以利用网络共享资源,进行交互操作和协同研究,使信息得到及时反馈,真正达到教学相长的目的。使用户“沉浸”于和谐人机环境的VR技术在娱乐业有着极其广泛的应用。第一个大规模的VR娱乐系统“Battle Tech,将每个“座舱”仿真器连网进行组之间的对抗,3D逼真视景、游戏杆、油门、刹车和受到打击时的晃动给用户很强的感官刺激 。(6)虚拟导游在虚拟导游系统中,用户可以按照自己规划的旅游路径和自己的喜好在风景区漫游。在有限的财力和时间范围内,充分满足用户周游世界、广览名胜古迹的猎奇愿望 。(7)虚拟商店在虚拟购物空间中,人们可以自由出入虚拟商店,从电脑助手那里获得商品的介绍,自由购物。(8)建筑第一章 绪论8在建筑领域内,人们可以透过VR的虚拟特性,模拟出兴建后的实际情况来避免实际应用后可能发生的问题4。同发达国家相比,我国在VR技术的研究方面还有一定的差距。我国军方对VR技术的关注较早,而且支持研究开发的力度也越来越大。国内一些院校和科研单位,陆续展开了对VR技术的研究,已经实现或正在研制的虚拟现实系统也有不少。像北京航空航天大学分布式虚拟环境DVEN(Distributed Virtual Environment Network );浙江大学的虚拟故宫、桌面虚拟建筑环境实时漫游系统:清华大学计算机系对虚拟现实和临场感方面进行了研究,例如球面屏幕显示和图像随动、克服立体图闪烁的措施和深度感试验等方面都具有不少独特的方法;另外,西安交通大学、哈尔滨工业大学、国防科技大学、装甲兵工程学院、中科院软件所、上海交通大学等单位也进行了不同领域、不同方面的VR研究工作,并取得了一批研究成果。尽管目前虚拟现实技术的应用还不太完善,市场还不很成熟,真正商品化的应用系统也并不多见。但是,虚拟现实技术的应用却已日趋活跃,具有极大的潜力。1.5 演示系统的设计目标网络虚拟世界最突出的特点是交互性、构想性和沉浸感,基于这一要求并结合建筑模型演示的需要,此模型的演示系统的设计目标如下:(1)访问者可以随意选择建筑的场景和参观路线,并通过鼠标键盘来漫步并且改变视点;(2)访问者可以做出像在真实世界一样的动态行为,比如推门,开灯等;(3)系统应具有真实的力学性质。比如碰撞检测机能,杜绝“穿墙而过”这类违背现实的情况;(4)系统地造型应该很逼真,这是由设计的初衷决定的;(5)系统应该结合多媒体,如音频和视频等;(6)良好的用户交互能力;第二章 VRML 的介绍和研究9第二章 VRML 的介绍和研究在本章里将会对研究所使用的 VRML 语言及技术、JAVA(主要是与 VRML控制有关的)语言以及 VRML 的交互机制等作详细的说明。21 VRML 语言2.1.1 VRML 简介近几年来虚拟现实与WWW (World Wide Web)结合,衍生出虚拟现实建模语言(Virtual Reality Modeling Language,简称VRML). 它是Internet上基于www的具有交互性的虚拟现实建模语言,是HTML的三维模拟,可弥补WWW在三维图形表现上的严重不足,使WWW成为虚拟现实使用者之间的桥梁。凭借WWW,人们可以和地球上任何一端的使用者在虚拟世界中聚会,互相交流信息。VRML原名Virtual Reality Markup Language,其后为了反映它的图形能力,而更名为Virtual Reality Modeling Language。VRML其目的是提供一种用于网上的虚拟世界的描述方法,它使用VRML浏览器能解释的ASCII文本格式来描述世界和链接,是实现虚拟现实的较好工具。VRML是一套与WWW结合,用来描述三维空间互动世界的一种文档格式,可建立三维空间物体、景象及虚拟现实的展示模型。通过VRML, WWW 的使用者得以观赏立体空间的模型,而不限于二维空间的图表或影像。1996年8月公布的VRML2.0又加入了交互的能力,让使用者可与WWW上的景象进行交互。VRML的发展将WWW,甚至与Internet的交互,带入了另一个境界。博物馆的浏览系统不再只有平面图,参观的游客可以凭借鼠标的操作,浏览博物馆内的展览室,有如身临其境,虚拟现实的效果是VRML最吸引人之处。VRML具有如下的优点:(1)VRML和HTML一样是一个完全开放的标准,任何人只要愿意都可以使用VRML编写程序(只是难度比HTML高了一些)。这样就最大限度的提高了VRML的普及范围一一国外用VRML装饰的站点随处可见。VRML和Linux一样也是产生于民间,发展于民间。(2) VRML实现的动画和互动效果甚至可以比gif,flash还要小。(3) VRML格式支持zip压缩!这是VRML非常重要的特性,如果你用3DMAX将原来制作的3D文件转换为.wrl格式,你会发现文件非常大,没关系用zip压缩一下,然后将文件名改回.wrl 照样可以用浏览器观看,所以用来做网络上的立体展示是完全有可能的。(4)从VRML2.0开始,互动性能有了飞跃,不但包括内部的一些属性,更支持Java, JavaScript,甚至CGI等的接口(CGI等的功能在于建立真3D第二章 VRML 的介绍和研究10虚拟社区) 。(5)VRML已成为ISO标准5。(6)语法简单,一般文字编辑软件即可编写。(7)与Internet连接,上网即可浏览场景,便利性高。(8)与平台无关,可扩展性好。VRML的缺点主要有以下几个方面:(1)着色不如OpenGL快。(2)没有底层控制。(3)界面有限。2.1.2 VRML发展过程及应用1、VRML发展过程VRML的前身是SGI公司OpenInventer系统使用的一种文档格式,后经MarkPesce、Tony Parisi和GavinBell等人的改进和努力,最终发展成第二代WWW的标准语言。1994年,Mark Pesce和Tony Parisi在第一届World WideWeb国际会议上提出了新的概念,结合网络和虚拟现实,开发出一套使用在Web上的三维空间虚拟现实界面。此举立刻引起许多的回应,也引起了许多人参与讨论。由于反应热烈,不久以WIRED杂志的Pesce和BrainBehlendorf为首的团体就积极地制定规格,虚拟现实建模语言(VirtualReality Markup Language)于是诞生,一些相关的研究也就陆续的展开了,首先为了讨论VRML第一个版本的规格,成立了一个WWW-VRML的MailingList,在全体人员的共同努力下,在1994年10月公布VRML1.0。VRML1.0非常简单,它只定义了36种节点类型,涉及的对象也只有静态对象,而没有声音、动画等动态对象。实际上,由于VRML1.0近似HTML的“3D版本”,因此,当时称VRML为虚拟现实标记语言(Virtual Reality MarkupLanguage)。1996年初,VRML委员会审阅并讨论了若干个VRML2.0版本的建议方案,1996年8月在SGI的Moving Worlds提案基础上形成VRML2.0。VRML2.0名义上是VRML1.0的修订版,但两者从内容到文档结构上都很不相同。在VRML2.0中,节点类型扩展为54种,支持的对象包括动态和静态两类。这时的VRML语言,已经完全脱离HTML的影响,被正式命名为:虚拟现实建模语言(Virtual Reality Modeling Language)。VRML1.0和VRML2.0并不是真正的国际标准。直到1997年12月,VRML才被国际标准化组织ISO和国际电子工业协会IEC正式接纳为国际标准,国际标准号ISO/IEC14772-1:1997,习惯上称为VRML97。VRML97是在VRML2.0的基础上,进行了少量功能性调整而形成的,对用户而言,两者完全一样。可以认为,VRML97是VRML2.0的国际正式名称。1998年12月在原VRML组织的基础上成立了Web3D联盟,致力于VRML NG(VRML Next Generation) 标准的制定,并致力于制定X3D网络三维标准。1999年底,VRML的又一种编码方案X3D第二章 VRML 的介绍和研究11草案发布。X3D结合了正在发展的XML、Java、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度6。2000年6月世界web3D协会发布了VRML2000国际标准(草案),2000年9月又发布了VRML2000国际标准(草案修订版 )。这个结合三维空间的场景和WWW平台的语言,主要是参考SGI的OpenInventor ASCII文档格式而制订,并且增加网络的功能。由于Inventor的文档格式能够完整地描述三维空间场景,如多边形物体,光源,材质及一些真实的效果,使用它能产生非常接近实际物体的场景,而且也有一些现成的工具可使用,这使得VRML快速地发展起来。VRML的设计有三个主要的考虑:与平台无关性、具备扩充性以及能在低带宽的网络上传送。2、VRML的应用VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体,兼具先进性和普及性,是关心三维图形、多媒体、新一代网页开发和虚拟现实技术应用的人士应密切注意的。如今,在国外VRML已经广泛应用于生活、生产、科研教学、商务甚至军事等各种领域,并取得了巨大的经济效益,见表格1。表1 VRML的应用领 域 用 途医学外科手术,远程遥控手术,身体复健,虚拟超音波影像,药物合成教育 虚拟天文馆,远程教学艺术 虚拟博物馆,音乐商业 电传会议,电话网路管理,空中交通管理景观模拟建筑设计,室内设计,工业设计,地形地图科学视觉化数学、物理、化学、生物、古生物、考古、行星表面重建,虚拟风洞试验,分子结构分析军事 飞行模拟,军事演习,武器操控太空 太空训练,太空载具驾驶模拟机械人 机械人辅助设计,机械人操作模拟,远程操控工业 电脑辅助设计娱乐 电脑游戏第二章 VRML 的介绍和研究122.1 .3 VRML场景图及节点VRML 场景图就像 2D 图像的位图,它提供一个所要创建的世界的结构.一张 VRML 的场景图包含一组对象,当它们被填充后,这些对象在三维空间中存在,都具有深度、高度和宽度。VRML 有许多对象类型,最简单的对象称为原始对象,这些原始对象可以用很简单的术语进行描述。VRML提供以下几种非常有用的原始对象:立方体、圆锥体、圆柱体和球体。尽管它们每一个个体都显得很平常,但组合到一起将形成非常有意思的图形对象,而且复杂的对象可以由这些简单对象构成。VRML 的结构类似于OpenGL 的显示,用树状的场景图来描述三维世界。应用面向对象技术,不仅使场景图对三维世界的描述变得清晰,还通过封装属性和建立场景图内部消息通道很方便地实现虚拟实体的交互和动画等功能。场景图的基本元素为节点,节点是 VRML 为多媒体和交互对象定义的一个对象集,节点的类型很丰富,节点的属性包含在域和事件中。各节点间通过父子关系连接,形成的有向无环图即场景图。在绘制场景图时,便用不同的符号来表示,每个节点分别代表不同的意思,父节点和子节点之间的关系称为“场景图层次”。整个场景图就显示了一个虚拟世界的结构。VRML 中的每个节点用来完成某一特殊功能,节点的名字指出其基本的功能,每个节点包含一系列的域,这些域用来保存定义该功能所需参数的数值。下面列出VRML 中几个原始对象 Cone(圆锥体)、Box(立方体)、Sphere(球体)和Cylinder(圆柱体)的节点6描述:Conefield SFFloat bottomRadius 1field SFFloat height 2filed SFBool side TRUEfield SFBool bottom TRUEBoxfield SFVec3f size 2 2 2Spherefield SFFloat radius 1Cylinderfield SFFloat height 2field SFFloat radius 1field SFBool bottom TRUEfield SFBool side TRUE第二章 VRML 的介绍和研究13field SFBool top TRUE下面还有三个非常重要的节点,它们是 Appearance、 Material 和Shape 节点.利用这三个节点,用户可以使对象形成很自然的明暗色彩,从而使对象具有深度感和立体感。 Appearance 节点提供了所有与对象的外部特征相关的信息,Material 节点保存与对象的颜色有关的各种信息,Shape 节点将几何体和其外部特征(如颜色等)结合起来,最终使对象能显现在场景中。AppearanceexposeField SFNode material NULLexposeField SFNode texture NULLexposeField SFNode textureTransform NULL6MaterialexposeField SFFloat ambientIntensity 0.2exposeField SFColor diffuseColor 0.8 0.8 0.8exposeField SFColor emissiveColor 0 0 0exposeField SFColor specularColor 0 0 0exposeField SFFloat transparency 06ShapeexposeField SFNode appearance NULLexposeField SFNode geometry NULL72.1.4 VRML 中对象的变换和层次VRML 的场景图采用笛卡尔坐标系统,空间上的每一个点可以用一组(三个)数表示,称之为坐标。第一个数为 X 坐标,表示对象放在空间的左右位置;第二个数为 Y 坐标,表示对象放在空间的上下位置;第三个数为 Z坐标,表示对象放在空间中距离屏幕的远近位置。另一方面,一定的造型在不同的方向时,具有不同的旋转值,我们用一组四个数表示。这一组的前三个数用来确定旋转轴,第四个数表示出了旋转的方向和旋转的数值。任何对象放置在场景中时的默认位置都是(0,0,0) 处。空间造型的尺寸、位置和方向的具体大小是由长度单位和角度单位来度量的。在场景图中,正 X 方向是向右的,正 Y 方向是向上的,正 Z 方向则是向着观察者的,这就是所谓的空间坐标系。当要对场景中的对象进行第二章 VRML 的介绍和研究14空间位置的变换时,则需要用到 Transform 节点,它在放置场景中的对象并确定其方向时具有很大的灵活性,它是形成 VRML 场景层次结构的基础性节点。Transform eventIn MFNode addChildreneventIn MFNode removeChildrenexposedField SFVec3f center 0 0 0exposedField MFNode children exposedField SFRotation rotation 0 0 1 0exposedField SFVec3f scale 1 1 1exposedField SFRotaion scaleOrientation 0 0 1 0exposedField SFVec3f translation 0 0 0exposedField SFVec3f bboxCenter 0 0 0exposedField SFVec3f bboxSize -1 -1 -16Transform节点有一个children域,它可以存放一个Shape节点,也可以存放多个值,如果在children域中有多个节点值,这些值必须括在方括号中。Transform节点中大多数域用来改变children域中节点的位置、大小和方向。控制这些变换的域可以用center, rotation, scale,scaleOrientaion和Translation.现列举两个重要的变换:translation(平移)和rotation(旋转)。translation 4 5 0表示把对象平移到(4,5,0)处。rotation 0 1 0 1.57表示以轴(000, 010)为旋转轴旋转90度。只需将点(0,0,0 )与SFRotation的前三个值表示的坐标值连成一条线,这条线所在的直线就是旋转轴。旋转角度以弧度表示,360度或者6.28代表一周,3.14为180度,1.57为90度,0.78为45度,逆时针为正方向。在Transform节点中可以放入多个子节点,而这些子节点本身也可以是有许多个子节点的Transform节点,这样就形成一个层次图。在现实世界中,很多复杂对象都是由这样的层次结构组成的,一个复杂的虚拟世界也是由很多的原始对象按照层次结构一级级地组织起来,最后形成一个整体,这就是VRML构造虚拟世界的基本原理。还有很多节点也可以有子节点,如Group(组)节点,它是用来收集节点和创建不需要实施变换的层次结构的节点。2.1.5 VRML中场景对象的组织关系由于VRML虚拟世界中存在很多复杂对象,而每个复杂对象又是由很多第二章 VRML 的介绍和研究15次级复杂对象组成,如此一级一级地简化,最终分割成四个原始对象 球体、圆柱体、圆锥体和立方体。在用户设计场景时,就需要一个有层次的组织方式把众多的原始对象组织起来。从而设想整个虚拟世界场景对象是树状结构,如图2-1所示:图2-1 虚拟世界组织关系图2.1.6 构造动态的虚拟现实模型前面说过,VRML2.0相比1.0版本的最大区别在于,它能使构造出的三维虚拟世界具有声音,动画,人机交互等功能,从而使计算机生动逼真地模拟了真实的世界。实现动态的虚拟现实是VRML2.0的生命力所在,VRML2.0提供了多种构造动态虚拟现实模型的方法,以下将一一介绍。1、使用插值器改变对象插值器节点有很多种,各自完成不同的功能,如改变对象在场景中方向的OrientationInterpolator节点,用于改变观察位置或形体位置的PositionInterpolator节点,用于坐标位置运动的第二章 VRML 的介绍和研究16CoordinateInterpolator节点,还有ColorInterpolator可以修改Material节点的颜色,NormalInterpolator可以改变法向节点中的值等等,另外,ScalarInterpolator是一个基本的构造模块,由它可以建造其他许多插值。使用插值器改变对象的原理大致是相同的,这里以OrientationInterpolator节点实现旋转对象为例子:下面是OrientationInterpolator节点7的定义:OrientationInterpolatoreventln SFFloat set fractionexposedField MFFloat key exposedField MFRotation keyValue eventOut SFRotation value changed它通常路由到一个Transform节点的rotation exposedField.其中的keyValue是一个SFRotation,用来设立对象所期望的方向。在驱动插值器过程中,由TimeSensor节点随时间的流逝产生0到1之间递增的SFFloat值,每产生一个值,经过路由OrientationInterpolator节点接收这个值,并把它的值与关键码进行匹配,一旦匹配成功,则对应于这个关键码(key)的关键码值(keyValue)被发送出去,如果这个值处于两个相邻的关键码之间,则产生一个在与两个关键码相对应的关键码值之间进行插值的事件,得到的关键码值又通过第二条路由,使Transform节点接收到这个值,从而改变立体的位置。简单地讲,使用插值器改变对象形成动画,用户只需给出一系列运动轨迹的中间态势,由VRML解释器自动平滑对象在这些中间态势间过渡,从而得到使对象按所给路线变化的动态效果。2、在对象上包装电影文件把电影作为一个移动的纹理施加到对象上,能使虚拟世界呈现一种动态效果。例如在一个虚拟房间中放置了一台电视机,当漫游者进入房间时,看见电视机屏幕上正在放映电视或电影,而并非一副静止死板的图像,显然就大大地增强了虚拟世界的逼真程度。由MovieTexture节点完成对对象的包装,利用这个节点,提供MPEG文件的URL和域值来控制电影的播放时间和速度。该节点语法如下:MovieTextureexposedField MFString url exposedField SFFloat speed 1exposedField SFBool loop FALSEexposedField SFTime startTime 0exposedField SFTime stopTime 0field SFBool repeatS TRUEfield SFBool repeatT TRUE第二章 VRML 的介绍和研究17eventOut SFTime duration_changedeventOut SFBool isActive6MovieTexture节点中的url域包含一个电影格式的文件,而不是一个静态图像文件,每一个MPEG电影都存储了一系列电影画面,电影的播放可以有开始、停止、继续、循环进行播映。3、使用角色,进行对象切换来构造动画效果所谓角色是指一个平坦的始终面向阅读器的图像,它是一种在虚拟世界中的2D对象,可以渲染地更快,但是它是平面的,如果从侧面看它们,它们就会消失掉,为了得到满意的效果,角色需要始终面向观众。把一个动画分解成很多静态图片,然后连续播放,给人的视觉造成动画效果。这就是动画角色的原理。角色的切换是由MySwitch节点完成的,该节点可以根据变化的whiChchoice的值选择相应的节点显示。由TimeSensor节点给出动画开始时间,把fractiones changed事件的值传递到MyScript节点,并被该节点的fraction函数处理,得到whichChoice事件的值,最后把whichChoice事件的值传递到MySwitch节点,从而随时间的流逝依次选择一个角色显示出来,直至时间结束完成整个动画过程。4、视点动画由于VRML提供视点Viewpoint节点,这个节点允许为用户设置一个有趣的理想点的位置和方向,通过不断改变视点的位置和方向可以达到和不断改变对象位置和方向相似的动画效果。用户可以从该点来观察场景,在第一个新的观察点,浏览器获得的图像就像是使用一部虚拟的取景器在屏幕上播放一样。替身在虚拟空间中的移动,就使得取景器不断地调整其位置和朝向。当Viewpoint节点是Transform节点的子节点时,视点的方位是在Transform节点的坐标系内,如果坐标系移动,则视点也随着移动。如果虚拟世界是静止的,而世界的作者能够控制用户的化身并带领他在世界中漫游(比如展示一个博物馆的整体构造),在用户眼中就会产生动画效果。过程是把fraction changed事件(产生的时间)值传递到旋转节点(Orientationlnterpolator)和位置节点(PositionInterpolator)以产生新的视点方向和位置,分别把新产生的视点方向传递到视点(Viewpoint)节点中以改变原先的值,从而产生动画效果。5、使用纹理坐标的动画如果把一副二维图像包裹在对象上来进行着色,就像在墙上贴墙纸一样,也能得到很好的效果,这种二维图像叫做纹理,节点ImageTexture负责添加纹理,纹理图像一般是JPEG文件,有时也可以是PNG或GIF文件。假设要虚拟一个瀑布,可以在一个几何体上施加一种水的纹理,但是这种纹理是静止的,要让它动起来,有一种比较简单的方法:设It对纹理第二章 VRML 的介绍和研究18与对象之间的映射所进行的

温馨提示

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

评论

0/150

提交评论