虚拟现实技术主讲:杨文晖第四章VRML1VRML简介2VRML编程语法基础3VRML基本节点编程4群节点创建VRML立体空间造型5VRML场景效果节点编程设计6VRML动态感知虚拟现实节点7VRML通用接口节点8VRML实例编程1VRML简介VRML是什么?虚拟现实三维立体网络程序设计语言VRML(虚拟现实建模语言)VERML的意义?作为第二代网络程序设计语言的VRML完全改变了网络的二维平面世界,实现了真正意义上的三维立体网络世界、动态交互与智能感知等,实现计算机网络、多媒体及人工智能的完美结合使人们真正感受到计算机网络世界的无穷魅力1.1VRML的发展历史计算机技术的迅猛发展计算机将人类社会带人崭新的信息时代。尤其是计算机网络的飞速发展;使我们的地球变成了一个地球村早期的网络系统主要传送文字、数字等信息,但多媒体技术在网络上的应用,使目前计算机网络无法承受如此巨大的信息量。为此,人们开发出信息高速公路,即宽带网络系统,而在信息高速公路上驰骋的高速跑车就是VRML虚拟现实建模语言系统,也就是“虚拟现实三维立体网络程序设计语言”。初级计算、实时控制、事务处理巨型化、微型化、网络化、智能化、多媒体VRML(VirtualRealityModelingLanguage)是什么?虚拟现实建模语言,是一种三维造型和渲染的图形描述语言,通过创建一个虚拟场景以达到现实中的效果。是一项和多媒体通讯、因特网、虚拟现实等领域密切相关的新技术,用来描述一个目标对象是如何呈现在Web上的。和HTML一样,VRML也是可由浏览器解释的描述语言,只不过VRML不是描述成一个Page的格式,而是描述成3D环境和目标的布局。它的主要特征有三维性、交互性、动态性、实时性等VRML给网络带来了什么?VRML支持功能大大改变了原来万维网上单调、交互性较差的弱点,创建一个全新的可进入、可参与的三维虚拟现实世界。VRML虚拟现实建模语言用来在网络上创建逼真的三维虚拟场景。有哪些改进?增强了静态世界;增加了交互性;增加了动画功能;增加了编程功能;增加了原形定义功能。关于场景?对象?节点?实例?VRML是虚拟现实建模语言,是一种三维造型和渲染的图形描述性语言,它把“虚拟世界”看做一个“场景”,而场景中的一切都被看做“对象”(也称为节点),对每一个对象的描述就构成了.wrl文件。本质上是一种面向web,面向对象的三维造型语言,而且它是一种解释性语言。VRML的对象称为节点,子节点的集合可以构成复杂的景物。节点可以通过实例得到复用,对它们赋以名字,进行定义后,即可建立动态的VR(虚拟世界)。发展历史最初的设计提出?始于20世纪90年代1993.12Parisi和Pesce开始开发第一个VRML浏览器;1994.03首届WWW大会在日内瓦召开,提出VRML;1994.06开始VRML邮件列表;1994.10产生了基于SGI的OpenInventor文件格式的VRMLl·0第一稿;1996.03VRML结构组通过MovingWorld,并就VRML2·0标准进行投票;1996.08通过VRML2·0标准。后期发展?SGI公司,最有影响力的VRML厂商,•已经引进Cosmo3D——一个VRML2.0的API,作为其新的工具结构Viper的基础。SGI公司许多广为传播的工具也支持VRML2.0。SunMicrosystem公司,Java的先驱,•选择VRML2.0作为其基于Java的3DAPI——Java3D的功能内核。Microsoft公司•已经采纳了VRML2.0标准,并已利用DimmensionX基于Java的LiquidReality来生成用于WML2·0测览的ActiveX组件。IBM公司和Apple公司•与ParaGraph公司合作,开发以图形压缩为特点的VRML二进制格式,这项工作不仅可以使文件大小减少50%,还可以把VRML使用者的范围拓宽1.2VRML的特点VRML具有的特点?平台无关性;网络传输高速性;实时性;可扩充性可建模性1.3VRML的发展前景虚拟现实建模语言VRML设计源于虚拟现实技术。I.虚拟现实技术是20世纪末发展起来的涉及众多学科的高新技术,它是集计算机、仿真、微电子、传感与测量技术于一体的高新科技的融合。II.而虚拟现实建模语言VRML正是利用虚拟现实技术在计算机中创建一种虚拟环境,通过视觉、听觉、触觉、味觉、嗅觉及生理反映等感知器,使用户产生一种与现实生活相同的感受,有身临其境的感觉,甚至生理感觉,可实现用户与虚拟现实环境直接进行交互。虚拟现实建模语言VRML涉及计算机网络、多媒体和人工智能技术三大领域及自然科学、社会科学和哲学。具体地讲,虚拟现实环境一般包括计算机图形学、图像处理、模式识别、传感器、语音处理、网络技术、并行处理、人工智能等高新技术,还涉及天文、地理、数学、物理、化学、美学、医学、军事、生理学和心理学等领域。关于Wed3DX3D与VRML?VRML发展已经成为新的国际标准X3D,它在VRML的基础上做了很多改动。X3D是一种支持XML编码格式的开放式3D标准,3D数据可以通过网络实现实时交流,具有可移植性,页面整合性,易于和下一代的网络技术整合,另外采用了组件化结构设计减少了系统资源的占用且具有很强的扩展性1998年。VRML组织把自己改名为Web3D组织,同时制订了一个新的标准,Extensible3D(X3D),到了2000年春天,Web3D组织完成了VRML到X3D的转换。X3D整合正在发展的XML、JAVA、流技术等先进技术,包括了更强大、更高效的3D计算能力、渲染质量和传输速度没有统一标准的Web3D,谁是最后的赢家呢?Java3D和GL4Java(OpenGlForJava)Fluid3DSuperscape(VRT)Vecta3Dpulse3Dblaxxun3D和Shout3DCult3dAtmosphereJava3D和GL4Java(OpenGlForJava)应用?JAVA3D可用在三维动画、三维游戏、机械CAD等领域。与VRML的异同点?可以用来编写三维形体,但和VRML不同,JAVA3D没有基本形体,利用JAVA3D所带的UTILITY生成一些基本形体如立方体、球、圆锥等,或者直接调用其他软件生成的形体可以和VRML一样,使形体带有颜色、贴图。可以产生形体的运动、变化,动态地改变观测点的位置及视角。可以具有交互作用前景?可以充分利用JAVA语言的强大功能,编写出复杂的三维应用程序。Fluid3D应用与特点?Fluid3D并不是一个Web编写工具,它着眼于强化3D制作平台的性能。Fluid3D插件填补了市场的一个空白,尽管到目前为止它的应用范围还相当有限。它的主要功能是可以用来传输高度压缩的3D图像,而这种图像的下载通常是相当麻烦和耗时的。它的运用有助于使Web的3D技术更实用和切合实际,使之对桌面用户而言更有乐趣。Superscape(VRT)应用?SuperscapeVRT是Superscape公司基于Direct3D开发的一个虚拟现实环境编程平台。特点?它最重要的特点是引入了面向对象技术,结合当前流行的可视化编程界面另外,它还具有很好的扩展性。用户通过VRT可以创建真正的交互式的3D世界,并通过浏览器在本地或Internet上进行浏览。Vecta3D应用?它是3DSMAX的一款插件,可生成输出FLASH的文件与AdobeIllustrator的AI文件。pulse3D应用?Pulse在娱乐游戏领域发展,他瞄准的目标市场也是娱乐业Pusle3D提供了一个多媒体平台,囊括2D和3D图形、声音、文本以及动画等,特点?Pusle平台分为三个组件:①PuslePlayer②PusleProducer③PusleCreatorPusle3D的三个组件PuslePlayerPuslePlayer也即播放器插件,除了为IE和Netscape提供的浏览器插件外,Pusle还得到了Apple和Realnetwork的支持,在Quicktime和RealPlayer中已经包含了Pulse播放器PusleProducer是用来在三维动画工具中输出Pulse所需数据的插件能够输出到Pulse3D中的数据包括:几何体网格、纹理、骨骼变形系统、Morph网格变形动画、要害帧动画、音轨信息和摄像机信息等PusleCreator是Pulse3D的总组装平台,在导入数据后它负责加入交互性、打光、压缩、流传输和缓存等制作任务blaxxun3D和Shout3D应用?blaxxun3D和Shout3D是一个基于JAVAapplet的渲染引擎,它渲染特定的VRML结点而不需要插件的下载安装。他们都遵循VRML、X3D规范特点?Shout3D•用插件直接从MAX中输出3D内容和动画。blaxxun3D•是BrilliantDigital娱乐公司的产品,给3DStudioMax提供的b3d技术。Brilliant的程序员开发了一个数据压缩和发布技术,使得使得在窄带下也能够实现3D数据流的传输。它引入了以对象为基础的数据库将数据流和所存贮的数据连接起来。然后角色按情节指令进行动画。艺术家和动画师可以直接从3dstudiomax中直接输出动画到b3d授权环境下,在那里文件被压缩并使用Brilliant的数字播放技术发布到web上。Cult3d定义?位于瑞典的Cycore原是一家为AdobeAfterEffect和其它视频编辑软件开发效果插件的公司。为了开发一个运用于电子商务的软件,Cycore动用了50多名工程师来开发他的流式三维技术。现在,Cycore的Cult3D技术在电子商务领域已经得到了广泛的推广运用。和Viewpoint相比,Cult3D的内核是基于JAVA,它可以嵌入JAVA类,利用JAVA来增强交互和扩展,但是对于Viewpoint,他的Xml构架能够和浏览器与数据库达到方便通信。Cult3D的开发环境比Viewpoint人性化和条理化,开发效率也要高得多Atmosphere应用?这是在Adobe公司推出的一个通过互连网连接多用户的3D环境下的在线聊天工具。在Atmosphere中浏览的感觉类似于玩Doom类的3D视频游戏,不同的是其场景可以通过互联网让多个用户参与,彼此实时地看到对方对象的位置和运动情况,并在线聊天。由于Atmosphere环境提供了对自然重力和碰撞的模拟,使浏览的感受极具真实性。Shockwave3D应用?Macromedia公司的Shockwave3D技术已在全球拥有1亿多用户,它包含了Intel的网上3D图形技术。鉴于Intel和Macromedia在业界的地位,Shockwave3D得到了众多软硬件厂商的支持,包括ATI和nVidia公司也在其新发布的显示芯片中提供了对Shockwave3D硬件加速的支持。已推出的MacromediaDirectorShockwaveStudio8.5开发工具中,最重大的改变就是加入了Shockwave3D引擎。Shockwave3D技术具有以下特点:支持骨骼变形系统;支持次细分表面,可以根据客户端机器性能自动增减模型精度;支持平滑表面、照片质量的纹理、卡通渲染模式;支持烟、火、水等非凡效果;具有强大的交互能力等。由于Shockwave3D在画面生成质量上还无法与VET和Cult3D抗衡,因此在产品展示应用领域它并不具备优势,其主要用场将是需要复杂交互性控制能力的娱乐游戏和教育领域VET(ViewpointExperienceTechnology)前身是由Metastream和Intel合作开发的Metastream技术,在Metastream收购了Viewpoint公司后就采用了该新名称。早在Metastream2.0版中,其技术优势就已经表现出来。它生成的文件格式非常小,3D多边形网格结构具有可伸缩和流传输的特性,