虚拟现实多媒体开发应用研究实例情况分析_第1页
虚拟现实多媒体开发应用研究实例情况分析_第2页
虚拟现实多媒体开发应用研究实例情况分析_第3页
虚拟现实多媒体开发应用研究实例情况分析_第4页
虚拟现实多媒体开发应用研究实例情况分析_第5页
已阅读5页,还剩73页未读 继续免费阅读

下载本文档

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

文档简介

编号:时间:2021年x月x日书山有路勤为径,学海无涯苦作舟页码:第页多媒体系统开发工具和编程应用VRML语言及应用开发目录:1.虚拟现实及其类型HYPERLINK1.1虚拟现实的概念HYPERLINK1.2虚拟现实的类型HYPERLINK1.3虚拟现实在教育中的应用HYPERLINK1.4虚拟现实技术2.VRML技术HYPERLINK2.1VRML的概念HYPERLINK2.2VRML的历史HYPERLINK2.3VRML工作组及其研究目标HYPERLINK2.4VRML的研究现状HYPERLINK2.5VRML的应用实例2.5.1网上虚拟实验室2.5.2网上观景实例2.5.3网上物体展示2.5.4VRML应用网站3.VRML编程基础HYPERLINK3.1VRML的工作原理HYPERLINK3.2VRML浏览器HYPERLINK3.3VRML制作工具3.3.1VRML代码编辑软件3.3.2可视化VRML制作工具HYPERLINK3.4VRML2.0的基本语法知识3.4.1VRML文件结构3.4.2基本造型的生成3.4.3VRML动画程序编程3.4.4VRML交互程序编程3.4.5VRML多媒体编程及自定义节点的应用

3.4.6VRML编程建议4.VRML应用到多媒体课件的开发HYPERLINK4.1将VRML文件嵌入网页中HYPERLINK4.2将VRML文件嵌入powerpoint课件中HYPERLINK4.3将VRML文件嵌入Authorware课件中

