VRML在网页游戏制作中的应用
【摘要】网页游戏近年来发展迅猛,市场不断扩大。由于网上存在着大量的VRML/X3D资源,本文讨论了在VRML/X3D基础上,结合其他相关技术制作网页游戏的方法,为低成本的网页游戏制作提供了一条思路。
【关键词】 VRMLX3D网页游戏
引言
网页游戏是一种基于浏览器的网络游戏,它无需安装客户端即可进行游戏。随着计算机硬件和软件能力的不断提升,网页游戏成为可能并且逐步普及。网页游戏早期多为2D的,目前正逐步向3D方向发展。
目前网页游戏前端开发的主流技术是Flash[1]。VRML是最早的3D建模语言,网络上存在着大量共享的VRML资源。如果用VRML替代Flash作为前端开发技术,则可以很好的利用已有的VRML资源,大大地节约开发成本。
VRML的交互研究
网页游戏可以看成是一种特殊的网页交互程序,其基本交互过程为:将客户端数据提交到服务器端,服务器端处理完以后再展现在客户端。相比普通的网页,网页游戏所进行的数据交互更加复杂和频繁,而且对实时性的要求也更高。
VRML提供诸多交互手段,通常可分成非编程交互和编程交互两种交互方法[2]游戏xml文件修改。非编程交互是一种基于VRML内建节点的交互方法,是一种静态方式的交互,即场景中对象状态的改变是预先设定好的,不需要什么操作行为来激发其运动或变化,它通过预设的运动方式,由用户来决定触发。具体而言,它会首先通过检测器检测到用户在虚拟场景中的动作,然后通过事件的传递来实现虚拟环境和用户的交互。
编程交互式是一种动态方式的交互,它是通过一段外部逻辑程序来决定事件的产生,它具有询问对象状态的能力,再基于这些状态做出相应决定,并改变场景的状态。具体来说,就是通过 Java 和 JavaScript 脚本来实现动态交互,实现互动场景的动态行为,使用它可以在控制方式上做出很大的进步。VRML 有自己的 API,通过这些API接口提供了一个给Java程序访问VRML浏览器界面的环境,而Java对VRML的支持是通过附加的封装类来实现的,在这些类中实现了对 VRML 虚拟场景的全部控制。
.
3.X3D扩展
X3D可看做VRML的升级版本,部分代码和VRML兼容,它集XML,JAVA,流技术等先进技术于一身,具有更强大的3D计算能力、渲染质量和网络传输速度,是可交互操作,可扩展,跨平台的网络3D内容,在虚拟现实系统交互功能实现方面比VRML技术有明显的优势。
要实现更复杂的人机交互功能,需要用外部语言编写Script节点的脚本程序,借助X3D的事件和路由机制,通过传感器节点及Script节点形成Route--Graph(路由图),场景随着用户的操作动态变化,从而实现复杂动态场景交互。X3D兼容VRML,对于VRML代码只要做下声明即可成为X3D代码。
为了便于交互,要对整体场景采用分割技术[3]。所谓分割技术,就是把整体场景分成若干子场景和实体,子场景可以再分成若干子场景和实体。可以根据实际情况选择分割层次,即整个场景最终是由实体组成的,实体是组成虚拟场景最基本的单元,比如一扇门,一颗树等。
封装先从最基本的实体开始,把每个实体的三维模型创建出来,保存成单个文件。在此基
础上,构建实体和场景数据库,通过X3D的数据库驱动动态建模功能,动态地创建出各层的子场景和最终的整体场景,实体之间和子场景之间的连接可以使用Inline命令,各个实体和子场景需要动态的数据都存放在数据库中。X3D只是创建了这些实体如何显示的场景模板。创建好场景模板后,开发者和使用者只需要修改数据库的数据就可以定制不同的场景。
采用X3D对场景进行分割建模后,可以动态或者静态的进行交互设计。对于一已经封装为X3D格式文件的物体,要实现其移动动画,可以设置一个BillBoard节点,将物体放入该节点内,并定义一个时间传感器和一个接触传感器以及一个动画位置插补器,与JavaScript结合用来控制物体的移动。
4.多用户交互
最后,要实现多用户交互,还要联合ASP的编程技术在数据库上进行交互。先把数据库与ASP进行连接来读取数据库中的内容,紧接着把读到的数据传输给浏览器,然后由浏览器来结合VRML中的语句进行渲染。这样用户进行操作时,操作产生的数据改变会提交给数据库来实现数据库中VRML场景中物体属性的更改,从而在不断刷新的网页上体现出来。在同一个时间段之内可以实现多个用户对虚拟场景中的VRML/X3D对象进行操作,而相互之间只要
刷新网页和读取数据库中的新数据就可实现远程交互了[4]。ASP和VRML结合的部分源代码如下:
Transform
{.
Translation
Rotation
Children
[
Inline
{ url“<% = rs(“man”) %”}
]
}
5.总结
通过以上分析,基于经典VRML虚拟世界“泰偌切蒂兰城”,已开发出一个可供多人实时交互的简单网页游戏,经过测试,多人交互实时性可满足要求。
由于开发工具的缺乏,VRML在图像质量方面还无法与主流网页游戏竞争,VRML的优势在于成本的低廉。在某些场合,比如说产品推广或者项目介绍,将内容用VRML制作成网页游戏形式将会带来惊喜。
参考文献:
[1]徐鹥. 网页游戏开发技术的探讨与研究[J]. 中国信息科技,2010,14:046
[2]孙范荣,王鹏等. 基于VRML的虚拟现实技术应用[J].系统仿真学报,2007,16:161
[3]严林.虚拟现实在室内设计中的应用[D].武汉科技大学,2010
[4]吴姣黎.三维数字城市的研究与应用[D].西南交通大学,2001
注:文章内所有公式及图表请以PDF形式查看。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论