基于AJAX和X3D的虚拟场景交互架构研究
于亮1,李刚2,李光明2,夏丹丹1
(1.空军雷达学院研究生管理大队,武汉430019;2.空军雷达学院信息与指挥自动化系,武汉430019)
摘要:针对X3D的Web应用中用户与三维物体的交互仅局限于浏览器端的三维场景之中不能操作存在于服务器端的特定三维物体,结合AJAX技术,提出一个AJAX和X3D结合的场景交互架构,通过一个应用实例给出了AJAX和X3D结合的场景交互实现方法.该场景交互架构很好地解决了三维场景与服务器端的通信问题.
关键词:可扩展3D;场景访问接口;AJAX技术;虚拟场景交互
中图分类号:TP391.41文献标识码:A
虽然三维技术在计算机领域已经存在很久,但要在网络上实现三维场景,尤其是高质量的三维场景,对计算机的性能和网络带宽都有很高的要求.现在随着电子商务、网络游戏的兴起,越来越多的网站需要三维的技术与呈现.同时,随着计算机性能的大幅提升,网络带宽的改善,以及网络技术的发展,这些因素使得三维技术在网络上的广泛应用成为可能.Web3D技术是随着互联网与虚拟现实技术的发展而产
生的,其目的在于在网络特别是在互联网上建立三维的虚拟世界.3D虚拟技术不仅能应用于游戏和娱乐,更加诱人之处还在于其潜在的巨大商业价值,如产品展示、广告制作、公共展览和博览会等等.对于网上电子商务,将销售产品展示做成在线3D的形式,必将吸引更多的顾客.人们还可以通过3D虚拟技术,根据一些图片、建筑设计图纸等历史资料,再现以前的历史景观并漫游其中.
X3D是Web3D联盟推出的新一代互联网三维图形规范,它采用XML编码,具有易于页面集成、与下一代Web融合等诸多优势.虽然现在网络上已经有X3D的应用,但是三维场景的交互手段相对比较匮乏,仅有一些视点的转换或者一些已经在场景文件中设计好的选择交互.比如改变三维物体在场景的位置、变换物体的颜和角度等.AJAX技术是近两年兴起的一种网络异步交互技术,它为网络异步交互提供了丰富的手段.将AJAX 应用于网络三维场景交互的研究刚刚开始.本文探讨了将2种技术结合的方法,给出了两者结合的虚拟场景交互架构和一个应用实例.
1X3D虚拟场景交互方法
X3D(Extensible3D)是Web3D Consortium于2001年8月发布的新一代Web3D国际标准,并在2004年8月正式通过ISO的审核,成为新一代的网络3D图形处理的标准.它定义了如何在多媒体中整合基于网络传播的交互三维内容.X3D是VRML(Virtual Reality Modeling Language)的继承,VRML是原来的网络3D图形的ISO标准(ISO/IEC 14772).X3D除了继承VRML的核心架构外,并针对现在的需求进行了改进,
提供了以下新特性:更先进的应用程序接口、新增的文件编码格式(XML 编码)、严格的一致性、和组件化结构.
X3D的SAI为所有脚本语言的内部和外部交互提供了一致的功能.无论用户想通过X3D内部Script节点还是外部应用程序与虚拟场景进行交互,都要使用SAI.VRML中并不是这样的,VRML 中的Java和ECMAScript使用差别很大的编程模型.X3D SAI通过指定一个统一的可以影射到任何编程/脚本语言的抽象服务集来解决这些问题,这样不管使用哪种编程语言都可以使用一致的播放环境,它改善了VRML97中存在的问题,因此可以建立更强健更可靠的执行方式.对于SAI来说它也分为内部和外部2种使用方式,场景的内部存取采用Script节点方式,场景的外部存取则采用其他应用程序来存取.
虽然X3D标准定义了丰富的场景交互方式和
收稿日期:2007-08-31;修订日期:2007-09-20作者简介:于亮(1982
第1期于亮,等:基于AJAX和X3D的虚拟场景交互架构研究63
接口,但是对于Web应用来说它还存在着很多不足.由于Web应用大部分是基于B/S的结构,而现在互联网上基于X3D的虚拟场景交互主要是在浏览器端的交互,基本上没有与服务器端的通信.场景交互的代码通常被编写在X3D文件中,并随Web 页面一起下载到浏览器.这样场景交互的方式是固定的.任何
用户都使用同样的方式进行交互.尽管有一些方法可以解决问题,但通常意味着编码复杂度的提高和X3D文件的不断增大.基于X3D 的Web应用有以下2点不足:(1)用户在浏览器中与三维场景的交互(如选取某一物体)信息向服务器的发送存在问题.现在Web应用中浏览器端与服务器端的通信一般采用同步模式.在这种模式下服务器每响应一次用户的请求,浏览器就要刷新一次页面.这样三维场景便重新载入一次,使用户操作的三维场景恢复到了原始状态.用户还要重新操作,给用户带来不便.(2)服务器端的X3D 文件向浏览器端的异步发送问题.目前的应用中客户需要全部下载完服务器端的X3D文件后,才能浏览三维场景.比如对于虚拟场景的构建应用来说,用户可以选择三维物体添加到三维场景之中.供选择的三维物体是多种多样的,不同的用户会选择不同的三维物体来构建三维场景.但是目前来说用户需要把三维物体都下载到浏览器端,才能实现应用.这不但增加了网络负载,而且增加了用户等待的时间.如何实现虚拟场景浏览器端与服务器端的通信,使用户只需下载所需要的X3D 文件,便成为急需解决的问题.
2AJAX与X3D结合的场景交互架构对上面提出的2点不足进行分析可以发现,基于X3D的Web应用要解决浏览器与服务器的异步交互问题和服务器向Web页面传送文件问题.本文使用AJAX技术来解决这2个问题:(1)AJAX实现了在网络上客户端与服务器端的异步交互,客户在浏览器端向服务器提交或接收数据和命令不用重新刷新Web页面.这为实现基于Web的胖客户端应用提供了技术上的支持.(2)X3D的基于XML编码的格式使得在网络上能快速传送3D图形文件.因此AJAX可以充当客户端和服务器
端文件传送的工具,基于X3D标准编码的3D文件可以通过AJAX在异步条件下由服务器端传送到客户端,在客户端通过脚本语言并利用X3D标准提供的接口将3D文件插入三维场景中,这样通过浏览器就可以看到三维的物体.同时X3D标准也定义了丰富的三维场景交互方法,客户可以使用鼠标、键盘等工具与三维场景中的物体交互.因此可以使用AJAX将客户的一些操作命令由客户端传送到服务器端,并在服务器端处理后重新发送回客户端.这样就可以在异步条件下改变三维场景中的内容,给客户带来更加具有交互性的三维体验.AJAX和X3D结合的场景交互架构图如图1所示,其中X3D文件位于服务器端,它包括组成三维场景的各个三维物体的所有X3D文件.对于初始的Web页面显示,浏览器只用下载部分文件.随着用户的请求,浏览器可以通过AJAX的核心对象XMLHttpRequest将位于服务器端的X3D文件以字符串的形式传送到浏览器端.在Web页面中通过脚本机制利用SAI来解析从服务器端传送的字符串,并加入到三维场景中.三维场景的交互主要通过SAI接口来操作.SAI中定义了响应函数,这些函数在场景发生变化时可以被触发.在脚本中将这些触发信息进行处理,一些信息便可以通过XMLHttpRequest对象回传给服务器.由服务器进行相关的处理,并作出响应.
将AJAX与X3D相结合是建立在2种编程模型的基础上:W3C的DOM和ISO的SAI.DOM为程序与Web文档的结合定义了一个模型,SAI使得程序能够控制X3D场景.运行在Web页面上的脚本代码能够同时将DOM和SAI相结合,因此便可以编写传统的二维页面元素与三维世界相结合的应用程序.
3交互场景设计方法与实例
根据图1所示的场景交互架构图,通过一个在线室内设计实例来实现AJAX与X3D相结合,动态地对场景中的内容进行操作.在Web浏览器中浏览三维场景,需要插件的支持.现在使用的浏览器插件主要有FLUX Player和BS Contact2种.本文的实例使用了FLUX Player插件,将AJAX和X3D 相结合的Web应用的页面包含二维元素和三维场
Exeernal
Prototype
Prototype
X3D Node
Node
XML,Binary)
(Classic VRML
X3D文件
Java类机制
Scripting机制
图1AJAX和X3D结合的场景交互架构
64空军雷达学院学报
2008年
景.用户操作二维元素(如文本框、按钮等)来与三维场景进行交互.在Web 页面中可以使用EMBED 或OBJECT 标签(前者被浏览器更好的支持)来定制三维场景的显示框,并可以使用标签的src 属性导入服务器中的X3D 文件.通常X3D 插件全部或部分实现了X3D 标准定义的节点和交互接口,与三维场景的交互正是通过这些接口来操作的.X3D 插件被嵌入到Web 页面后,就可以在脚本语言中像其它DOM 对象一样访问.
ajax实例 文件浏览本实例中使用XMLHttpRequest 对象来动态的向三维场景中加载三维物体.X3D 采用XML 编码格式,这给X3D 文件在网络上的传输提供了便利.将X3D 文件放在服务器端,用户需要时便向服务器发出请求.服务器通过网络将需要的文件传送回客户端.XMLHttpRequest 对象在本实例中充当了传送器的角,当然XMLHttpRequest 对象的作用不仅仅局限于此,它还能向服务器发送请求并返回响应等多种作用.由XMLHttpRequest 对象返回的X3D 文件只是单独的三维文件,可以使用SAI 提供的接口将其加入现有的三维场景中,并通过SAI 在场景中调整物体(如平移、旋转、缩放等).图2是程序运行后的页面,用户通过鼠标可以向
房屋中添加家具,并在房屋中调整家具的位置、大
小等属性.
将AJAX 与X3D SAI 相结合,主要使用了AJAX 的异步交互特性和X3D SAI 的三维场景交互特性.2种先进技术的结合对于在Web 中给用户带来更加逼真的三维体验将具有重要的应用价值和意义.
4结束语
开放的X3D 标准使得在网上呈现实时的3D
图形成为可能.同时,AJAX 的迅速发展为Web 应用程序的开发解决了一些技术上的难题.相信将两者相结合一定会设计出更加具有交互性的网络三维场景,给用户带来更加有趣的三维视觉体验.目前这方面的研究正逐步开始,相信不久以后就能实现网络环境下更具交互性的三维场景.
参考文献:
[1]刘尚勤,顾耀林.基于X3D 构建高效的虚拟场景[J ].计
算机工程与设计,2006,27(2):303-306.
[2]Tony Parisi.The Open Platform for Rich 3D Web Appli-cations [EB/OL ].(2006-08)
[2007-08]./whitepaper/.[3]李海庆,殷国富,胡瑞飞.基于X3D 的虚拟场景交互架构
的实现方法研究[J ].系统仿真学报,2006,18(3):383-385.[4]ISO/IEC 19775:2004/Am1:2006,Extensible 3D (X3D )
[S ].
[5]ISO/IEC 19777,Extensible 3D (X3D )Language Bindings
[S ].
[6]Ryan Asleson,Nathaniel T Schutta.Ajax 基础教程[M ].
金灵,等译.北京:人民邮电出版社,2006.
Study of Virtual Scene Interactive Architecture Based on AJAX and X3D
YU Liang 1,LI Gang 2,LI Guang-ming 2,XIA Dan-dan 1
(1.Department of Graduate Management,AFRA,Wuhan 430019,China ;2.Department of Information &Command Automation,AFRA,Wuhan 430019,China )
Abstract :Concerning that user was limited to the scene of browser when interacted with a 3D item,and could
not operate the 3D item on the server in the Web application of X3D.By using the AJAX technology,a s
cene interactive architecture combining AJAX and X3D was presented,and the implementation method of scene interaction based on AJAX and X3D was given via an application instance.This scene interactive architecture can solve the communication problem between the 3D scene and the server.
Key words :extended 3D (X3D );SAI ;AJAX technology ;virtual scene
interaction
图2实例结果
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论