一、虚拟现实及其类型1.1虚拟现实的概念虚拟现实(VirtualReality,简称VR;又译作灵境、幻真)是近年来出现的高新技术,也称灵境技术或人工环境。虚拟现实是利用电脑模拟产生一个三度空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身历其境一般,可以及时、没有限制地观察三度空间内的事物。VR是一项综合集成技术,涉及计算机图形学、人机交互技术、传感技术、人工智能等领域,它用计算机生成逼真的三维视、听、嗅觉等感觉,使人作为参与者通过适当装置,自然地对虚拟世界进行体验和交互作用。使用者进行位置移动时,电脑可以立即进行复杂的运算,将精确的3D世界影像传回产生临场感。该技术集成了计算机图形(CG)技术、计算机仿真技术、人工智能、传感技术、显示技术、网络并行处理等技术的最新发展成果,是一种由计算机技术辅助生成的高技术模拟系统。概括地说,虚拟现实是人们通过计算机对复杂数据进行可视化操作与交互的一种全新方式,与传统的人机界面以及流行的视窗操作相比,虚拟现实在技术思想上有了质的飞跃。虚拟现实中的“现实”是泛指在物理意义上或功能意义上存在于世界上的任何事物或环境,它可以是实际上可实现的,也可以是实际上难以实现的或根本无法实现的。而“虚拟”是指用计算机生成的意思。因此,虚拟现实是指用计算机生成的一种特殊环境,人可以通过使用各种特殊装置将自己“投射”到这个环境中,并操作、控制环境,实现特殊的目的,即人是这种环境的主宰。1.2虚拟现实的分类一般说来,我们可以从不同角度对虚拟现实进行分类。例如,按照参与者沉浸程度的不同,可以将虚拟现实分为四类:(1)桌面虚拟现实桌面虚拟现实通常利用个人计算机(PC)进行仿真,将电脑的屏幕作为用户观察虚拟环境的窗口。观看者可以通过各种外部输入设备与虚拟现实世界进行交互,并操纵其中的物体。这些外部设备包括鼠标、追踪球、力矩球等。桌面虚拟现实的缺点是缺乏真正的接近现实的体验,但相对来说成本较低,使其应用比较广泛。常见的桌面虚拟现实技术有:基于静态图象的虚拟现实QuickTimeVR,虚拟现实造型语言VRML等。(2)沉浸式虚拟现实高级虚拟现实系统提供完全沉浸的体验,使用户有一种置身于虚拟世界之中的感觉。通常利用头盔式显示器或者其他设备,把参与者的视觉、听觉等其他感觉封闭起来,而提供一个新的、虚拟的感觉空间,同时利用位置跟踪器、数据手套以及其他手控输入设备等使得参与者产生一种身临其境、全心投入和沉浸其中的感觉。常见的沉浸式系统有基于头盔式显示器的系统、投影式虚拟现实系统等。(3)增强现实式虚拟现实增强现实式的虚拟现实不仅是利用虚拟现实技术来模拟现实世界、仿真现实世界,而且要利用它来增强参与者对真实环境的感受,也就是增强现实中无法感知或不方便感知的感受。典型的例子是坦克驾驶员的平视显示器,它可以将仪表读数和武器瞄准数据投射到安装在驾驶员面前的穿透式屏幕上,使坦克驾驶员不必低头读座舱中仪表的数据,从而可集中精力调整导航偏差。(4)分布式虚拟现实如果将多个用户通过电脑网络连接在一起,同时在一个虚拟空间中活动,共同体验虚拟的经历,就能把虚拟现实提升到一个更高的境界,这就是分布式虚拟现实系统。在分布式虚拟现实系统中,多个用户可通过网络对同一虚拟世界进行观察和操作,以达到协同工作的目的。目前最典型的分布式虚拟现实系统是SIMNET,该系统由坦克仿真器通过网络连接而成,用于部队的联合训练。通过SIMNET系统,位子欧洲的仿真器可以和位于美国的仿真器同时运行在同一个虚拟世界中,参与同一场作战演习。1.3虚拟现实在教育中的应用虚拟现实应用于教育是教育技术发展的一个飞跃。它营造了“自主学习”的环境,由传统的“以教促学”的学习方式代之为学习者通过自身与信息环境的相互作用来得到知识、技能的新型学习方式。它主要具体应用在以下几个方面:科技研究当前许多高校都在积极研究虚拟现实技术及其应用,并相继建起了虚拟现实与系统仿真的研究室,将科研成果迅速转化实用技术,如北京航天航空大学在分布式飞行模拟方面的应用;浙江大学在建筑方面进行虚拟规划、虚拟设计的应用;哈尔滨工业大学在人机交互方面的应用;清华大学对临场感的研究等都颇具特色。有的研究室甚至已经具备独立承接大型虚拟现实项目的实力。虚拟学习环境虚拟现实技术能够为学生提供生动、逼真的学习环境,如建造人体模型、电脑太空旅行、化合物分子结构显示等,在广泛的科目领域提供无限的虚拟体验,从而加速和巩固学生学习知识的过程。亲身去经历、亲身去感受比空洞抽象的说教更具说服力,主动地去交互与被动的灌输,有本质的差别。虚拟实验利用虚拟现实技术,可以建立各种虚拟实验室,如地理、物理、化学、生物实验室等等,拥有传统实验室难以比拟的优势:1、节省成本通常我们由于设备、场地、经费等硬件的限制。许多实验都无法进行。而利用虚拟现实系统,学生足不出户便可以做各种实验,获得与真实实验一样的体会。在保证教学效果的前提下,极大的节省了成本。2、规避风险真实实验或操作往往会带来各种危险,利用虚拟现实技术进行虚拟实验,学生在虚拟实验环境中,可以放心地去做各种危险的实验。例如:虚拟的飞机驾驶教学系统,可免除学员操作失误而造成飞机坠毁的严重事故。3、打破空间、时间的限制利用虚拟现实技术,可以彻底打破时间与空间的限制。大到宇宙天体,小至原子粒子,学生都可以进入这些物体的内部进行观察。一些需要几十年甚至上百年才能观察的变化过程,通过虚拟现实技术,可以在很短的时间内呈现给学生观察。例如,生物中的孟德尔遗传定律,用果蝇做实验往往要几个月的时间,而虚拟技术在一堂课内就可以实现。虚拟实训基地利用虚拟现实技术建立起来的虚拟实训基地,其“设备”与“部件”多是虚拟的,可以根据随时生成新的设备。教学内容可以不断更新,使实践训练及时跟上技术的发展。同时,虚拟现实的沉浸性和交互性,使学生能够在虚拟的学习环境中扮演一个角色,全身心地投入到学习环境中去,这非常有利于学生的技能训练。包括军事作战技能、外科手术技能、教学技能、体育技能、汽车驾驶技能、果树栽培技、电器维修技能等各种职业技能的训练,由于虚拟的训练系统无任何危险,学生可以不厌其烦地反复练习,直至掌握操作技能为止。例如:在虚拟的飞机驾驶训练系统中,学员可以反复操作控制设备,学习在各种天气情况下驾驶飞机起飞、降落,通过反复训练,达到熟练掌握驾驶技术的目的。虚拟仿真校园教育部在一系列相关的文件中,多次涉及到了虚拟校园,阐明了虚拟校园的地位和作用。虚拟校园也是虚拟现实技术在教育培训中最早的具体应用,它由浅至深有三个应用层面,分别适应学校不同程度的需求:简单的虚拟我们的校园环境供游客浏览基于教学、教务、校园生活,功能相对完整的三维可视化虚拟校园以学员为中心,加入一系列人性化的功能,以虚拟现实技术作为远程教育基础平台虚拟远程教育虚拟现实可为高校扩大招生后设置的分校和远程教育教学点提供可移动的电子教学场所,通过交互式远程教学的课程目录和网站,由局域网工具作校园网站的链接,可对各个终端提供开放性的、远距离的持续教育,还可为社会提供新技术和高等职业培训的机会,创造更大的经济效益与社会效益。随着虚拟现实技术的不断发展和完善,以及硬件设备价格的不断降低,我们相信,虚拟现实技术以其自身强大的教学优势和潜力,将会逐渐受到教育工作者的重视和青睐,最终在教育培训领域广泛应用并发挥其重要作用。1.4虚拟现实技术虚拟现实技术也称灵境技术,它是虚拟环境实现的基础,在虚拟世界的创建中占据重要地位。那么,什么是虚拟现实技术呢?虚拟现实技术是多媒体技术广泛应用后兴起的更高层次的计算机技术,它利用三维图形生成技术、多传感交互技术以及高分辨显示技术,生成三维逼真的虚拟环境,用户戴上特殊的头盔、数据手套等传感设备,或利用键盘、鼠标等输入设备,便可进入虚拟空间,成为虚拟环境的一员,进行实时交互,感知和操作虚拟世界中的各种对象,从而获得身临其境的感受和体会。事实上,虚拟现实技术不仅仅是指戴着头盔和数据手套的技术,而且还应该包括一切与之有关的具有自然模拟、逼真体验的技术与方法,它的根本目标就是达到真实体验和基于自然技能的人机交互。也可更为具体地给虚拟现实技术作如下的定义:虚拟现实技术是利用计算机生成一种模拟环境,通过多种传感设备使用户“投入”到该环境中,实现用户与该环境直接进行自然交互的技术。虚拟现实技术的主要特点包括以下3个方面:(1)更自然的交互性用户对模拟环境内物体的可操作程度和从环境得到反馈的自然程度(包括实时性)。例如,用户可以用手去直接抓取视场中的物体,这时手有握着真实物体的感觉,同时还可以感觉物体的重量,视场中的物体也将随着手的移动而移动,随着手的挤压而变形。(2)多感知性除了一船电脑所具有的视觉和听觉感之外,还有力学感知、触觉感知、运动感知、甚至包括味觉感知、嗅觉感知等。理想的虚拟现实就是应该具有人所具有的所有感知功能。(3)沉浸性指用户感到作为虚拟环境中的一员存在于虚拟环境之中,即感觉身临其境。如当用户转动头部时,虚拟环境中的视景也实时地跟着变化:移动数据手套时,虚拟环境中的手中的物体也跟着移动。理想的模拟环境应该达至。使用户难以分辨真假的程度,使得参与者产生一种身临其境、投入和沉浸其中的感觉。从本质上说,虚拟现实技术就是一种先进的计算机用户接口技术,它通过给用户同时提供诸如视、听、触等各种直观而又自然的实时感知交互手段,最大限度地方便用户的操作,从而减轻用户的负担,提高整个系统的工作效率。根据虚拟现实实现的手段不同,我们可以把虚拟现实技术分为以下两大类:(1)使用专用硬件实现的虚拟现实技术譬如在视觉方面有头盔式立体显示器等,在听觉方面有三维音响输出装置,在力觉、触觉、运动感等方面有数据手套、数据衣,以及语音识别、眼球运动检测等装置。在未来,还将开发出具备味觉、嗅觉功能的系统,从而使虚拟世界更加接近真实。但是由于硬件设施的价格昂贵、操作复杂,因此使用专用硬件的技术近期不可能普及,只能停留在实验室或者小范围试用阶段。(2)基于网络的虚拟现实技术在Internet网上,我们可以应用VRML语言、全景环视技术、Java语言等等技术来实现虚拟现实,也称网上虚拟现实技术。它是前述的桌面虚拟现实与Internet相结合的产物。其优点是使用简单,便于推广。HYPERLINK返回

