文档介绍:本文由azd4j9h贡献
VRML 在网页游戏制作中的应用
【摘要】网页游戏近年来发展迅猛,市场不断扩大。由于网上存在着大量的 vrml/x3d 资源,本文讨论了在 vrml/x3d 基础上,结合其他相关技术制作网页游戏的方法,为低成本的网页游戏制作提供了一条思路。【关键词】 vrmlx3d 网页游戏引言网页游戏是一种基于浏览器的网络游戏,它无需安装客户端即可进行游戏。随着计算机硬件和软件能力的不断提升,网页游戏成为可能并且逐步普及。网页游戏早期多为 2d 的,目前正逐步向 3d 方向发展。目前网页游戏前端开发的主流技术是 flash[1]。 vrml 是最早的 3d 建模语言,网络上存在着大量共享的 vrml 资源。如果用 vrml 替代 flash 作为前端开发技术,则可以很好的利用已有的 vrml 资源,大大地节约开发成本。 vrml 的交互研究网页游戏可以看成是一种特殊的网页交互程序,其基本交互过程为:将客户端数据提交到服务器端,服务器端处理完以后再展现在客户端。相比普通的网页,网页游戏所进行的数据交互更加复杂和频繁,而且对实时性的要求也更高。 vrml 提供诸多交互手段,通常可分成非编程交互和编程交互两种交互方法[2]。非编程交互是一种基于 vrml 内建节点的交互方法,
是一种静态方式的交互,即场景中对象状态的改变是预先设定好的,不需要什么操作行为来激发其运动或变化,它通过预设的运动方式,由用户来决定触发。具体而言,它会首先通过检测器检测到用户在虚拟场景中的动作,然后通过事件的传递来实现虚拟环境和用户的交互。编程交互式是一种动态方式的交互,它是通过一段外部逻辑程序来决定事件的产生,它具有询问对象状态的能力,再基于这些状态做出相应决定,并改变场景的状态。具体来说,就是通过 java 和 javascript 脚本来实现动态交互,实现互动场景的动态行为,使用它可以在控制方式上做出很大的进步。vrml 有自己的 api,通过这些 api 接口提供了一个给 java 程序访问 vrml 浏览器界面的环境,而 java 对 vrml 的支持是通过附加的封装类来实现的,在这些类中实现了对 vrml 虚拟场景的全部控制。. 扩展 x3d 可看做 vrml 的升级版本,部分代码和 vrml 兼容,它集 xml, java,流技术等先进技术于一身,具有更强大的 3d 计算能力、渲染质量和网络传输速度,是可交互操作,可扩展,跨平台的网络 3d 内容,在虚拟现实系统交互功能实现方面比 vrml 技术有明显的优势。要实现更复杂的人机交互功能,需要用外部语言编写 script 节点的脚本程序, 借助 x3d 的事件和路由机制, 通过传感器节点及 script 节点形成 route--graph(路由图),场景随着用户的操作动态变化,
从而实现复杂动态场景交互。x3d 兼容 vrml,对于 vrml 代码只要做下声明即可成为 x3d 代码。为了便于交互,要对整体场景采用分割技术[3]。所谓分割技术, 就是把整体场景分成若干子场景和实体,子场景可以再分成若干子场景和实体。可以根据实际情况选择分割层次,即整个场景最终是由实体组成的,实体是组成虚拟场景最基本的单元,比如一扇门
, 一颗树等。封装先从最基本的实体开始,把每个实体的三维模型创建出来, 保存