VRML是“Virtual Reality Modeling Language”的缩写形式,意思是“虚拟现实造型语言”。 熟悉WWW的人们都知道,受HTML语言的局限性,VRML之前的网页只能是简单的平面结构,就算Java语言能够为WWW增色不少,但也仅仅停留在平面设计阶段,而且实现环境与参与者的动态交互是非常烦琐的。于是,VRML就应运而生了。第一代Web是以HTML为核心的二维浏览技术,第二代Web是以VRML为核心的三维浏览技术。第二代Web把VRML与HTML、Java、媒体信息流等技术有机地结合起来,形成一种新的三维超媒体Web。 RML被称为继HTML之后的第二代Web语言,它本身是一种建模语言,也就是说,它是用来描述三维物体及其行为的,可以构建虚拟境界(Virtural World), 可以集成文本、图像、音响、MPEG影像等多种媒体类型,还可以内嵌用Java、ECMAScript等语言编写的程序代码。VRML的基本目标是建立因特网上的交互式三维多媒体,基本特征包括分布式、三维、交互性、多媒体集成、境界逼真性等。 VRML的出现使得虚拟现实象多媒体和因特网一样逐渐走进我们的生活,简单地说,以VRML为基础的第二代万维网=多媒体+虚拟现实+因特网。第一代万维网是一种访问文档的媒体,能够提供阅读的感受,使那些对Windows风格的PC环境熟悉的人们容易使用因特网,而以VRML为核心的第二代万维网将使用户如身处真实世界,在一个三维环境里随意探究因特网上无比丰富的巨大信息资源。每个人都可以从不同的路线进入虚拟世界,和虚拟物体交互,这样控制感受的就不再是计算机,而是用户自己,人们可以以习惯的自然方式访问各种场所,在虚拟社区中“直接”交谈和交往。事实上,目前采用VRML技术取得成功的案例已经很多,例如探路者到达火星后的信息就是利用VRML在因特网上即时发布的,网络用户可以以三维方式随探路者探索火星。 VRML的工作原理 VRML是一种用在Internet 和Web超链上的,多用户交互的,独立于计算机平台的,网络虚拟现实建模语言。虚拟世界的显示、交互及网络互连都可以用VRML来描述。 VRML的设计是从在WEB上欣赏实时3D图象开始的。VRML浏览器既是插件,又是帮助应用程序,还是独立运行的应用程序,它是传统的虚拟现实中同样也使用的实时3D着色引擎。这使得VRML应用从三维建模和动画应用中分离出来,在三维建模和动画应用中可以预先对前方场景进行着色,但是没有选择方向的自由。VRML提供了6+1度的自由,用户可以沿着三个方向移动,也可以沿着三个方向旋转,同时还可以建立与其它3D空间的超链接。因此VRML是超空间的。 VRML定义了一种把3D图形和多媒体集成在一起的文件格式。从语法角度看,VRML文件是显式地定义和组织起来的3D多媒体对象集合;从语义角度看,VRML文件描述的是基于时间的交互式3D多媒体信息的抽象功能行为。VRML文件描述的基于时间的3D空间称为虚拟境界(Virtual World),简称境界,所包含的图形对象和听觉对象可通过多种机制动态修改。 VRML文件可以包含对其他标准格式文件的引用。可以把JPEG、PNG和MPEG文件用于对象纹理映射,把WAV和MIDI文件用于在境界中播放的声音。另外,还可以引用包含Java或ECMAScript代码的文件,从而实现对象的编程行为。所有这些都是由其他标准提供的,之所以在VRML中选用它们,是因为它们在Internet上的广泛应用。VRML 97规范描述了它们在VRML中的用法。 VRML使用场景图(Scene Graph)数据结构来建立3D实境,这种数据结构是以SGI开发的Open Inventor3D工具包为基础的一种数据格式。VRML的场景图是一种代表所有3D世界静态特征的节点等级:几何关系、质材、纹理、几何转换、光线、视点以及嵌套结构。几乎所有生产厂商,无论是CAD、建模、动画、VR,还是VRML,他们的结构核心都有场景图。 境界中的对象及其属性用节点(Node)描述,节点按照一定规则构成场景图(Scene Graph),也就是说,场景图是境界的内部表示。场景图中的第一类节点用于从视觉和听觉角度表现对象,它们按照层次体系组织起来,反映了境界的空间结构。另一类节点参与事件产生和路由机制,形成路由图(Route Graph),确定境界随时间的推移如何动态变化。 VRML文件的解释、执行和呈现通过浏览器实现,这与利用浏览器显示HTML文件的机制完全相同。浏览器把场景图中的形态和声音呈现给用户,这种视听觉呈现即所谓的虚拟世界(境界)。用户通过浏览器获得的视听觉效果如同从某个特定方位体验到的,境界中的这种位置和朝向称为取景器(Viewer)。 VRML的访问方式是基于客户/服务器模式的。其中服务器提供VRML文件及支持资源(图像、视频、声音等),客户端通过网络下载希望访问的文件,并通过本地平台上的VRML浏览器交互式地访问该文件描述的虚拟境界。由于浏览器是本地平台提供的,从而实现了平台无关性。下图描述了VRML的工作方式。 VRML是一个开发标准,为了加强协作,避免技术重复和市场冲突,而鼓励其他技术引用VRML或成为VRML的一部分。与VRML关系密切的三项技术是Java3D、MPEG-4和Chrome。其中,Java3D和VRML都把3D Web作为关键应用对象,前者的优势在于程序设计,后者的优势在于场景构造,二者在可编程性3D Web应用方面密切合作。MPEG-4面向基于内容的交互式视讯应用,可以为VRML提供流技术、压缩和音响同步技术,而MPEG-4用VRML来描述3D内容。在2D页面集成方面,可以探索VRML和Microsoft的Chrome协作的可能性。 VRML的应用 VRML在电子商务、教育、工程技术、建筑、娱乐、艺术等领域的广泛应用,将会促使它迅速发展,并成为构建网络虚拟现实应用系统的基础。虚拟现实作为一种全新的人机接口技术,必须研究用户和计算机之间的协调关系问题,这样一个问题只有通过大量的使用才能逐步解决,VRML以因特网作为应用平台,最有希望成为构筑虚拟现实应用的基本构架。 自从1994 年以来,欧洲数字城市会议每年举行一次,最近的数字城市的活动中加入了三维技术,基于VRML 的实验性数字城市主要有数字化赫尔辛基、柏林、华盛顿特区、洛杉矶和京都。我国上海交通大学ICHI 实验室在这方面也作了大量研究。 国内还开发过一些基于VRML97的应用系统,如浙江公众信息产业有限公司的3Dworld。 例如在教育上,VRML不仅仅是HTML功能更强的替代品,其潜在意义在于突破上述基于WWW的教学模型建立更自然、更真实的虚拟教育环境。在这种环境中学生可以以浏览探索的方式汲取知识,如进入虚拟太空学习天文知识,利用虚拟地球学习地理知识,穿过历史长廊与历史人物交流,进入分子世界游历化学殿堂等等,这些曾经是梦想中的学习方式都可以逐步实现。在这个虚拟教育世界中,甚至可以有利用VRML制作的动画人物扮演教师,其面部表情和形体动作利用动作跟踪系统捕捉下来,这样得到的讲课节目将是三维的,更重要的是它不像视频节目那样需要大量的存储量和网络带宽,用户通过Modem和电话线即可收看这种节目,其有关试验最近已经取得成功。如果把这种方式扩大到教学双方,则可实现具有实时交互性的虚拟教学——教师控制的虚拟教师和学生控制的虚拟学生就可以在一个虚拟教室中相互交流。 VRML将创造一种融多媒体、三维图形、网络通讯、虚拟现实为一体的新型媒体,兼具先进性和普及性,是关心三维图形、多媒体、新一代网页开发和虚拟现实技术的人士应密切注意的。 VRML的历史 最初的三维浏览器叫做Labyrith,它诞生于1994年2月,是由Mark Pesce和Tony Parisi两人开发的。他们把它带到几个国际大型展示会上作了演示。1994年5月,在瑞士日内瓦召开的万维网(www)会议上,Mark Pesce和Tony Parisi在会上介绍了这个可浏览万维网上三维物体的界面。这时,由一个情趣相投者联谊会BOF马上产生强烈的反响,决定开发一种场景描述语言,它可以连通Web网。当代Web的奠基人Tim Berners-Lee 提出了需要制定一个3D Web 标准,并创建了虚拟现实标记语言VRML(Virtual Reality Markup Language) 这一名字。(BOF来自一句英语的谚语:Birds of a feather) Parisi和Pesce认为推广它的最好的方式就是免费赠送,并说服了美国《线路通》(Wired)杂志的Brian Behlendorf开始设置名为www-vrml的电子邮件列表,在一个月之内,收集到一份有意于参与开发VRML人员的电子邮箱通讯录,那只不过是开初一周内登录的志愿人员,已超过千人。 VRML的名字很快更改为“Virtual Reality Modeling Language”即“虚拟现实造型语言”,以反映它强调的是整个世界,而不是单纯的文本页。 其中有一位Gavin Bell,他是SGI(硅图公司Silicon Graphics Inc.)的工作组的工程师。Open Inventor是SGI推出的一工具软件,便于程序员快速、简洁地开发各种类型的交互式3D图形程序。这种工具软件的编制是基于场景结构和对象描述概念和手段。1992年,最初发布时名称为Inventor。 工作组每周举行一次例行的午餐会,尽管外人对其中奥妙一无所知,但很多工作组的内部事务,往往在这种不拘形式的随意交谈中得以完成。Gavin Bell正是利用了一次这种场合,告诉他的主管经理Rill Carey关于VRML的事情,说明急需建立一种可在Web网上运行、描述3D场景的语言。到聚餐结束时,Carey已决心从事于这场新的开拓(后来两人合办了Wasabisoft)。 1994年初夏,第一次WWW会议期间初步决定,十月份在芝加哥召开第二次WWW会议,也就是说只留出五个月的时间。在这段时间里,能否拟出一个VRML规范的初步方案?BOF成员和自愿加入开发新规范行列的热心网客信心十足。他们一致认为:在下次会议之前,一个内部试用语言规范一定能完成。总的意向是:就一个业已存在的语言加以改造比较稳妥,而另起炉灶,从头开始重干一个全新,则不太可行。 事实上,不过用了两周时间,Bell就提出了SGI的方案它是一个经过修改的Open Inventor 3D模拓文件(Metafile,元文件)格式的子集,在附加一些处理网络的相应功能和措施。SGI同意将这种新的文件格式向公众开放不需要任何专利权和专卖权,供大家使用。 还有几项颇有讨论价值的方案也先后提交,参加候选。Pesce和Behlendorf公允的主持了方案的论证会,最后投票结果,SGI方案赢得了多数。这就意味着VRML是脱胎于Open Inventor的文件格式。这就是1994年10月在芝加哥(Chicago)召开的第二次WWW会议上公布VRML1.0的规范草案。主要的功能是完成静态的3D场景,以及与HTML链接的功能和措施。 另一位SGI的原Open Inventor的设计师Paul Strauss开始作一个VRML公共域(publicdomain)的词解程序(Parser),当时流行于业界的名字叫QvLib。这个程序的作用是把VRML的可读文件格式转换成浏览器可理解的格式。这个词解程序于1995年1月公开发布。它可以安装到各式各样的平台上,随之,各种浏览器恰似雨后春笋般勃然兴盛起来。 可以理解和显示所有VRML文件的浏览器,最早还是出自SGI,由David Mott和多位Inventor的工程师写成的WebSpace Navigator。不久,模板图形软件(Template Graphics Software)运行于WebSpace,不仅适用于SGI平台,也适用于多种其它平台,而且所有版本的WebSpace Navigator浏览器均免费使用。 1995年秋,SGI进一步推出了WebSpace Author(供创作的程序)。这是一种Web创作工具,可在场景内交互地摆放物体,并改进了场景的功能,还可用于发表VRML文件。此时,VRML设计工作组(VGA, VRML Architecture Group)相聚在一起,讨论下一个版本的VRML。 1996年初,VRML委员会审阅并讨论了若干个VRML2.0版本的建议方案,其中有SGI的动态境界( Moving Worlds)提案、太阳微系统(Sun Microsystem)的全息网(Holl Web)、微软公司(Microsoft)的能动VRML(Aictive VRML)、苹果公司(Apple)的超世境界(Out of the world),以及其他多种提案。委员会的很多成员参与修改和完善这种种方案,特别是Moving Worlds。经过多方努力,最终在2月底以投票裁定。结果,Moving Worlds以70%选票赢得了绝对多数。1996年3月,VGA(VRML设计小组)决定将这个方案改造成为VRML2.0。 1996年8月在新奥尔良(New Orleans)召开的优秀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兼容,同时也与VRML 97及其之前的标准兼容。它把VRML的功能封装到一个轻型的、可扩展的核心之中,开发者可以根据自己的需求,扩展其功能。X3D标准的发布,为Web3D图形的发展提供了广阔的前景。 VRML的工作组及其研究目标 为了推动VRML技术的发展,VRML协会组织了很多工作组,每个工作组都是自愿组织、自我约束、并经VRML协会认可的技术委员会,负责某个与VRML有关的专题技术的研究和实现工作。下面介绍目前已组建的工作组及其研究目标,它们基本涵盖了VRML的主要发展动向。 人性动画工作组(Humanoid Animation WG)利用VRML表现人类行为特性。 色彩保真工作组(Color Fidelity WG)确保采用任何平台的观众所看到的效果都和创作者的原始作品一样,颜色应相当一致。 元形式工作组(Meta Forms WG)针对利用形式文法生成的作品,提出一般性的方法论和一般性规范,使之能够映射为某种特定形式。首要目标是能够表示"数字生命格式"( Digital Life-Forms)结构和增长。 面向对象扩展工作组(Object-Oriented Extensions WG)探讨和推动对VRML进行面向对象扩展的方法。 数据库工作组(Database WG)推进基于VRML商业应用的创建,利用数据库维护VRML 内容的持久性、升级能力和安全传输能力。 外部创作接口工作组(External Authoring Interface WG)在VRML境界和外部环境之间建立标准接口。 界面组件工作组(Widgets WG)为开发者和用户提供一套基础性的、可自由使用的标准用户界面组件集,并提供支持基本组件集和所有VRML组件的理论框架。 二进制压缩格式工作组(Compressed Binary Format WG)探讨并开发VRML文件的二进制编码方法,重点是研究为了快速传送目的而尽量缩小文件尺寸,同时为了快速解码目的而尽量简化文件结构。 通用媒体库工作组(Universal Media Libraries WG)为了提高VRML境界的真实感,同时减少网络的下载量,而定义一种由驻留本地的媒体元件(纹理、声音和VRML对象)组成的小型跨平台媒体库。同时定义一种统一机制,通过这种机制,VRML内容创作者可以在自己的境界中使用这些媒体元件。 活动境界工作组(Living Worlds WG)为多用户(包括多个开发者)应用的产生和进化定义概念框架,并确定一组界面。 键盘输入工作组(Keyboard Input WG)为了使内容创作者能够在自己的境界中访问键盘输入,定义一个或多个扩充节点。 一致性工作组(Conformance WG)为与一致性测试有关的问题提供一个讨论场所,特别地,本组将辨别VRML实现发生分歧的地方以及相应的动作序列。 生物圈工作组(Biota WG)为生命系统(Living System)的研究和学习建立、配备数字式工具和环境。 分布式交互仿真工作组(Distributed Interactive Simulation WG)为建立有多广播能力(Multicast-Capable)的大规模虚拟环境(Large-Scale Virtual Environments,LSVEs)确立初始网络约定。 VRML脚本工作组(VRML Script WG)向VRML监查组(VRML Review Board,VRB)提供有关Java和JavaScript的问题列表、修改建议和评论。 自然语言处理和动画工作组(NLP & Animations WG)为了使用户能使用自然语言和VRML动画形象进行交流,从而使交互更自然,增强用户和动画形象之间的信息流动,研究如何使用“问题/回答”、“命令/响应”式的对话以及基于操作系统命令和字符控制的自然语言。 VRML-DHTML集成工作组(VRML-DHTML Integration WG)为VRML和DHTML在文档对象模型、组件(Component)接口和绘制等三个层次的紧密集成开发一种概念模型。 VRML的研究现状 虚拟现实技术的发展,是在网络技术前进基础上,融合多种技术的结果随着网络时代宽带大规模应用的到来,市场对虚拟现实技术的应用越来越迫切,大有风雨欲来,风满楼之势。 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标准为核心的技术具有独特的优势。