二、VRML技术2.1VRML概述熟悉WWW的人们都知道,受HTML语言的局限性,VRML(VirtualRealityModelingLanguage,虚拟现实建模语言)之前的网页只能是简单的平面结构,虽然Java语言为WWW增色不少,但也仅仅停留在平面设计阶段,而且实现环境与参与者的动态交互是非常烦琐的。于是,VRML就应运而生了。VRML是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(VirturalWorld)。VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。VRML的出现使得虚拟现实象多媒体和因特网一样逐渐走进我们的生活。VRML以因特网作为应用平台,最有希望成为构筑虚拟现实应用的基本构架。总之,VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体,兼具先进性和普及性,是关心三维图形、多媒体、新一代网页开发和虚拟现实技术的人士应密切注意的。WorldWideWeb是建立在基于HTTP的网络协议和超文本的信息内容的基础上的,HTML语言描述了不同类型文本、图像、声音、视频如何进行超文本的二维表示格式和方法。它用二维方式让文本和图像能同时显示。HTML是面向二维的,它规定二维文档如何表示,随着Internet技术的发展,需要突破二维限制,实现环境与参与者的动态交互功能,于是,一种描述三维文档表示的语言VRML应运而生。VRML是一个开放的、可扩充的三维场景建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界。VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。VRML是面向三维的,它描述在WorldWideWeb上如何创建和浏览三维场景。因为二维是三维的一个子集,所以任何二维对象都能在三维环境中轻松地表示出来。Web之父TimBernersLee预测,VRML是Web的未来,因为对人们来说,沉浸在三维空间中要比在二维平面上按动鼠标要自然的多。VRML以因特网作为应用平台,利用一定的工具,就可以浏览和创作具有文本、图像、动画、声音、音乐,甚至视频的丰富多彩的三维世界。现在,由于加入了与Java和JavaScript程序的接口将支持复杂的三维动画、模拟和行为,设计者可以引导参观者在三维空间游览并把注意力放在感兴趣的点上,而不是要强制参观者做出选择,就像在现实世界,如何去观察一个对象完全由参观者自己控制。VRML的出现使得虚拟现实像多媒体和因特网一样逐渐走进我们的生活,简单地说,以VRML为基础的第二代万维网是多媒体、虚拟现实和因特网之和。第一代万维网是一种访问文档的媒体,能够提供阅读的感受,使那些对Windows风格的PC环境熟悉的人们容易使用因特网,而以VRML为核心的第二代万维网将使用户如身处真实世界,在一个三维环境里随意探索因特网上无比丰富的巨大信息资源。每个人都可以从不同的路线进入虚拟世界,和虚拟物体进行交互,这样控制感受的就不再是计算机,而是用户自己。人们可以以习惯的自然方式访问各种场所,在虚拟社区中“直接”交谈和交往。事实上,目前采用VRML技术取得成功的案例已经很多,例如探路者到达火星后的信息就是利用VRML在因特网上即时发布的,网络用户可以以三维方式随探路者探索火星。2.2VRML的历史最初的三维浏览器叫做Labyrith,它诞生于1994年2月,是由MarkPesce和TonyParisi两人开发的。他们把它带到几个国际大型展示会上作了演示。1994年5月,在瑞士日内瓦召开的万维网(www)会议上,MarkPesce和TonyParisi在会上介绍了这个可浏览万维网上三维物体的界面。这时,由一个情趣相投者联谊会BOF马上产生强烈的反响,决定开发一种场景描述语言,它可以连通Web网。当代Web的奠基人TimBerners-Lee提出了需要制定一个3DWeb标准,并创建了虚拟现实标记语言VRML(VirtualRealityMarkupLanguage)这一名字。(BOF来自一句英语的谚语:Birdsofafeather)Parisi和Pesce认为推广它的最好的方式就是免费赠送,并说服了美国《线路通》(Wired)杂志的BrianBehlendorf开始设置名为的电子邮件列表,在一个月之内,收集到一份有意于参与开发VRML人员的电子邮箱通讯录,那只不过是开初一周内登录的志愿人员,已超过千人。VRML的名字很快更改为“VirtualRealityModelingLanguage”即“虚拟现实造型语言”,以反映它强调的是整个世界,而不是单纯的文本页。其中有一位GavinBell,他是SGI(硅图公司SiliconGraphicsInc.)的工作组的工程师。OpenInventor是SGI推出的一工具软件,便于程序员快速、简洁地开发各种类型的交互式3D图形程序。这种工具软件的编制是基于场景结构和对象描述概念和手段。1992年,最初发布时名称为Inventor。工作组每周举行一次例行的午餐会,尽管外人对其中奥妙一无所知,但很多工作组的内部事务,往往在这种不拘形式的随意交谈中得以完成。GavinBell正是利用了一次这种场合,告诉他的主管经理RillCarey关于VRML的事情,说明急需建立一种可在Web网上运行、描述3D场景的语言。到聚餐结束时,Carey已决心从事于这场新的开拓(后来两人合办了Wasabisoft)。1994年初夏,第一次WWW会议期间初步决定,十月份在芝加哥召开第二次WWW会议,也就是说只留出五个月的时间。在这段时间里,能否拟出一个VRML规范的初步方案?BOF成员和自愿加入开发新规范行列的热心网客信心十足。他们一致认为:在下次会议之前,一个内部试用语言规范一定能完成。总的意向是:就一个业已存在的语言加以改造比较稳妥,而另起炉灶,从头开始重干一个全新,则不太可行。事实上,不过用了两周时间,Bell就提出了SGI的方案它是一个经过修改的OpenInventor3D模拓文件(Metafile,元文件)格式的子集,在附加一些处理网络的相应功能和措施。SGI同意将这种新的文件格式向公众开放不需要任何专利权和专卖权,供大家使用。还有几项颇有讨论价值的方案也先后提交,参加候选。Pesce和Behlendorf公允的主持了方案的论证会,最后投票结果,SGI方案赢得了多数。这就意味着VRML是脱胎于OpenInventor的文件格式。这就是1994年10月在芝加哥(Chicago)召开的第二次WWW会议上公布VRML1.0的规范草案。主要的功能是完成静态的3D场景,以及与HTML链接的功能和措施。另一位SGI的原OpenInventor的设计师PaulStrauss开始作一个VRML公共域(publicdomain)的词解程序(Parser),当时流行于业界的名字叫QvLib。这个程序的作用是把VRML的可读文件格式转换成浏览器可理解的格式。这个词解程序于1995年1月公开发布。它可以安装到各式各样的平台上,随之,各种浏览器恰似雨后春笋般勃然兴盛起来。可以理解和显示所有VRML文件的浏览器,最早还是出自SGI,由DavidMott和多位Inventor的工程师写成的WebSpaceNavigator。不久,模板图形软件(TemplateGraphicsSoftware)运行于WebSpace,不仅适用于SGI平台,也适用于多种其它平台,而且所有版本的WebSpaceNavigator浏览器均免费使用。1995年秋,SGI进一步推出了WebSpaceAuthor(供创作的程序)。这是一种Web创作工具,可在场景内交互地摆放物体,并改进了场景的功能,还可用于发表VRML文件。此时,VRML设计工作组(VGA,VRMLArchitectureGroup)相聚在一起,讨论下一个版本的VRML。1996年初,VRML委员会审阅并讨论了若干个VRML2.0版本的建议方案,其中有SGI的动态境界(MovingWorlds)提案、太阳微系统(SunMicrosystem)的全息网(HollWeb)、微软公司(Microsoft)的能动VRML(AictiveVRML)、苹果公司(Apple)的超世境界(Outoftheworld),以及其他多种提案。委员会的很多成员参与修改和完善这种种方案,特别是MovingWorlds。经过多方努力,最终在2月底以投票裁定。结果,MovingWorlds以70%选票赢得了绝对多数。1996年3月,VGA(VRML设计小组)决定将这个方案改造成为VRML2.0。1996年8月在新奥尔良(NewOrleans)召开的优秀3D图形技术会议-Siggraph'96上公布通过了规范的VRML2.0标准。它在VRML1.0的基础上进行了很大的补充和完善。比VRML1.0增加了近30个节点,增强了静态世界,使3D场景更加逼真,并增加了交互性、动画功能、编程功能、原形定义功能。1997年12月VRML作为国际标准正式发布,1998年1月正式获得国际标准化组织ISO批准(国际标准号ISO/IEC14772-1:1997)。简称VRML97。VRML97只是在VRML2.0基础进行上进行了少量的修正。但它这意味着VRML已经成为虚拟现实行业的国际标准。1999年底,VRML的又一种编码方案X3D草案发布。X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度。以及对数据流强有力的控制,多种多样的交互形式。2000年6月世界web3D协会发布了VRML2000国际标准(草案),2000年9月又发布了VRML2000国际标准(草案修订版)。2002年7月23日,web3d联盟日前发布了可扩展3D(X3D)标准草案并且配套推出了软件开发工具供人们下载和对这个标准提出意见。这项技术是虚拟现实建模语言(VRML)的后续产品,是用XML语言表述的。X3D基于许多重要厂商的支持,可以与MPEG-4兼容,同时也与VRML97及其之前的标准兼容。它把VRML的功能封装到一个轻型的、可扩展的核心之中,开发者可以根据自己的需求,扩展其功能。X3D标准的发布,为Web3D图形的发展提供了广阔的前景。2.3VRML的工作组及其研究目标为了推动VRML技术的发展,VRML协会组织了很多工作组,每个工作组都是自愿组织、自我约束、并经VRML协会认可的技术委员会,负责某个与VRML有关的专题技术的研究和实现工作。下面介绍目前已组建的工作组及其研究目标,它们基本涵盖了VRML的主要发展动向。人性动画工作组(HumanoidAnimationWG)利用VRML表现人类行为特性。色彩保真工作组(ColorFidelityWG)确保采用任何平台的观众所看到的效果都和创作者的原始作品一样,颜色应相当一致。元形式工作组(MetaFormsWG)针对利用形式文法生成的作品,提出一般性的方法论和一般性规范,使之能够映射为某种特定形式。首要目标是能够表示"数字生命格式"(DigitalLife-Forms)结构和增长。面向对象扩展工作组(Object-OrientedExtensionsWG)探讨和推动对VRML进行面向对象扩展的方法。数据库工作组(DatabaseWG)推进基于VRML商业应用的创建,利用数据库维护VRML内容的持久性、升级能力和安全传输能力。外部创作接口工作组(ExternalAuthoringInterfaceWG)在VRML境界和外部环境之间建立标准接口。界面组件工作组(WidgetsWG)为开发者和用户提供一套基础性的、可自由使用的标准用户界面组件集,并提供支持基本组件集和所有VRML组件的理论框架。二进制压缩格式工作组(CompressedBinaryFormatWG)探讨并开发VRML文件的二进制编码方法,重点是研究为了快速传送目的而尽量缩小文件尺寸,同时为了快速解码目的而尽量简化文件结构。通用媒体库工作组(UniversalMediaLibrariesWG)为了提高VRML境界的真实感,同时减少网络的下载量,而定义一种由驻留本地的媒体元件(纹理、声音和VRML对象)组成的小型跨平台媒体库。同时定义一种统一机制,通过这种机制,VRML内容创作者可以在自己的境界中使用这些媒体元件。活动境界工作组(LivingWorldsWG)为多用户(包括多个开发者)应用的产生和进化定义概念框架,并确定一组界面。键盘输入工作组(KeyboardInputWG)为了使内容创作者能够在自己的境界中访问键盘输入,定义一个或多个扩充节点。一致性工作组(ConformanceWG)为与一致性测试有关的问题提供一个讨论场所,特别地,本组将辨别VRML实现发生分歧的地方以及相应的动作序列。生物圈工作组(BiotaWG)为生命系统(LivingSystem)的研究和学习建立、配备数字式工具和环境。分布式交互仿真工作组(DistributedInteractiveSimulationWG)为建立有多广播能力(Multicast-Capable)的大规模虚拟环境(Large-ScaleVirtualEnvironments,LSVEs)确立初始网络约定。VRML脚本工作组(VRMLScriptWG)向VRML监查组(VRMLReviewBoard,VRB)提供有关Java和JavaScript的问题列表、修改建议和评论。自然语言处理和动画工作组(NLP&AnimationsWG)为了使用户能使用自然语言和VRML动画形象进行交流,从而使交互更自然,增强用户和动画形象之间的信息流动,研究如何使用“问题/回答”、“命令/响应”式的对话以及基于操作系统命令和字符控制的自然语言。VRML-DHTML集成工作组(VRML-DHTMLIntegrationWG)为VRML和DHTML在文档对象模型、组件(Component)接口和绘制等三个层次的紧密集成开发一种概念模型。2.4VRML的研究现状

