基于VRML的虚拟校园漫游系统的设计

2010-11-27 05:38刘占伟
关键词:漫游景物虚拟现实

刘占伟,卢 静

(1.河南工程学院 数理科学系,河南 郑州 451191;2.河南工程学院 计算机科学与工程系,河南 郑州 451191)

随着计算机网络技术和虚拟现实技术的发展,许多高校建立了基于VRML(Virtual Reality Modeling Language,虚拟现实建模语言)的网络虚拟校园系统,把教学楼、重点实验室、图书馆等教学设施通过三维图形生动地展现出来.用户仅需要通过电脑和网络,安装必要的插件,就能身临其境地感受真实场景的校园.以河南工程学院为例,学院分多个校区办学,校内滨湖公园、休闲景观、绿化带与教学建筑交相辉映.因此,采用虚拟建模技术,建立学院虚拟校园漫游系统,对于展示校园文化和扩大学院知名度具有重要的意义.

建立基于VRML的虚拟校园,需要考虑真实感、绘制速度和交互方式等重要因素.通常VRML文件较大,难以达到平滑的运行效果,实时浏览较慢;在交互方式上限于VRML插件提供的功能,用户在漫游过程中可能由于不清楚当前所在的位置,所以难以获得当前视点所在场景的信息.因此,本文在场景建模时主要实现生成文件量较小的三维模型,模拟场景的真实感;在交互控制中,运用Java和VRML实现信息查询和视点跟踪,增强用户与虚拟场景的交互.

1 虚拟现实建模语言VRML

VRML是一种建立在Internet上的交互式三维多媒体的建模语言,它具有分布式、三维、交互性、多媒体集成、境界逼真等特征,被称为第二代Web语言[1].

VRML文件是虚拟现实的文本性描述文件,可由任一文本编辑器编写,例如vrmlpad.该文件以扩展名 .wrl的格式进行保存.一个VRML文件包括了一些主要的功能部件:文件头、场景图、原型和事件路由等.它的解释、执行和显示一般由专门的浏览器来完成,通过浏览器对VRML进行处理后,以声音和图像的形式展现出来,即所谓的“虚拟世界”.

用户除了可以在“虚拟世界”中漫游外,浏览器还允许用户通过场景图层次中的感知器节点与虚拟世界进行交互[2].交互性是VRML 2.0最大的改进[3],它支持Java、脚本语言,从而可以产生全新的交互式应用.VRML 2.0也支持外部编程接口(EAI),它是一种介于VRML世界与外部环境的创作接口,通过该接口,用户可以访问当前运行的VRML世界,控制VRML世界内部的场景[4],可以通过创建Java小程序,与相应的VRML场景一起嵌入到Web页面中实现相互通信,访问和控制VRML场景中的节点,实现外部程序对VRML虚拟场景的访问和控制.VRML 2.0不仅制定了标准的EAI,而且允许浏览器厂商开发EAI,这就意味着VRML具有强大的扩充性[5].

2 虚拟校园漫游系统的设计

2.1 系统的结构

河南工程学院虚拟校园漫游系统采用客户层、业务逻辑层和数据层的三层体系结构,见图1.浏览器处于客户层,用户使用内嵌VR插件(cortvrml),采用HTTP协议与服务器端进行通讯,提供三维虚拟场景的显示、操作、漫游和发出请求信息等;业务逻辑层包括Web 服务器和应用服务器.Web服务器接收客户层发出的请求,调用应用服务器的服务模块,向数据服务器发出数据交互的请求.数据层包括SQL Server数据库和VRML文件(*.wrl).

图1 系统的体系结构Fig.1 Structure of the system

该系统的功能包括场景介绍、三维漫游、二维导航、数据查询、交互控制等.

(1)场景介绍.对用户当前所处位置进行文字性描述,让用户不仅能直观地感受到景物,而且也能够从文字上了解景物的名称和用途,从而对学院有更深刻的了解.

(2)二维导航.用户通过导航地图,了解校园场景的整体分布和当前所在校园中的位置,单击导航地图中某一位置,可以快速进入该景点.

(3)三维漫游.通过键盘或鼠标,使用户能在虚拟校园中漫游,场景随着观察者所在位置的变化而变化.

(4)数据查询.通过输入景物属性信息,能够显示景物和邻近景观;在景观中浏览,单击景物对象,能够显示景物的属性数据.

(5)交互控制.在虚拟校园中,用户浏览不仅能被动地欣赏,还可以参与、介入虚拟世界中的物体及表现方式,与虚拟场景进行实时交互.例如用户在校园场景中随意浏览时,如遇到教学楼的门可以把它打开,进入教室可以把灯打开,把窗帘拉开.

2.2 三维场景的建模

三维建模是建立虚拟校园的基础,应该尽量将模型做得逼真、美观.

(1)基础数据准备.将河南工程学院多个校区的平面图通过扫描得到图片,通过等高线图生成具有地形特征的DEM作为整个系统的矢量化底图;通过Google Earth软件,获取多个校区的卫星图片;用数码相机多角度的拍摄办公楼、教学楼、图书馆、操场等景观照片,再把所拍摄的照片进行优化.

(2)设置空间背景及建立底图.VRML 2.0提供了54种标准的节点类型.利用Box节点建立一个立方体,再使用Texture image texture的贴图功能把学院的平面图贴到该立方体上,得到系统需要的底图.通过Backgroud这个节点在VRML中编辑系统的空间背景色,其中造型颜色使用RGB色彩进行度量,造型材质色外观分别使用三原色进行调整设置.

