目录 |
VRML是一种用于对三维虚拟场景进行建模的描述性语言,它与以上所说的标记语言并没有什么关系。1997年12月,VRML作为国际标准正式发布,并于1998年1月获得ISO批准(国际标准号为ISO/IEC 14772 1:1997),通常称为VRML 97。
VRML 97作为ISO/IEC国际标准,将推动Internet上交互式三维应用的迅速发展,而且从Netscape Navigator 4.x和Internet Explorer 4.x开始就内置了VRML浏览器,这为VRML成为Internet上发布3D内容的普遍性开放标准奠定了坚实的基础。
VRML是一种三维建模语言,其基本目的是建立Internet上的交互式的三维多媒体虚拟场景,其基本特征包括分布式、三维、交互性、多媒体集成性以及场景逼真性等。
第一代Web实现文档访问,能够提供阅读感受;第二代Web以VRML为基础,实现了多媒体、虚拟现实和Internet的结合,使人们有一种身临其境的感受,在一个三维虚拟现实的场景中探索Internet上无比丰富的信息资源。
由于VRML具有分布式、三维、交互性、多媒体集成性以及场景逼真性等基本特征,利用VRML可以创建多媒体通信、分布式虚拟现实、设计协作系统、实境式电子商务、网络游戏、虚拟社区等全新的应用系统。
(1)VRML定义了一组能描述三维图形的对象——节点(node)。
(2)节点被安排成层次结构——场景图(scene graph)。
(3)场景图定义了节点的顺序,场景图的状态依赖于早期节点并影响着后来的节点。
(4)分隔符(separator)的应用可以使一部分场景与其他部分相互独立。节点的特性由下列信息决定。
(5)对象类型包括立方体(cube)、球(sphere)、纹理映射(texture map)、变换(transformation)等。
(6)描述此对象的参数。
1994年2月,Mark Presce和Tony Parisi创建了称为Labyrinth(迷宫)的三维浏览器,这是WWW上三维浏览器的早期原型。同年,Mark和Brian Behlendorf创立了VRML邮递表WWW VRML,并发出了在WWW上建立三维应用正式规范的倡仪。SGI的GavinBell注意到了Open Inventor很适合作为这样的规范,并很快组织了一份提案。经过一番激烈辩论后,Inventor提案被选定为未来规范的工作文档。随后,Gavin在很多Inventor工程师的帮助下,修订并最终制定了VRML l.0规范的草案。此规范1994年10月第二届WWW国际会议上公布。由于VRML l.0缺少一些关键性特型如动作、交互和行为,需要进行重大修订。1996年1月,SGI的动态世界(Moving World)提案在Sony公司和Mitra的合作下获得大多数支持,成为VRML 2.0规范的工作文档。之后,VRML 2.0规范的第一版于1996年8月在新奥尔良举行的SIGGRAPH’96会议上公布。1997年12月,VRML作为国际标准正式发布,并于1998年1月获得ISO批准,通常称为VRML97。它是VRML 2.0经编辑修订和少量功能性调整后的结果。
现在,VRML已经得到了计算机界的广泛重视,Microsoft、IBM、Netscape、Apple、SGI、Oracle、Song、Auto Desk、Adobe、Macromedia等著名大公司纷纷推出了各自的VRML产品。Netscape Navigator 4.X和Intemet Explore 4.X都已内置了VRML浏览器,VRML也是Windows98的标准部分。VRML已成为Intemet上发布3D内容的具有普遍性的开放标准。
VRML的基础是采用HTTP协议传输数据的全球网和SGI设计的Open Inventor文件格式。VRML可用来在Internet上建造和变换虚拟世界,同时具有很好的交互性可支持大量的用户。通过VRML浏览器用户可以在虚拟场景中漫游,并可通过超级链接(hyperlink)到达新的三维世界。VRML是一种面向对象的描述语言,其对象包括三维几何形体、MIDI数据和JPEG文件等。VRML内建了支持多个分布式文件的多种对象和机制,包括内联式(inlining)嵌入其他VRML文件,通过超链接指向其他文件。
VRML具有与平台无关的特性。VRML的访问方式是基于客户服务器(C/S)模式的,服务器提供VRML文件及资源(图像、视频、声音等),客户通过网络下载希望访问的文件,并通过本地平台的浏览器交互地访问该文件所描述的虚拟世界。由于浏览器是本地平台提供的,所以实现了平台无关性。
VRML像HTML一样,用ASCII文本格式来描述世界和链接,保证了在各种平台上通用的同时也降低了数据量,从而也可以在低带宽的网络上实现。
传统的VR中使用的实时3D渲染引擎在VRML中得到了更好的体现。这一特性把VR的建模与实时访问更明确地隔离开来了,这也是VR不同于三维建模和动画的地方,后者预先渲染,因而不能提供交互性。VRML提供了(6十1)个自由度,即3个移动方向和3个转动方向,以及和其他三维空间的超链接。
VRML作为一种标准,不可能满足所有的应用需求,有的希望交互性更强,有的希望画面质量更高,有的希望VR世界更复杂。这些要求往往是相互制约的,同时又受到用户平台硬件性能的制约,因而VRML是可扩充的,即可以根据需要定义自己的对象及其属性,并通过原型、描述语言等机制,使浏览器可以解释这种对象及其行为。
虚拟世界由对象构成,VRML通过各种对象来描述三维场景,这些对象及其属性称为结点(node)。每个结点是构成VRML文件的基本单元。每个场景都是由具有不同层次结构的多个结点组成。VRML使用场景图(Scene Graph)数据结构来建立3D实境,这是一种以SGI的Open Inventor 3D工具包为基础的一种数据格式。场景图规定了节点之间的等级关系和嵌套关系。
每个结点都可以有5个方面的特征:类型、域、事件、实现、名字。在VRML l.0中共有36个结点,分为3类:造型节点(Shape Node)、属性节点(Property Node)、组节点(Group Node),以及一个类似于C语言中伪指令的特殊节点WWW Inline。其中造型节点包括常用几何体和用于任意集合体的线框图(Indexed LineSet)和面框图(Indexed Face Set)。属性节点用于指定后续节点的属性,分为几何与外观组(Geometry And Appearance Group),如坐标、材质、文本等;矩阵与变换组(Matrixor Transform Group),包括矩阵变换、旋转、缩放、平移、变换;摄影机组(Camera Group),包括有无透视变换的两种摄像机,其位置、方向、视野可定义;灯光组(Lights Group),包括3种光源。VRML 2.0定义了54种基本结点类型,用户可以通过原型机制定义自己的结点类型。VRML 2.0以SGI的Moving World提案为基础,在动态和视觉效果两方面对VRML l.0进行了改进。为连接和控制动作、反应和动画定义了5个结构:节点事件域(Node Event Field)、路径(Route)、传感器(Sensor)、插入件(Interpolator)和脚本节点(Script Node)。其中脚本节点包括了Java Script或关联了一个Java Applet,使开发者可以扩充VRML的行为和动态特性。在效果方面,提供了梯度和纹理映射背景、与地点相关的声音以及将MPEG-1视频映射到任意对象上的MovieTexture节点,还提供了轮廓地形(ConrouredTerrain)、突出(Extrusion)、碰撞检验(CollisionDetection)、雾化效果(Fog)等。
VRML是一种造型语言,它不同于编程语言C语言、Java语言等,也不同于HTML等标记语言。它比HTML语言复杂,可以用来描述三维物体,但它比任何编程语言都简单。其他高级语言要求用户有一定程度的程序设计基础。而VRML对使用者的编程功底要求不高。如果将其他高级语言与VRML结合起来使用会给用户带来很多方便。
VRML也不同于虚拟环境的专用开发工具VRT、WTK、MR等。目前它对虚拟现实的外围设备的支持欠缺,也不支持在虚拟环境中创建虚拟环境。
VRML最大的优点是它的网络特性,VRML文件本身所占空间很小,这样便于通过网络传输。
目前,VRML技术才刚刚起步,其未来将是协作的、共享的、分布的和普遍的,具有强大的生命力,基于VRML的虚拟现实世界将会越来越丰富多彩。
VRML在远程教育、科学计算可视化、工程技术、建筑、电子商务、交互式娱乐、艺术等领域都有着广泛的应用前景,利用它可以创建多媒体通信、分布式虚拟现实、设计协作系统、实境式电子商务、网络游戏、虚拟社区、赛博空间等全新的应用系统。
当前的工程很大程度上要依赖于图形工具,以便直观地显示各种产品,目前CAD/CAM已经成为机械、建筑等领域必不可少的软件工具。VRML将使工程人员能通过全球网或内部网按协作方式进行三维模型的设计、交流和发布,从而进一步提高生产率并削减成本。
对于那些期望与客户建立直接联系的公司,尤其是那些在他们的主页上向客户发送电子广告的公司,Imemet具有特别的吸引力。VRML有可能大幅度改善顾客购买商品的经历。例如,顾客可以访问虚拟世界中的商店,在那里挑选商品,然后通过Imemet办理付款手续,商店则及时把商品送到顾客手中。
把VRML用于建造人体模型、电脑太空旅行、化合物分子结构显示等领域。由于数据更加逼真,大大提高了人们的想像力、激发了受教育者的学习兴趣,学习效果十分显著。随着计算机技术、心理学、教育学等多种学科的相互结合、促进和发展,能够提供更加协调的人机对话途径。
娱乐领域是VRML的一个重要应用领域。VRML是一个功能十分强大的在Internet网上交换三维场景的描述性语言,它能提供更好的多人之间的交互,提供更加逼真的虚拟环境,从而使人们能够享受其中的乐趣,带来更好的娱乐感觉。VRML目前正朝着实时通信、大规模用户交互的方向发展。