虚拟现实技术的发展,是在网络技术前进基础上,融合多种技术的结果随着网络时代宽带大规模应用的到来,市场对虚拟现实技术的应用越来越迫切,大有风雨欲来,风满楼之势。VRML97发布后,互联网上的3D图形几乎都使用了VRML。由于技术的局限性,如带宽不够,需要下栽插件浏览,文件量大,真实感、交互性需要进一步加强等原因,最近一二年,许多制作Web3D图形的软件公司的产品,并没有完全遵循VRML97标准,而是使用了专用的文件格式和浏览器插件,开发了比较实用的VR软件。这些软件有些比VRML有了进步,在渲染速度、图像质量、造型技术、交互性以及数据的压缩与优化上,都有胜过VRML之处。比如,Cult3D、Viewpoint、GL4Java、Pulse3D、Flatland、Flash、JPEG2000等。这些公司都希望自己的解决方案能成为“事实上的国际标准”。CULT3D、VIEWPOINT、360度环视等技术正逐步被应用。虚拟现实技术在国际互联网的应用已有重大变革。象AUTODESK/DISCREET、MRCROMEDIA、ADOBE等知名IT公司均保持与虚拟现实技术的紧密联系,或有接口,或发布相关产品,加大在互联网的比重。X3D孕育而出。以Blaxxun和ParallelGraphics公司为代表,它们都有各自的VR浏览器插件,并各自开发基于VRML标准的扩展节点功能,使3D的效果,交互性能更加完美;支持MPEG,Mov、Avi等视频文件,Rm等流媒体文件,Wav、Midi、Mp3、Aiff等多种音频文件,Flash动画文件,多种材质效果,支持Nurbs曲线,粒子效果,雾化效果;支持多人的交互环境,VR眼镜等硬件设备;在娱乐、电子商务等领域都有成功的应用,并各自为适应X3D的发展,以X3D为核心,有Blaxxun3D等相关产品。在虚拟场景,尤其是大场景的应用方面,以VRML标准为核心的技术具有独特的优势。2.5VRML的应用VRML在电子商务、教育、工程技术、建筑、娱乐、艺术等领域的广泛应用,将会促使它迅速发展,并成为构建虚拟现实应用系统的基础。虚拟现实作为一种全新的人机接口技术,必须研究用户和计算机之间的协调关系问题,这样一个问题只有通过大量的使用才能逐步解决,VRML以因特网作为应用平台,最有希望成为构筑虚拟现实应用的基本构架。自从1994年以来,欧洲数字城市会议每年举行一次,最近的数字城市的活动中加入了三维技术,基于VRML的实验性数字城市主要有数字化赫尔辛基、柏林、华盛顿特区、洛杉矶和京都。我国上海交通大学ICHI实验室在这方面也作了大量研究。国内还开发过一些基于VRML97的应用系统,如浙江公众信息产业有限公司的3Dworld。例如在教育上,VRML不仅仅是HTML功能更强的替代品,其潜在意义在于突破上述基于WWW的教学模型建立更自然、更真实的虚拟教育环境。在这种环境中学生可以以浏览探索的方式汲取知识,如进入虚拟太空学习天文知识,利用虚拟地球学习地理知识,穿过历史长廊与历史人物交流,进入分子世界游历化学殿堂等等,这些曾经是梦想中的学习方式都可以逐步实现。在这个虚拟教育世界中,甚至可以有利用VRML制作的动画人物扮演教师,其面部表情和形体动作利用动作跟踪系统捕捉下来,这样得到的讲课节目将是三维的,更重要的是它不像视频节目那样需要大量的存储量和网络带宽,用户通过Modem和电话线即可收看这种节目,其有关试验最近已经取得成功。如果把这种方式扩大到教学双方,则可实现具有实时交互性的虚拟教学——教师控制的虚拟教师和学生控制的虚拟学生就可以在一个虚拟教室中相互交流。VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体,兼具先进性和普及性,是关心三维图形、多媒体、新一代网页开发和虚拟现实技术的人士应密切注意的。2.5.1网上虚拟实验室网上虚拟实验室,也称网上仿真实验室。它是通过WWW创建一个可视化三维环境,其中每一个可视化的三维物体代表一种试验对象,通过鼠标点击等操作,用户可以进行虚拟控制、操作等以达到试验目的。网上虚拟试验的主要优点:(1)使用方便,无须回到现实的实验室,随时随地只要能上网就可以开展试验。(2)成本低廉,与现实实验室相比而言,大多数网上虚拟实验室的成本都要低很多。(3)减少干扰,可以避免现实实验室的无关干扰,如:接触不良,仪器故障等。(4)应用广泛,以计算机网络为载体,网上虚拟实验室适应性好,收益面广。目前,网上虚拟实验室已经很多,包括从力学、电磁学、热学、化学试验等方面。例如:美国俄勒冈大学物理实验室。美国俄勒冈大学物理系(UniversityofOregon,DepartmentofPhysics)主办的虚拟物理实验网站,(网址:)。其主要内容分为四大部分:天体物理、能量与环境、力学和热学,该网站的主页如图4.22所示。图4.22美国俄勒冈大学物理系的虚拟物理实验网站界面2.5.2网上观景实例为了介绍某一景点,经常需要将观看现实的景色,但是又无法实现实地考察,这时利用网上观景网站是一种很有效的方法。目前,网上观景站点也比较多,例如:故宫博物院,网址:,该网站是一个应用全景环视图像技术制作的网上虚拟现实景观展示网站,其中提供了大量的三维全景环视图,观众能够用鼠标控制三维图的方向和角度。其界面如图4.23所示。图4.23“故宫博物院”界面2.5.3网上物体展示网上虚拟现实技术除了展示全景画面以外,还可以用来有效地表现一个物体对象的外观和内部情况,因此,在展示实物的外观与内景时也经常会用到网上虚拟现实技术。比如:上海杰图软件技术有限公司已成功开发出“三维全景制作软件”、“360度虚拟物体制作软件”和“房地产展示制作软件”。其网址为:,图4.24为“纪念馆大厅”的虚拟全景。图4.24“纪念馆大厅”的虚拟全景2.5.4VRML应用网站万维网上有关VRML技术的站点很多,但万维网上站点变化很快,有些以前很热门的站点现在已消失。现提供几个目前尚能访问到的有关站点供大家参考:3/Web3D协会:Web3D协会是虚拟现实技术的权威机构。最新的VRML技术规范由它在网站上发布。同时在网站上也可以了解业界新闻、技术支持、源代码资源、协会成员等。