(3)三维建模过程.工程学院校区多,占地面积大,景观复杂,尤其是南校区有沟壑和天然槐树林.在虚拟场景构造时,往往需要构建复杂的三维几何体,并且需要将普通的文本和三维景观直接联系起来.VRML 2.0提供了54种标准的节点类型,包括组节点、通用节点、几何体节点、几何属性等.VRML没有提供高级的几何造型,可利用VRML结合3DSMAX建立模型.一般基础模型尽可能用VRML建模,并进行VRML优化.然后,利用Inline节点进行插入,以减少文件所占存储空间,提供浏览器的读取速度.对于复杂物体,在使用3DSMAX建模时,尽量减少弧形、圆形以及各种光滑表面的使用,而多用直线、直面,即使使用曲线、曲面,也尽可能减少顶点和面片数.为了模拟虚拟场景的真实性,采用基于相对坐标的方法,对于规模大、精度要求高的模型以同一场景中的相对坐标来构建.

模型建立完毕之后,模型导出为VRML语言识别的 .wrl格式,通过Vrmlpad编辑器对 .wrl文件进行代码的完善,加入Navigation节点实现漫游,运用LOD技术进行设置模型可视距离.为了做到真实的碰撞效果,在每一个 .wrl文件中对每一个不可穿越的物体设置Collision节点,防止出现因碰撞而穿墙过的问题.

2.3 交互功能的设计

2.3.1 景物与属性互查询功能

利用VRML的Anchor节点以及网页与场景中的对象连接功能,实现对场景中建筑、道路、操场等景物属性数据的查询.如:对建筑可查询的内容包括建筑名称、功能、层高等信息.反之,输入景物名称可以显示出相对应的景观.

2.3.2 数据查询功能

利用Java编写的程序调用VRML虚拟场景Scene对象,获取浏览者所在位置的坐标、方位等信息,还可以进行建筑、绿地等面积的查询与统计.

2.3.3 虚拟场景动态控制功能

VRML中的EAI是与VRML插件相联系的Java包,允许Java Applet访问VRML中的场景,实现用Java实现虚拟场景动态控制功能.用户控制虚拟场景流程见图2.

图2 虚拟场景控制流程图Fig.2 Flow chart of virtual scene control

以打开虚拟教室里的灯的交互为例设计如下.

DEF TS Touchsensor{…} #定义 “接触感应器”节点

DEF lamp Transform{… } #定义“灯”的节点

DEF lamplight DirectionalLight{ #定义光源节点

color 1.0 1.0 1.0 #光源在场景中的颜色

on FALSE #设置光源初值为“关闭”

}

DEF Change Script{ #定义脚本节点

eventOut SFBool lampset #定义脚本执行后的发出事件

eventIn SFTime to touch #定义脚本启动后的发入事件

url"vrmlscript: # 定义脚本中的描述语言

function totouch(){ #定义脚本中的执行函数

lampset=TURE;}" #设定发出事件

}

ROUTE Ts.touchTime To Change.totouch #设定感应器触发脚本执行的路由

ROUTE Change.lampset To lamplight.set-on #设定脚本输出到场景节点改变的路由

3 虚拟校园漫游系统的实现

系统的开发方法:将VRML和Java Applet置于同一页面下,以Java Applet为控制的核心;三维模型以*.wrl文件格式通过HTML的标记嵌入到网页中; Java Applet代码先生成相应的class文件,然后通过HTML的标记包含在VRML文件所在的网页中.

开发语言:Java

建模语言:VRML

建模工具:VrmlPad

展示平台:IE 6.0 (安装VRML浏览器插件Cortvrml及插件Quicktime 7.0)

初步开发的河南工程学院虚拟校园漫游系统主界面如图3所示.通过点击主界面上的卫星图片,可以选择其中一个校区进行虚拟校园漫游.进入校本部页面,单击图书馆链接后,可实现任意方向的实时实景漫游,其余景点类似.

图3 主界面Fig.3 The main interface

教学楼虚拟教室如图4所示,操作鼠标或键盘,可在虚拟教室中进行实时漫游、交互.

图4 教学楼虚拟教室Fig.4 Virtual classroom of a teaching building

4 结束语

本文运用VRML建模与Java交互技术设计了河南工程学院虚拟校园漫游系统,实现了网络化校园电子地图和虚拟现实技术的良好结合以及三维虚拟现实场景的交互式浏览.系统在绘制速度、真实感和交互性等方面取得了很好的效果.但是由于学院校区多,景观复杂,尤其是南区特有的地貌,该系统还有很多需要完善的地方,如三维场景建模的逼真度可进一步增强,虚拟场景中多用户交互的功能有待实现.

参考文献:

[1] 张昌明,张 虹.基于VRML-Java的网络虚拟现实的实现[J]. 计算机工程与设计,2005,26(9):2 410-2 412.

[2] 阳化冰.虚拟现实构造语言VRML[M].北京:北京航空航天大学出版社,2000:9-18.

[3] ANCLRE G, CRABRIEL T, BILL H. A framework for streaming geometry in VRML[J].IEEE Computer Graphics and Applications,1999,19(2):68-78.

[4] 王玉田,孔德慧.虚拟校园漫游系统的实现[J].北京工业大学学报,2006,32(4):316-320.

[5] 赛博科技工作室.VRML与Java编程技术[M].北京:人民邮电出版社,2002:36-58.

猜你喜欢
漫游景物虚拟现实
四时景物皆成趣
写写冬天的景物
霹雳漫游堂
REALITY BITES
写出景物漂亮的颜色
风口上的虚拟现实
NASA漫游记
虚拟现实技术向科幻小说借灵感
浅谈虚拟现实
边走边看:漫游海底 梦想成真