基于Web3D的虚拟现实技术的对比研究与分析
2012-11-13胡伟,李兵
胡 伟,李 兵
(湖南第一师范学院,湖南长沙 410205)
基于Web3D的虚拟现实技术的对比研究与分析
胡 伟,李 兵
(湖南第一师范学院,湖南长沙 410205)
随着计算机网络技术的发展,虚拟现实技术应用越来越普及。目前,基于Web3D技术的虚拟现实开发平台有很多种,通过对常用的技术进行对比分析,提出了Web3D开发平台的选取原则,为网络虚拟现实开发的平台选择提供参考。
web3D;虚拟现实;对比研究
一、前言
虚拟现实技术是将数字图像处理、计算机图形学、多媒体技术、传感器技术等多个信息技术融合为一体的一门崭新的综合性信息技术。虚拟现实技术是目前计算机领域比较受关注的一项新技术,国家中长期科学和技术发展规划纲要(2006—2020年)中,明确地将其作为前沿技术重点研究[1]。虚拟现实技术已经应用在电子商务商品的3D展示、科技与工程的科普和工程演示、教育培训和军事训练的可视化仿真和虚拟实验、导游和交通运输以及地图等地理信息系统数据的可视化等等多方面。
随着网络技术的不断发展,三维虚拟现实在网络中的应用愈来愈普及。网络三维虚拟现实技术主要是通过Web3D技术予以实现的。Web3D技术是一种桌面级的网络虚拟现实技术,通过Web3D技术,用户可以浏览网页中的三维图像,通过交互操作,可以使浏览者产生身临其境的感觉。Web3D技术在教育培训、电子商务和游戏开发中受到越来越多的关注,许多公司都提出了基于网络的3D技术解决方案。目前,Web3D技术有几十种之多,使得用户在选择上眼花缭乱,不知如何决定。本文拟通过对几种常用的Web3D技术进行对比分析,为网络三维虚拟技术的开发和实现提供一些参考。
二、常用的Web3D技术
(一)Viewpoint
Viewpoint是由metacreation和Intel提出的一种Web3D技术,通过在XML语言的基础上进行构建,Viewpoint可以很容易地与浏览器和数据库进行数据交换,由于可将其内嵌于多种软件中使用,使得它的应用范围非常广泛。在浏览时只需在客户端安装插件便可显示出以流方式传输的3D模型。通过鼠标或浏览器事件进行触发,能动态地进行交互演示或与用户进行交互操作,如对象的缩放和平移等,此技术贯通于网络三维虚拟技术的各个环节。但与其他的Web3D技术相比较,ViewPnint需要通过自己的软件制作和处理三维图形对象,而不是通过其他方式导入三维图像,因此是真正的3D模型,可创建出照片级真实的3D影像。
Viewpoint在结构上可分为两个部分,一个是储存三维数据和贴图数据的mts文件,另一个是对场景参数和交互进行描述的基于XML的mtx文件。通过采用独特的压缩技术,将复杂的3D信息压缩成很小的数字格式,因此非常适合在网络传输。当文件传输至本机后,通过高质量的实时渲染引擎,在不需要任何硬件加速的情况下可将对象非常真实地进行三维渲染和显示。正是因为以上特点,Viewpoint主要运用在电子商务的产品宣传和商品展示等商业领域,一些商业网站和在线广告均采用了该技术[2]。
(二)Cult3D
瑞典的Cycore公司所研发的一种跨平台流式Web3D技术——Cult3D,通过利用现有的网络技术和三维渲染引擎来进行3D模型的建构,具有很高的压缩率,能在网络中快速地传输,应用在主流操作系统和应用程序中。Cult3D具有跨平台性,能在Windows、Unix和Linux等各种操作系统中运行,不需要硬件支持。
Cult3D和Viewpoint虽然在3D显示和三维交互中具有一定的相似性,但Cult3D是基于Java语言构建的,提供了更多样化的扩展功能。更为重要的是,Cult3D能作为对象元素导入到常用的软件中,如 Office、Director和 Acrobat等。Cult3D需要利用3DMAX等三维建模软件进行建模后导入,但其开发环境更具人性化和条理化,有利于提高开发效率。因此在商务网站或博物馆的站点的物品展示以及三维游戏动画的制作和开发均采用此Web3D技术。
(三)Java 3D
Java 3D其实质是将Java语言与三维技术结合,使Java语言的功能在三维图形领域中得到扩展。Sun公司将Java 3D作为应用程序(API)接口推出,它把OpenGL和DirectX等底层的3D技术包含进来,作为底层的三维显示技术封装。因此,Java 3D就是一个提供基于Java语言的上层接口的API。它为用户提供了利用高层工具进行三维实体创建、操作和着色并渲染的组织结构。正因如此,使得3D技术开发变得简单,同时还可加入到J2EE等整体框架中,便于功能扩展。
Java语言具有“一次编写,随处运行”的优点,因此Java 3D所三维图形程序也具有能在各种平台广泛运行的特点。在编写Java 3D程序时,我们只需调用API进行编程,在客户端使用标准的Java虚拟机就可以浏览而并不需要安装任何插件,这是Java 3D所具有的最大优越性。由于Java 3D已将底层的渲染代码等三维显示技术封装,技术开发者只需关注场景和组织等这些形体本身,而不需考虑组成这些三维实体的三角面。我们常用Java 3D来制作一些计算机教学辅助软件和三维游戏等等[3]。
(四)X3D
VRML(虚拟现实建模语言)作为最初的虚拟现实开发语言,虽然具有低带宽和灵活高效的优点,但随着计算机技术的发展,它的不足也显现出来了,如代码重用率低,性能表现不佳,插件安装时间长且占用系统资源过多等。因此,Web3D协会制定了Extensible 3D(X3D)新标准。X3D集成了Java、流媒体技术等最新先进技术,是最新的面向网络的交互式性三维图形规范。它具有更加高效的3D计算能力、三维渲染能力以及更快的网络传输能力。X3D采用了构件化的程序设计思想并与XML集成,因此具有很强的功能扩展能力。
X3D采用了面向对象理论的构件化模式,这不但使得X3D程序编写难度降低,而且增加了其扩展性以及与其他语言的交互性。与其前身VRML相比,X3D具有先进应有程序界面、高度的兼容性、允许多种编码模式、安全性可靠性高等诸多优点,常用于虚拟交互实验室和虚拟仪器等的开发。
三、虚拟现实开发平台选取原则
面对众多的Web3D技术,我们该如何选择适合的开发工具呢?一个良好的开发平台,不但能在用户面前呈现出一个具有良好交互性的逼真虚拟环境,而且便于软件开发者对软件的研制、维护和功能扩展。所以,Web3D技术开发平台的选取要从使用者和软件开发者综合考虑。
对于虚拟现实的终端用户来说,都希望能得到高显示质量具有真实感的虚拟现实软件。首先,我们要考察开发平台的模型显示质量,尤其是三维模型的渲染质量。这项指标将影响用户的第一印象,是开发平台好坏与否的最重要指标。其次,我们要考察开发平台的交互性。交互功能是影响虚拟现实软件真实感的关键因素,强大的交互功能能大大增加用户在使用过程中的真实感。最后,我们要考察开发平台的迟滞性。要使软件使用者具有真实感,软件的交互过程的反馈必须及时,要有实时性。其中实时性包括两个方面:一是软件下载和插件安装的等待时间;二是交互的延迟,虽然每种开发平台都有一定的交互延迟,但是延迟时间需控制在容忍时间范围内。迟滞性主要由开发平台的文件压缩性和渲染器的性能所决定。
对于虚拟现实软件的开发者来说,则希望开发过程简便,且软件易于维护和功能扩展。虚拟现实开发的一个重要环境就是三维建模,能否方便快捷地导入利用各种建模软件建好的三维模型是一个重要指标。另外,能否很方便地利用开发平台进行软件的维护以及功能扩展,不断更新和完善软件也是极其重要的。故虚拟现实平台的选择并不是随意任选,必须对根据开发内容和使用对象,综合各种因素进行考虑。
四、常用的Web3D技术对比与分析
根据前述开发平台选取原则的分析,常用的Web3D开发软件平台有各自的优势,同时也有一些缺陷和不足,下面从浏览要求、建模方式以及各自特点进行纵向的技术对比和分析。
(一)浏览要求对比
这几种Web3D开发平台并不能利用浏览器直接浏览,而需要按照相应的插件或程序。Java3D需要按照Java虚拟机和应用程序接口,而利用X3D技术开发的软件则需要按照对应的程序或插件。
(二)运行平台对比
作为运用普及最广泛的Windows操作系统,各种Web3D技术均予以支持,但相对来说,基于Cult3D和X3D所开发的软件能适应更多的操作系统。
(三)三维建模方式对比
三维交互技术当然离不开三维模型的制作,三维模型的制作也直接决定了软件开发的难易程度。能制作三维模型的方式和途径越多,那么我们开发就更加灵活方便。ViewPoint的三维模型只能依靠其本身来制作和处理,不能从其他途径导入3D模型,但ViewPoint所创建的3D属于照片级的高质量影像。相反,Cult3D本身不具备三维建模能力,只能通过3D MAX等其他建模工具生成.c3d文件格式,然后导入。Java3D则有两种建模方式,一种是通过Java API本身所提供的一些类编程方式;另外一种是,使用Java3D的模型载入器导入利用其他软件生成的三维模型。但是,对于导入的模型在读入Java3D后有可能发会生“坐标偏移”的现象,如果对这样的模型进行旋转操作的话,有可能会导致运动偏离对象的轴心。X3D技术是对VRML升级并集成了XML,它不但能利用VRML语言,通过编写程序代码构建三维模型,也可通过其他渠道导入三维模型。
(四)开发过程
虚拟现实交互软件开发过程的难易程度不但取决于三维模型的建立,而且受交互性设置的影响。虽然,Java3D的三维模型创建方式比较灵活,但是添加交互需要对Java语言编写程序进行控制,实现起来较为困难,虽能实现一些虚拟现实中一些复杂的交互功能,但是开发工程比较缓慢,其整体开发难度较为复杂。在Cult3D平台中,其交互功能已在Designer中可视化给出,开发者只需进行选择,使用非常简便。X3D的交互不但能通过编程实现,也可通过开发软件进行设定,其开发过程也较为简单。
表1 各种Web3D开发平台对比
另外,利用不同的Web3D开发平台所开发的软件的维护和功能扩展性也有差别。例如,Java 3D提供了图形API接口,非常便于其功能扩展;同样,X3D也提供了VRML程序接口,也便于其功能扩展,对于各种Web3D开发平台的技术特点如表1所示。
五、结语
对于Web 3D的虚拟现实实现技术远不止本文所述的几种,对于如此多的开发技术,基于Web 3D的虚拟现实的开发仍存在着许多困难,这主要是因为各种开发平台是不同公司自行开发,基于不同的架构,使用不同的格式和方法,没有统一的标准。各种开发平台都有各自的有缺点,我们需要从用户角度和开发角度综合考虑,选择适合的基于Web 3D虚拟现实开发平台。
[1]刘锴.基于Web3D的虚拟实验实现技术的比较与分析[J].中国教育信息化,2008,(17):75-77.
[2]蒋燕萍,夏旺盛,黄心渊.几种Web3D技术的比较[J].北方工业大学学报,2003,(1):21-25.
[3]王维敏.Web3D技术探索及几种Web3D技术的比较选择[D].武汉:武汉大学,2004.
[4]李勇帆,李里程.论情感计算和Web技术支持的网络自主在线学习模式的设计与构建[J].中国电化教育,2011,(8):129-133.
A Comparative Study of VirtualReality Technology Based onWeb3D
HUWei,LIBing
(Hunan FirstNormalUniversity,Changsha,Hunan 410205)
With the developmentof the computernetwork technology,the application ofvirtual reality technology ismore andmore popular.Currently,there are agreat variety of development platforms for virtual reality technology on the basis ofweb3D.After the comparative studieson some commonly used technologies,this paper proposes the principles to select developmentplatforms for future reference.
web3D;virtual reality;comparative study
TP391.9
A
1674-831X(2012)04-0121-04
2012-03-18
全国教育科学“十一五”规划教育部重点课题(DCA090321);湖南省高校科技创新团队支持计划资助(湘教通[2010]212号);湖南省科技厅高新计划资助项目(2010GK3049);湖南省教育厅科学研究项目(10C0526;11C0280)
胡伟(1978—),男,湖南长沙人,湖南第一师范学院讲师,硕士,主要从事计算机仿真研究;李兵(1969—),男,辽宁凤城人,湖南第一师范学院讲师,主要从事计算机应用研究。
[责任编辑:葛春蕃]