中国虚拟空间设计中心:中国国内关于虚拟现实的权威站点,致力于虚拟现实技术的推广和应用。除了有业界新闻、规范标准、学习教程、精品实例、相关资源链接,还有商业型网站的策划和建设,三维产品展示系统的构架等。

中国虚拟现实秀:中国国内专业的虚拟现实技术网站,内容很丰富。虚拟无忌网()的目标是:为虚拟现实应用创造一个极其丰富的共享资源平台和交流平台。目前该网站共分五大模块,紧密结合虚拟现实,所容纳的技术达几十种之多,涉及2D交互、3D交互、虚拟现实、多媒体、视频等几大相互交错的技术领域。并努力展现当前最新的技术和信息。其网站界面如图4.20所示。图4.20虚拟无忌网的界面VRML论坛:Web形式的技术论坛,VRML技术的高手经常光顾。是探讨交流技术的好去处。

天极网:天极网关于VRML的最新的技术资料,是以文章的形式编排的,从VRML的发展史到VRML的深入应用都有详细的介绍。

http://vrml网点杂志,学习、研究VRML的好站点。

./~crispen/vrml:可下载VRML教材及有关VRML理论,站点内容非常丰富、多彩。VRML资源展示MyGallery的网址为,是一个VRML的图库,并包含有相关的VRML基础知识及其源程序。其界面如图4.21所示。图4.21MyGallery的界面下载相关软件HYPERLINK返回

