Web3D技术的昨天、今天和明天主要内容一、Web3D的概念二、Web3D的起源三、Web3D的发展四、Web3D的应用五、Web3D的实现技术六、Web3D的典型开发技术七、Web3D的未来引言虚拟现实(VirtualReality)技术是一种逼真地模拟人在自然环境中的视觉、听觉、运动等行为的人机界面技术。【Web3D技术及其在工程图学教学中的应用,工程图学学报】该技术综合了计算机图形系统和各种显示、控制等接口设备,是一种可提供沉浸感觉和交互操作的计算机三维技术。20世纪80年代,美国VPL公司的创始人JaronLanier最早提出了“虚拟现实”这一概念,它以“3I”为主要特征的综合性信息技术,“3I”指的是沉浸(Immersion),交互(Interaction),构想(Imagination)。虚拟现实概念(1)沉浸是指用户借助各类先进的传感器进入虚拟环境之后,由于他所看到的、听到的、感受到的一切内容非常逼真,因此,他相信这一切都“真实”存在,而且相信自己正处于所感受到的环境中。(2)交互是指用户进入虚拟环境后,不仅可以通过各类先进的传感器获得逼真的感受,而且可以用自然的方式对虚拟环境中的物体进行操作。如搬动虚拟环境中的一个虚拟盒子,甚至还可以在搬动盒子时感受到盒子的重量。(3)构想是由虚拟环境的逼真性与实时交互性而使用户产生更丰富的联想,它是获取沉浸感的一个必要条件。虚拟现实技术系统主要包括三个部分:(1)输入输出设备,如头盔式显示器、立体耳机、头部跟踪系统以及数据手套;(2)虚拟环境及其软件,用以描述具体的虚拟环境等动态特性、结构以及交互规则等;(3)计算机系统以及图形、声音合成设备等外部设备。用户在封闭的BOOM或CAVE环境中佩戴头盔显示器或数据手套,通过和虚拟世界的交互获得身临其境的感觉,从而最终达到“沉浸其中,超越其上,出入自然”的理想境界。【汪成为等.灵境(虚拟现实)技术的理论、实现及应用[M].北京:清华大学出版社.1996.1-20】一、Web3D的概念Web3D技术是虚拟现实技术的一种实现形式。它是指基于Internet、依靠软件技术来实现的桌面级虚拟现实技术。Web3D技术可以简单的看成是Web技术和3D技术的结合,实际上就是本机的3D图形技术向互联网的扩展,其本质特征为:三维性、网络型和互动性。①实时渲染性更强,它是由渲染引擎进行实时渲染从而实时显示的,而本机的3D图形多数采用预渲染。②交互性更强,Web3D主要注重实时显示和动态交互,正是因为实时渲染,使得交互性变得更强。③优化和压缩能力更强,Web3D强调网上远程传输,由于网络带宽的限制,文件必须经过优化和压缩以保证用户端快速下载。说明:实时渲染就是每一帧都不假设任何条件,都是针对当时实际的光源,相机和材质参数进行光照计算——常见的D3D,OPENGL的光照计算。预渲染一般是固定光源,和物体的材质参数,通过其他的辅助工具,把光源对物体的光照参数输出成纹理贴图,在显示的时候不对物体进行光照处理,只进行贴图计算。Web3D与本机的3D图形技术的主要差别在于:Web3D技术属于桌面级的非沉浸式虚拟现实,由于会受到周围现实环境的干扰,用户不能完全的沉浸在虚拟现实环境中,因而真实感体验相对较差,但是这种虚拟现实技术的投入比较少,对于硬件的要求相对较低,一般不借助于传感设备,也不强求用户的沉浸感,而是注重在Web上实现三维图形的实时显示和动态交互,因而应用范围比较广泛。二、Web3D的起源Web3D最早可追溯到VRML(VirtualRealityModelingLanguage,即虚拟现实建模语言)。VRML最初是由MarkPesce构想出来的,他期望在Web上三维图形有标准可循。1993年,由MarkPesce和TonyParisi开发了一个称为Labyrinth(迷宫)的浏览器,这是浏览器的雏形。1994年3月首届上的三维实现语言。VRML语言的出现使得虚拟现实技术得以应用于互联网络,从而揭开了Web3D的发展序幕。1.VRML的产生2.VRML的发展VRML1.0版草案在1994年10月的第二届大会上被制定,VRML1.0有一定的局限性,它存在成像速度慢,不能进行并行处理,限制灯光范围等缺点;特别是它不允许移动物体,使得所创建的世界是静止不动的。VRML2.0规范于1996年8月发布,VRML2.0以SGI(SiliconGraphicsInc,公司名称)的动态境界提案为基础,相对于VRML1.0而言其交互性、碰撞检测等功能上都有很大改善和提高。1997年12月VRML作为国际标准正式发布,并于1998年1月获得ISO批准,通常成为VRML97。它是VRML2.0经过编辑修订和少量功能性调整后的结果。作为ISO/IEC国际标准,VRML的稳定性得到了保证,并在随后推动了一批Internet上交互式三维应用的迅速发展。三、web3d的发展-X3D标准随着网络和计算机的发展,基于Web的虚拟现实应用技术也在日趋活跃。一些独立厂商开发出了自己的Web3D解决方案,这些实现技术面向不同的应用需求,并没有完全遵循VRML标准,但在渲染速度,图像质量,造型技术,交互性以及数据的压缩与优化上都有胜过VRML之处。1998年VRML组织更名为Web3D组织。2002年7月,web3d组织发布了可扩展3D(X3D)标准草案,是虚拟现实建模语言(VRML)的后续产品,是用XML语言表述的。X3D的主要任务是把VRML的功能封装到一个轻型的,可扩展的核心之中,开发者可以根据自己的需求,扩展其功能。X3D整合了正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度,以及对数据流强有力的控制,多种多样的交互形式。X3D标准的发布,为Web3D图形的发展提供了广阔的前景。2002年,正式发表X3D标准及相关3D浏览器。由此,虚拟现实技术进入了一个崭新的发展时代。四、Web3D的应用Web3D目的就是在网络上实现实时三维模型的浏览,并可以实现动态效果和实时交互。它的提出是直接针对网络的,所以应用领域非常广泛。Web3D有着独特的技术特色,它以较低的成本获得一定程度的虚拟现实体验,它在立体空间的展示,立体物体的展示,展品的介绍,虚拟空间的营造与构建,虚拟场景的构造等方面有着作独特的优势。目前这种非沉浸式的网络虚拟现实系统Web3D技术在电子商务、远程教育、计算机辅助设计、工程训练、娱乐游戏业、企业和虚拟现实展示、虚拟社区等领域已经获得了广泛的应用,并取得了许多可喜的研究成果。五、Web3D的实现技术在B/S模式下,由服务器提供三维模型文件,用户根据需要将相应的模型文件下载到本地后由相应的浏览器插件来提供对模型文件的动态显示和实时渲染。如果用户与三维场景发生了交互,则服务器会继续提供其它相应的模型文件。1.实现原理Web3D的实现技术主要分成三大部分,即三维建模技术、显示技术、三维场景中的交互技术。【邓文新.Web3D技术的教学研究[J].现代教育技术,2002,(4):68-69.】2.实现技术(1)三维建模技术三维建模技术是虚拟现实技术的基础。三维复杂模型的实时建模与动态显示技术可以分为两类:一是基于几何模型的实时建模与动态显示;二是基于图像的实时建模与动态显示。a、基于几何模型建模技术在计算机中建立起三维几何模型,一般均用多边形表示。这种基于几何模型的建模与实时动态显示技术的主要优点是观察点和观察方向可以随意改变,不受限制,允许人们能够沉浸到仿真建模的环境中,充分发挥想象力,而不是只能从外部去观察建模结果。因此,它基本上能够满足虚拟现实技术的3I即“沉浸”、“交互”和“构想”的要求。基于几何模型的建模软件很多,最常用的就是3DSMAX和Maya。3DSMAX是大多数Web3D软件所支持的,可以把它生成的模型导入使用。b、基于图像的建模技术(如APPLE的QTVR)在建立三维场景时,选定某一观察点设置摄像机。每旋转一定的角度,便摄入一幅图像,并将其存储在计算机中。在此基础上实现图像的拼接,即将物体空间中同一点在相邻图像中对应的象素点对准。对拼接好的图像实行切割及压缩存储,形成全景图。基于现场图像的虚拟现实建模有广泛的应用前景,它尤其适用于那些难于用几何模型的方法建立真实感模型的自然环境,以及需要真实重现环境原有风貌的应用。相对来说,基于图像的建模技术显然只能是对现实世界模型数据的一个采集,并不能够给VR设计者一个充分的、自由想象发挥的空间。建模时的原则:由于Web3D实现的是在Web上显示三维模型,因此在三维建模时必须时刻考虑实现效果真实性与模型描述文件大小之间的平衡关系。三维模型的效果真实性越强,模型描述文件就会越大。太大的文件在网络上传输时势必会影响其传输速度,对于实时渲染的Web3D技术来说是不切实际的。通常可采用模型简化及压缩技术、细节层次(LOD)技术以及按需传输等技术手段来解决。把建立的三维模型描述转换成人们所见到的图像,就是所谓的显示技术。三维模型的显示技术关键在于实时渲染,模型的实时渲染是由实时渲染引擎实现的。实时渲染引擎就是浏览器插件,负责解释并翻译从服务器端传来的三维场景模型文件语法,并在客户端浏览器上实时的显示出来。不同的web3d技术有不同的渲染引擎,用户观看以不同Web3D技术制作的三维模型时,必须下载并安装相应的插件。通常插件越大渲染质量越好,但是渲染引擎过大会给用户下载和使用带来不便。因此,插件的大小、渲染质量等性能都直接反映了其解决方案的优劣。(2)显示技术交互技术是Web3D的关键技术,是指用户可以以替身的方式在虚拟空间中漫游,能够控制和操纵其中的三维物体,触发其相关相应以及实现用户与用户之间的相互通讯等。【濮青.Web3D应用技术综述[A].全球化制造高级论坛暨21世纪仿真技术研讨会论文集[C],2004:454-457.】交互功能的强弱由Web3D软件本身决定,但用户可以通过适当的编程来弥补软件的某些不足。(3)显示技术六、Web3D的典型开发技术网络媒体特别是电子商务对与图形、图像技术、视频技术提出了更新的要求,各个3D图形公司纷纷推出了自己的Web3D制作工具,使得Web3D虚拟现实技术操作更为简单,使用更加便捷。这些We3D技术,可以按照产生虚拟环境或模型的方法将其可以分为两大类:基于图像的Web3D虚拟现实技术(Imaged-basedTechnology)和基于模型的Web3D虚拟现实技术(Model-basedTechnology)。目前Web3D的开发技术除了传统的VRML/X3D以外,常见的还包括:Cult3D、Viewpoint、Java3D、Virtools、ShockWave3D等。Cult3D是瑞典的Cycore公司开发的应用软件,是一种跨平台的3D渲染引擎,它支持目前主流的各种浏览器,从PC到苹果的各种机型和Unix、Linux、Windows等各种常用的操作系统。【邓定华,颜武等.基于Cult3D实现交互式虚拟现实网页[J].计算机与现代化.2006,8:116-118.】Cult3D为3D产品添加交互性动作并把完成后的3D文件压缩,它可以把3D产品嵌入到Office、Adobe的Acrobat和网页以及用于支持ActiveX的软件开发中。由于采用了先进的压缩算法,Cult3D最后生成的以.co为扩展名的文件很小,非常适合于在网络上传输,由于Cult3D是使用Java语言开发出来的,所以它生成的文件可以无缝的镶嵌到网页中。1.Cult3DCult3d在表观和交互上和Viewpoint相似,但Cult3D的内核是基于JAVA,它甚至可以嵌入JAVA类,利用JAVA来增强交互和扩展,Cult3D的开发环境比Viewpoint人性化和条理化,开发效率也要高得多。Cult3D可以应用到多媒体制作上,但Cult3D应用更多的是电子商务以及企业网站的产品介绍上。2.Java3DJava3D实际上是