基于Web3D的虚拟仿真技术及应用研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Web3D的虚拟仿真技术及应用研究
摘要:目前WEB3D虚拟现实软件和技术已达几十种之多。例如,-VRML、X3D、Viewpoint、Cult3D、Java3D、VirTools、Shockwave3D 等对这些技术进行了分析介绍,对基于Web3D的各种热点仿真应用进行了总结,并对Web3D的发展和应用前景做了展望。
关键词:虚拟仿真虚拟现实Web3D
1 Web3D技术
1.1 VRML
VRML是VRML联盟发布的虚拟现实建模语言,是一个开放的、可扩展的、工业标准的景象描述语言。它的出现主要是为了解决在网页中实现三维动画的效果以及基于三维对象的用户交互问题。
VRML1.0支持相对简单的动画,而VRML2.0通过允许Java和JavaScrip程序员编写在VRML对象上施加动作的脚本,以支持复杂的3D动画、模拟和行为。
VRML技术的原理是在用户端提供一些基本的三维图形库,并在网页运行时实时着色和渲染,这样就使得在网络上传输的数据量大大减少。事实上,VRML文件只是一个文本文件。当你在网页上点击VRML文件时,如果你的计算机上安装了相应的VRML浏览器,它便会首先将VRML文件(文本文件)下载到本地机上,然后在本地机上解释
运行,因此这时的运行速度只是取决于本地计算机的性能,而与网络的速度无关。
1.2 X3D
Web3D协会为下一代VRML制定的X3D标准则使VRML又得到新的发展。X3D标准由XML、X3D文件格式和一个3D引擎组成。X3D文件格式沿袭了VRML97的节点、域、域值的结构,兼容VRML97标准和MPEG-4格式。3D引擎基于Java Applet,无论是文字、图片还是声音都可以方便的与3D内容结合,无需安装专用的插件就可以在浏览器中观看。除此之外,X3D新规范中突出了VRML与XML的集成。X3D采用可扩展标记语言编码,定义了一个小型运行内核、一组API和多个扩展集,具有小型化、组件化和可扩展等特性。通过XML,X3D能轻易地整合到网络浏览器和其他应用程序里。
X3D体系结构的设计是以软构件技术为指导的。构件是指功能相关的一个或多个节点类型的一个集合,一个构件扩展内核在某一特定领域的功能。X3D首先将VRML的关键特性封装为一个小型的、可扩展的内核,然后通过特性集扩展内核,实现复杂的或是应用程序定义的功能。用户可以在内核上建立一个完整的VRML97扩展,从而实现对VRML97规范的兼容;也可以添加其他扩展,如NURBS扩展、二进制文件格式扩展及Goral扩展等。
1.3 Viewpoint
Viewpoint Experience Technology (简称VET)是由Metacreation和Intel开发的Metastream技术。Metastream生成的文件格式非常小,三维多边形网格结构具有可伸缩和流传输特性,使得它非常适合于在网络上传输。在结构上,VET分成两个部分,一个是储存三维数据和贴图数据的Mts(Metastream)文件,一个是对场景参数和交互进行描述的基于XML的mtx文件。它具有一个纯软件的高质量实时渲染引擎,渲染效果接近真实而不需要任何的硬件加速设备。VET可以和用户发生交互操作,通过鼠标和浏览器事件引发一段动画或一个状态的改变,从而动态地演示一个交互过程。VET除了三维对象外还犹如一个能容纳各种技术的包容器。它可以把全景图像作为场景的背景。Flash动画能作为贴图使用。
Viewpoint的主要运用市场是作为物品展示的产品宣传和电子商务领域。许多著名的公司与电子商务网站使用了此技术作为产品展示。
1.4 Cult3D
Cult3D是瑞典的Cycore公司开发的一种跨平台3D渲染引擎。Cult3D使用高效的压缩技术使用户可以通过Internet来访问Cult3D 的内容。Cult3D的一个优势是具有很好的跨平台效能,它支持目前主流的各种浏览器、从PC到苹果的各种机型和包括Unix、Linux、Windows在内的各种常用操作系统。它的另一个优势是可以作为元素插入到Word和Acrobat等文档中使用。
Cult3D在表现和交互上和Viewpoint十分相似。和Viewpoint相比,Cult3D的内核是基于Java的,利用Java来增强交互和扩展。Cult3D 的开发环境比Viewpoint人性化和条例化,开发效率也高得多。
1.5 Java3D
Java3D API是Sun定义的用于实现3D显示的接口。3D技术是底层的显示技术,Java3D提供了基于Java的上层接口。Java3D把OpenGL和DirectX这些底层技术包装在Java接口中。这种全新的设计使3D技术变得不再繁琐并且可以加入到J2EE、J2SE的整套构架中,这些特性保证了Java3D强大的扩展性。
Java3D实际上是Java语言在三维图形领域的扩展,是面向对象的编程,Java语言的简单性为Java3D的推广提供了便利。它可以实现如生成物体、颜色贴图和透明效果、灯光、事件的处理判断能力、雾和声音等效果、模型变换及动画等功能。
现在,使用Java3D API技术生成的纯粹的Java3D图形,一定要有插件才能看到。但以后如果完美兼容Java2的话,Java3D也将得到更好的应用。
1.6 Virtools
Virtools是法国公司的产品,是国外专业游戏、3D/VR设计及企划人员广泛使用的软件及开发平台,目前全球已有多家设计公司使用此
软件平台开发多样的游戏软件及交互式网页。Virtools之所以会受专业人士采用,是因为利用其完全可视化接口与高度逻辑化编辑方式,轻易地将互动模块加入到一般的3D模块中,非常适合非程序设计出身的设计人员。
Virtools可以输入3DS Max、LightWave、Softimage等3D动画软件所制作的模型,支持JPG、TIFF、TGA、A VI等2D图片和影片格式,支持W A V、MP3等声音文档,也可利用SDK进行二次开发。Virtools 制作效果非常好,如国内的虚拟故宫就是采用该技术开发的。
1.7 Shockwave3D
Shockwave3D是MacroMedia公司联合Intel公司合作开发的网络多媒体技术。它可以输入3DSMax、Maya等软件制作的模型,最后得到的文件非常小,在互联网上进行流式传输,能根据电脑的资源自动调整3D内容的品质,并不影响图像的清晰度,只是影响可见的细节水平。
Shockwave3D通过MacroMeadia Director进行制作,由于Director 本身是多媒体开发平台,因此Shockwave3D可以和多媒体很好的结合。Director也为Shockwave3D加入几百条Lingo控制函数,通过这些函数,Shockwave3D在交互能力和扩展能力上也具有强大的优势,通过Havok,Shockwave3D可以模拟真实物理环境和刚体特性。但在画面的生成质量上看,Shockwave3D还无法和Viewpoint、Cult3D抗衡,目前多应用在不太复杂的网络游戏上。