三、VRML编程基础3.1VRML的工作原理VRML是一种用在Internet和Web超链上的,多用户交互的,独立于计算机平台的,网络虚拟现实建模语言。虚拟世界的显示、交互及网络互连都可以用VRML来描述。VRML的设计是从在WEB上欣赏实时3D图象开始的。VRML浏览器既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时3D着色引擎。这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。VRML提供了6+1度的自由,用户可以沿着三个方向移动,也可以沿着三个方向旋转,同时还可以建立与其它3D空间的超链接。因此VRML是超空间的。VRML定义了一种把3D图形和多媒体集成在一起的文件格式。从语法角度看,VRML文件是显式地定义和组织起来的3D多媒体对象集合;从语义角度看,VRML文件描述的是基于时间的交互式3D多媒体信息的抽象功能行为。VRML文件描述的基于时间的3D空间称为虚拟境界(VirtualWorld),简称境界,所包含的图形对象和听觉对象可通过多种机制动态修改。VRML文件可以包含对其他标准格式文件的引用。可以把JPEG、PNG和MPEG文件用于对象纹理映射,把WAV和MIDI文件用于在境界中播放的声音。另外,还可以引用包含Java或ECMAScript代码的文件,从而实现对象的编程行为。所有这些都是由其他标准提供的,之所以在VRML中选用它们,是因为它们在Internet上的广泛应用。VRML97规范描述了它们在VRML中的用法。VRML使用场景图(SceneGraph)数据结构来建立3D实境,这种数据结构是以SGI开发的OpenInventor3D工具包为基础的一种数据格式。VRML的场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。几乎所有生产厂商,无论是CAD、建模、动画、VR,还是VRML,他们的结构核心都有场景图。境界中的对象及其属性用节点(Node)描述,节点按照一定规则构成场景图(SceneGraph),也就是说,场景图是境界的内部表示。场景图中的第一类节点用于从视觉和听觉角度表现对象,它们按照层次体系组织起来,反映了境界的空间结构。另一类节点参与事件产生和路由机制,形成路由图(RouteGraph),确定境界随时间的推移如何动态变化。VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示HTML文件的机制完全相同。浏览器把场景图中的形态和声音呈现给用户,这种视听觉呈现即所谓的虚拟世界(境界)。用户通过浏览器获得的视听觉效果如同从某个特定方位体验到的,境界中的这种位置和朝向称为取景器(Viewer)。VRML的访问方式是基于客户/服务器模式的。其中服务器提供VRML文件及支持资源(图像、视频、声音等),客户端通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式地访问该文件描述的虚拟境界。由于浏览器是本地平台提供的,从而实现了平台无关性。下图描述了VRML的工作方式。VRML是一个开发标准,为了加强协作,避免技术重复和市场冲突,而鼓励其他技术引用VRML或成为VRML的一部分。与VRML关系密切的三项技术是Java3D、MPEG-4和Chrome。其中,Java3D和VRML都把3DWeb作为关键应用对象,前者的优势在于程序设计,后者的优势在于场景构造,二者在可编程性3DWeb应用方面密切合作。MPEG-4面向基于内容的交互式视讯应用,可以为VRML提供流技术、压缩和音响同步技术,而MPEG-4用VRML来描述3D内容。在2D页面集成方面,可以探索VRML和Microsoft的Chrome协作的可能性。理解VRML的工作原理十分关键的一点是:VRML文件最直接的执行者是VRML浏览器。VRML文件是以扩展名WRL结尾的一种用来描述几何形体的ASCII文本文件,它不需要任何编译。当VRML文件被执行时,系统首先加载一个内嵌的VRML浏览器,该浏览器将VRML语言中的信息解释成空间中的目标几何体,如球体、长方体等;同时该浏览器提供实时地显示,并不断地刷新,因此用户在计算机上便可以产生一种活动场景的感觉。3.2VRML浏览器要想观看VRML文件生成的三维交互世界,在硬件上,无需其他的设备,目前的PC机完全可以满足要求;软件上,只需要在客户端安装VRML插件,即VRML浏览器,目前最流行的VRML浏览器是:微软内嵌在IE4.0以上版本的MiscrosoftVRML2.0Viewer浏览器SGI公司提供的Cosmoplayer浏览器ParallelGraphics公司的CortonaVRMLClient浏览器()blaxxun公司的blaxxunContact浏览器3.3VRML制作工具3.3.1VRML代码编辑软件1.使用文本编辑器。由于VRML的文件格式是一般的文本文件,因而基本上可以使用任何纯文本编辑器进行编写创作,如:记事本、写字板等。但是,由于纯文本编辑器不具有*.wrl文件自动格式化功能,所以如果想编写具有清晰层次感、可读性强的VRML文件比较困难;且纯文本编辑器没有自动检错功能,在语法纠错方面存在很大不便。2.使用专门的文件编辑器。常用的VRML源码编辑软件有ParallelGraphics的VrmlPad()和ModelworksSoftware的sitePadPro(),最值得推荐的编辑器是:VrmlPad2.0。它具有强大的程序编写辅助功能,代码编写效率很高。另外对编辑时出现的语法错误,自动用红色波浪线给予提示,与用纯文本编辑工具相比,可以省去大量纠错时间。3.3.2可视化VRML制作工具1、用传统的通用三维制作软件如3dsmax、Maya和Cinema4D,都能将三位静态场景或三维动画转换为vrml格式。使用3dsmax等图形转换工具。对于复杂的造型,直接编写代码实现较困难,可采用3dsmax等工具进行转换。3dsmax是一个功能强大三维模型构建软件,应用3dsmax强大造型功能,可以构建出所需的复杂三维模型。在3dsmax中构建出所需的三维模型后,通过3dsmax中的File中Export命令导出为*.wrl格式的文件,再进行适当的修改就可得到我们所需的模型。2、用VRML制作专用工具软件ParallelGraphics公司的InternetSpaceBuilder()Silicon公司的中文版CosmoWorlds(最优秀)()Virtul公司的3DWebSiteBuliderMacromeida公司的Extreme3D3.4VRML2.0的基本语法知识3.4.1VRML文件结构在这里,我们通过一个简单的VRML文档的例子,对VRML文档中最基本的格式标记进行介绍。该例子是在屏幕上建立一个不显示顶面的杯状圆柱体,其源文件如下所示:#VRMLV2.0utf8Shape{appearanceAppearance{#VRMLV2.0utf8Shape{appearanceAppearance{materialMaterial{}#用默认材质和颜色diffuseColor1.01.00.0}geometryCylinder{radius3height6sideTRUEtopFALSEbottomTRUE}}#VRML文件头通知浏览器该文档由VRML的2.0版本编写的,且符合ISO的UTF-8编码标准外形节点是几何对象最基本的组节点,它把各个松散的几何点拉到虚拟空间中的相应位置,形成一个规则的几何体。外形节点是几何对象最基本的组节点,它把各个松散的几何点拉到虚拟空间中的相应位置,形成一个规则的几何体。定义外观定义外观定义材质定义颜色定义形状为圆柱定义形状为圆柱“radius3”表示赋予半径值为3。“height6”表示赋予高值为6“sideTRUE”表示圆柱壁可视“topFALSE”表示顶面不可视“bottomTRUE”表示底面可视VRML2.0文件的扩展名必需为wrl或wrz例如:car.wrl(普通格式),bus.wrz(压缩格式,可用Winzip等打开)。一个VRML文档,通常由4部分组成。①文件头:它是提供给浏览器文件的版本信息,VRML文档中开头的一行,用来通知浏览器该文档所遵循的VRML版本。例如“#VRML1.0utf8”这里的VRML1.0是指以下文件是由VRML语言的1.0版本编写,utf8指本文件采用ISO的UTF-8编码标准。②节点:是VRML文件的基本组成元素。VRML的基本语句为节点语句,VRML有54个节点,可以把它分为以下几类:shape(形状)节点描述物体在空间中的几何形状;property(性质)节点定义形状节点的渲染方式(颜色,表面纹理等);group(成组)节点将多个其他节点组合成一个节点,便于统一处理;environment(环境效果)节点例如各种性质的光源等。此外,VRML语言还定义了一些提供特殊功能的节点,例如超链接、碰状检测等。每一个节点语句均以节点名开头,后面带有一个花扩弧串,里面给出参数和参数值,参数称为字段或域(field),参数值称为字段值或域值。③字段(域):用来描述及改变节点属性的大小,它存储着节点的各种值。填写字段时,首先给出字段名,再给出字段的具体内容,字段的具体内容有些是具体数值,如高度、半径、颜色、长宽高尺寸,有些则是另一个节点语句,因而节点语句可以多层镶套,即有多层花扩弧。字段名均以小写开头,节点名均以大写开头有时字段名和节点名基本相同,如appearance和Appearance字段值从数据结构上,可以分成两类,其中一类只包含一个值(一个值可以是一个数、一个矢量、或者甚至是一幅图像),其数值类型命名以SF开头;另一类可以包含多个值,可以看作数组,以MF开头。④注释:VRML文件中的注释语句是以“#”号开始的字符串,范围是从“#”号到这一行的行尾,不影响文件的执行。3.4.2基本造型的生成预备知识:VRML的坐标系在VRML场景中设置物体需要有明确的坐标,在同一个场景中,有一个统一的坐标系。这个坐标系是一个右手坐标系,在初始时(即观察者没有移动位置和改变视角)该坐标系的X轴为沿屏幕水平向右,Y轴为沿屏幕垂直向上,Z轴为从屏幕指向用户。当某个几何体的中心不在屏幕中心时,就需要用Transform节点移动坐标系。(1)基本形体的生成:Shape节点所有形体及文字均用到Shape节点,它有两个参数:由appearance给出形体的外观效果,如Material节点(材质)Texture节点(纹理)TextureTransform节点(纹理变换)由geometry给出形体的几何特征。如:Box节点(长方体)Cylinder节点(圆柱体)Cone节点(圆锥体)Sphere节点(球体)Text节点(文本)(2)复杂形体的生成1.Coordinate节点用于定义空间的坐标点数组2.Extrusion节点用于生成一个拉伸体常用的字段有:crossSection通过一组头尾相连的点,给出一个断面形状spine给出一个拉伸线scale对形体进行变形3.ElevationGrid节点定义一个网状面常用的字段有:xDimensionX方向上点的个数zDimensionZ方向上点的个数xSpacingX方向上网格的尺寸zSpacingZ方向上网格的尺寸height各网格点的高度4.PointSet节点定义一组空间点字段有:coord用Coordinate节点定义点的坐标color用Color节点定义点的颜色(也可以不给出color而直接用Shape的appearance定义)5.IndexedLineSet节点定义折线段常用的字段有:color定义颜色coord定义端点的坐标colorIndex给出挑选颜色的方式coordIndex给出挑选端点的方式colorPerVertex用于指定颜色是按端点给还是按线段给coord提供了需要的点数组(N个点,则各个点的下标从0到N-1)coordIndex则给出了点的使用方式以下标的形式任意挑选所用的点,构造一个或多个折线段每个折线段之间用-1分开线颜色的五种处理方式:①不给出color字段,直接用Shape节点的appearance来定义(用emissiveColor),例如:Shape{

appearanceAppearance{materialMaterial{emissiveColor110}}geometryIndexedLineSet{coordCoordinate{point[-2-20,2-20,220,-220]}coordIndex[01230]}}②可使颜色在线段上发生渐变colorPerVertex为TRUE(缺省)给出一个color数组,颜色的个数和点的个数相同,每个点均有特定的颜色颜色按colorIndex提供的方式挑选。例如:Shape{geometryIndexedLineSet{coordCoordinate{point[111,232,143,421,-1-22,334,523]}coordIndex[01-112-123-134-145-156]colorColor{color[111,001,011,100,100,101,110]}colorIndex[63-166-133-133-155-155]}

}③可使颜色在线段上发生渐变colorPerVertex为TRUE(缺省)给出一个color数组,颜色的个数和点的个数相同,每个点均有特定的颜色颜色的挑选按coordIndex的下标挑选(coordIndex代替colorIndex)例如的:Shape{geometryIndexedLineSet{coordCoordinate{point[111,232,143,421,-1-22,334,523]}coordIndex[01-112-123-134-145-156]colorColor{color[100,001,010,110,011,101,111]}}

}④每一个折线段拥有一种颜色,颜色从颜色数组中挑选,这时:colorPerVertex为FALSE给出一个color数组颜色通过colorIndex挑选并赋予相应的折线段例如:Shape{geometryIndexedLineSet{coordCoordinate{point[-511,-432,-543,-121,-723]}coordIndex[01234]colorColor{color[011]}colorIndex[0]colorPerVertexFALSE}

}⑤每一个折线段拥有一种颜色,但不提供colorIndex字段,这时:colorPerVertex为FALSE给出一个color数组颜色按顺序分配给各个折线段例如:Shape{geometryIndexedLineSet{coordCoordinate{point[-511,-432,-543,-121,-723]}coordIndex[012-1234]colorColor{color[011,111]}colorPerVertexFALSE}}

6.IndexedFaceSet节点用来生成自定义面常用的字段有:color定义颜色coord定义端点的坐标colorIndex给出挑选颜色的方式coordIndex给出挑选端点的方式colorPerVertex用于指定颜色是按端点给还是按线段给coord提供了需要的顶点数组(N个点,则各个点的下标从0到N-1)coordIndex则给出了顶点的使用方式以下标的形式任意挑选所用的点,构造面每个面之间用-1分开面颜色的五种处理方式:

①不给出color字段,直接用Shape节点的appearance来定义(用emissiveColor)②可使颜色在面上发生渐变colorPerVertex为TRUE(缺省)给出一个color数组颜色按colorIndex提供的方式挑选③可使颜色在面上发生渐变colorPerVertex为TRUE(缺省)给出一个color数组,颜色的个数和点的个数相同,每个点均有特定的颜色颜色的挑选按coordIndex的下标挑选(coordIndex代替colorIndex)④每一个面拥有一种颜色,颜色从颜色数组中挑选colorPerVertex为FALSE给出一个color数组颜色通过colorIndex挑选并赋予相应的折线段⑤每一个折线段拥有一种颜色,但不提供colorIndex字段,这时:colorPerVertex为FALSE给出一个color数组颜色按顺序分配给各个折线段3.4.3VRML动画程序编程1.VRML动画编程的基础知识1.Transform节点作用:建立局部坐标系,对形体进行坐标变换,从而使形体发生移动、旋转、比例变化常用的字段:rotation提供旋转的角度(四个数字,头三个数和原点构造旋转轴,第四个数给出旋转角度,右手逆时针为正方向)scale提供比例放大的系数translation提供平移的数值children提供坐标变换的对象,可以是形体或另一个局部坐标系利用Transform的translation字段,实例:使形体由中间移到左边#VRMLV2.0utf8

Transform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}

Background{skyColor111}//修改背景色

#程序结束2.Group节点作用:无坐标变换功能的Transform节点,因而可以用Transform替代常用的字段:children提供Group的组成部分

3.DEF和USE作用:用于给节点语句命名,从而重复使用,DEF和USE缩短程序的好方法

4.Anchor节点作用:使多个VRML产生链接常用的字段:url提供链接的文件名description提供链接文件的说明parameter提供链接的方式(开新窗口或覆盖旧的)children产生链接的载体(鼠标应点击的对象)5.Billboard节点作用:产生广告牌效果常用的字段:axisOfRotation旋转轴,(三个常用的数值:010、100、000)children(产生广告牌效应的形体或文字)6.Viewpoint节点作用:确定观察位置常用的字段:orientation提供观察角度position提供观察位置7.Background节点作用:设置显示背景,也可以在背景上设置图片,最多可贴六张图片常用的字段:skyColor设置背景为白色8.Fog节点作用:使形体产生雾化效果常用字段:color设置雾的颜色visibilityRange给出雾的影响范围

(当形体离观察点的距离大于此值时,形体的颜色与雾相同)9.NavigationInfo节点作用:设定程序运行方式,主要有:ANY、WALK、EXAMINE、FLY、NONE

(2)VRML动画编程初步实例:如何使一个立方体动起来?步骤1:编写一个立方体,设定背景为白色,程序通过Transform节点,改变了形体的原始位置#VRMLV2.0utf8

Transform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}

Background{skyColor111}#程序结束步骤2:定义一个时间周期TS,用的是一个时间传感器节点TimeSensor里面给出周期数值字段cycleInterval,通过loop字段指定是否循环#VRMLV2.0utf8Transform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}#下面四行是增加的部分

DEFTSTimeSensor{

cycleInterval10

loopTRUE

}Background{skyColor111}步骤3:利用PositionInterpolator节点,定义形体的运动轨迹,用DEF命名为PI意思是在十秒钟内,形体由(-500)移到(500),再回到(-500)#VRMLV2.0utf8Transform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}DEFTSTimeSensor{

cycleInterval10

loopTRUE

}#下面四行是增加的内容

DEFPIPositionInterpolator{

key[00.51]

keyValue[-500,500]

}Background{skyColor111}步骤4:利用DEF给立方体所在的局部坐标系命名为T#VRMLV2.0utf8#下面一行是改变的内容,只加了头几个字符

DEFTTransform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}DEFTSTimeSensor{

cycleInterval10

loopTRUE

}DEFPIPositionInterpolator{

key[00.51]

keyValue[-500,500]

}Background{skyColor111}步骤5:通过两条ROUTE语句,使形体动起来ROUTETS.fraction_changedTOPI.set_fraction

(时间的变化传到位置内插器)ROUTEPI.value_changedTOT.translation

(位置内插器将特定时间的位置数值传给形体所在的局部坐标系)下面是最终的程序:#VRMLV2.0utf8DEFTTransform{

translation-500

childrenShape{

geometryBox{}

appearanceAppearance{materialMaterial{diffuseColor100}}

}

}DEFTSTimeSensor{

cycleInterval10

loopTRUE

}DEFPIPositionInterpolator{

key[00.51]

keyValue[-500,500-500]

}#下面两行是增加的内容

ROUTETS.fraction_changedTOPI.set_fraction

ROUTEPI.value_changedTOT.translationBackground{skyColor111}提示:路由语句作用:VRML动画及交互作用的桥梁内容:ROUTE事件出TO事件进编写步骤:对于发出事件的传感器节点(如TimeSensor)和接收事件的节点

(如内插器节点),编写具体的内容,并用DEF命名对于接收事件的其它节点(如定义局部坐标系的TransformGroup)

也用DEF命名,并根据具体需要,将收到的事件进传给具体参数,

从而产生动画效果注意1:同一行ROUTE语句的事件进(eventIn)和事件出(eventOut)的类型必须相同注意2:上面介绍的两个ROUTE语句:ROUTETS.fraction_changedTOPI.set_fraction

ROUTEPI.value_changedTOT.translation也可以写成:ROUTETS.fraction_changedTOPI.set_fraction

ROUTEPI.value_changedTOT.translation也就是说:_changed(用于事件出)、set_(用于事件进)可写可不写,不影响程序的运行(3)用于VRML动画编程的内插器节点语句用于VRML动画编程的内插器节点名称最后均为Interpolator

1.利用ColorInterpolator产生颜色的动态变化步骤1:给需要变化颜色的形体材值Material命名...DEFCOLORAMaterial{diffuseColor100}...步骤2:定义一个TimeSensor,确定变化周期及循环方式DEFTSTimeSensor{...}步骤3:定义一个ColorInterpolator节点,给出颜色变化的具体方式DEFCIColorInterpolator{

key[]

keyValue[]

}步骤4:给出两个ROUTE语句:一个将TimeSensor的变化传给ColorInterpolator

一个将ColorInterpolator的变化传给Material2.利用CoordinateInterpolator使形体产生动态变形作用:可用来动态改变形体的坐标,主要用在下面节点上:IndexedFaceSet、IndexedLineSet、PointSet、Extrusion步骤1:给一个Coordinate节点命名,作为相应形体coord字段的具体内容...DEFAAACoordinate{point[...]}...步骤2:定义一个TimeSensor,确定变化周期及循环方式DEFTSTimeSensor{...}步骤3:定义一个CoordinateInterpolator节点,给出坐标变化的具体方式DEFCICoordinateInterpolator{

key[]

keyValue[]

}步骤4:给出两个ROUTE语句:一个将TimeSensor的变化传给CoordinateInterpolator

一个将CoordinateInterpolator的变化传给Coordinate3.利用OrientationInterpolator动态改变观察方向,或这改变形体的方向作用:可用来动态改变Viewpoint节点的方向(ex5_02.wrl)

或用来动态改变形体的方向,使形体旋转(ex6_05.wrl)步骤1:给需要变化方向的Viewpoint节点命名,或者给需要旋转形体所在的Transform节点命名DEFAAATransform{...}DEFAAAViewpoint{...}步骤2:定义一个TimeSensor,确定变化周期及循环方式DEFTSTimeSensor{...}步骤3:定义一个OrientationInterpolator节点,给出变化的具体方式DEFOIOrientationInterpolator{

key[]

keyValue[]

}步骤4:给出两个ROUTE语句:一个将TimeSensor的变化传给OrientationInterpolator一个将OrientationInterpolator的变化传给Transform或Viewpoint4.利用PositionInterpolator动态改变观察位置,或这改变形体的位置作用:可用来动态改变Viewpoint节点的位置(ex5_01.wrl)或用来动态改变形体的位置,使形体动态移动(ex6_07.wrl)怪异使用:可用来改变形体所在局部坐标系的scale字段(ex6_06)步骤1:给需要变化方向的Viewpoint节点命名或者给需要动态移动形体所在的Transform节点命名DEFAAATransform{...}

DEFAAAViewpoi

温馨提示

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

评论

0/150

提交评论