-1-
中国科技论文在线
基于 VRML的 3D虚拟校园的实现
滕志鹏,苏红旗,郭敏敏
中国矿业大学(北京)计算机科学技术系,北京(100083)
摘 要:本文研究了虚拟现实建模过程中的相关技术问题,提出了一种交互式虚拟校园漫游
系统设计方案,初步实现了该系统的三维建模及渲染,同时对基于 Web 环境的漫游系统优
化方法进行了研究,取得了很好的实验效果。
关键词:虚拟现实;数字校园;漫游;VRML
中图分类号:
1 引言
虚拟现实(Virtual Reality) 是一种可以创建和体验虚拟世界的计算机系统[1],它利用计算
机模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,使
用者如同身临其境一般,可以及时、没有限制地观察三维空间内的事物[2]。
虚拟校园漫游是虚拟现实在教育领域的一个应用[3-7]。是利用虚拟现实技术和计算机图
形学等技术,实现对校园场景的仿真再现,对校园进行交互式的浏览。虚拟校园漫游系统是
数字校园建设的一个不可缺少的组成部分。
VRML(Virtual Reality Modeling Language,虚拟现实建模语言)是一种基于web面向对象
的三维造型语言,是构建虚拟漫游系统的有力工具。VRML用ASCII文件来描述三维模型及
渲染信息和动画过程,而将真正的生成工作放在本地实现。目前已经成为国际标
准。本文基于VRML实现了一种可交互的动态数字虚拟校园漫游系统。
建立一个数字虚拟校园的一般流程如图1所示:
图 1 建立虚拟校园的基本流程
本文对三维建模、渲染的过程、实现动态与互动以及为了提高在Web中传输速度对
VRML文件的优化进行了研究。
2 VRML与三维建模
VRML是面向web 3D的核心技术,VRMLPAD是编辑VRML的主用工具之一,可以进行
简单的三维建模。而对于复杂的三维场景,可以利用可视化三维建模工具生成VRML。下面
对于VRML和建模工具进行分析。
VRML
VRML是一种建立在 Internet上的交互式三维多媒体的建模语言,它具有分布式、三维、
交互性、多媒体集成、境界逼真等特征,被称为第二代Web语言。VRML通过节点进行三
维描述,任何对象都用节点表示,可以通过标准形状节点和高级形状节点,创造虚拟环境中
的静态虚拟对象;通过各种动态造型节点和时间传感器节点,实现动态建模;通过传感器节
点和视点控制,使系统能与用户交互。
利用可视化三维建模工具生成 VRML
设计方案 拍照 准备素材 建模
编辑 wrl文件
添加互动代码 发布
-2-
中国科技论文在线
目前常见的三维建模工具有3DS MAX,Sketch Up等,本文采用了3DS MAX。与其它建
模工具相比,3DS MAX导出的VRML模型文件相对较小,这对于网络传输的实时性是有利
的。除此之外,3DS MAX还具有优化模型、纹理渲染、有AUTO CAD等制图软件接口等较
为完备的功能。
通常,对于简单的三维模型可直接由VRML代码实现。但是对于复杂或不规则的三维模
型,则要借助3DS MAX建模,然后导出为VRML。直接生成的VRML文件较大,但利用
VrmlPad的压缩功能,可减小大概10%-70%的文件容量。图2是中国矿业大学(北京)校园
的科技楼三维模型,未压缩前的wrl文件体积为364Kb,压缩后的文件体积是80Kb。
图 2 中国矿业大学(北京)科技楼的三维模型
3 三维模型的渲染
渲染过程首先要确定一个摄像机(即视点),3D MAX缺省提供4个摄像机,即顶视图、
正视图、侧视图和透视图。实际应用中最常见的渲染是透视图,透视图的摄像机基本遵循真
实摄像机原理,所以才能在屏幕上展示出具备真实立体感的三维目标。3D MAX中可以自己
定义摄像机,对应于VRML中的Viewpoint(视点)。VRML的图形渲染是“实时”的,这是虚
拟现实的必要条件,当用户在其中漫游时视点是不断改变的。但一般仍然需要建立几个摄像
机供选择以便从合适的角度浏览三维场景,本文的虚拟校园中设置了两个视点,一个用于从
场景前方进行浏览,便于了解场景细节,另一个用于俯视整个场景,便于了解场景全局。
确定视点之后还需要确定场景光源,以便增加场景的空间感。3D MAX中有默认光源,
也可以又用根据需要设置特定光源。在VRML中光源被表示为灯光节点,包括SpotLight,
PointLight等。
确定了视点和光源之后,还要确定目标表面的材质。3DS Max提供了一些简单的纹理图
样,用户可以直接使用。但如真实目标纹理比较复杂,则需通过数码相机拍摄目标来获取相
应的纹理贴图,并可运用图像处理软件(如Photoshop等)对其进行拉伸、旋转、拼接、细
化等处理,以满足场景需要。然后通过3DS Max中的材质编辑器用纹理贴图来渲染三维物体,
使建筑物等更具有真实感。
4 VRML的优化以及动态和交互实现
VRML文件的优化
三维建模和渲染完成之后,就可以将场景导出为wrl文件。由于wrl文件中含有大量冗余
数据,有必要对其进行优化。优化包括对模型的优化和对VRML文件本身的优化。
在3DS Max中,对于复杂材质的目标采用二次建模,先精细建模,赋以纹理与材质,然
后对所需的纹理进行渲染输出。首先,对精细建模的目标结构进行分解,采用拉伸或放样等
-3-
中国科技论文在线
功能生成简单几何体的组合,最后,将上述输出的包含细节信息的纹理对几何体进行贴图,
完成模型的构建可以减少三角面片的数量。
对VRML文件自身的优化可以使用VRML中的LOD节点。LOD节点根据人眼对同一个物
体在远近不同的位置所能看到的细节详细程度不同这一视觉特性,对建筑物模型进行优化处
理,为建筑物建立一组详细程度有别的几何模型,建筑物离视点越远,建立的模型包含的多
边形就越少,从而加速模型绘制速度提高浏览虚拟场景的流畅性。另外,对于相同造型的物
体先用DEF语句对节点命名,再通过USE引用就可获得物体的完整复制;而对相近造型的物
体可以使用原型节点PROTO 来复制使用,这样可大大简化代码。
场景的动态和交互实现
本文的虚拟校园实现动态和交互采用了两种方法,SAI和EAI,SAl(Script Authoring
Interface)是节点创建接口,实现的过程如图3所示
VRML中定义了9种感应器,分为环境感应器和设备感应器,相应的感应器感应到的相
应的事件发生,感应器节点通过路由就可以将消息送到指定的节点,如果需要支持复杂事件,
则可以将事件EventIn到脚本节点进行处理,然后脚本节点再将事件EventOut接着通过路由再
作用于其他节点,从而为场景增加交互性和动态性,脚本节点可以增删路由。
图 3 SAI方法的交互实现过程
例如,本文的虚拟校园进入房间后实现用开关控制灯的亮灭所用的代码如下:
DEF s1 Script{ #s1为脚本节点
eventIn SFTime touch #定义EventIn变量
eventOut SFInt32 choice #定义EventOut变量
url "vrmlscript: #vrmlscript脚本实现
function calculate(input){
return(input+1)%2;} #输入为1时返回0,输入为0时返回1
function touch(){ #实际是为一个求反运算,实现灯的开关
choice=calculate(choice);}"
}
ROUTE TO #路由触发器到脚本的EventIn
ROUTE TO #路由脚本的 EventOut到灯的开关
EAI(External Authoring Interface)是VRML与JAVA进行消息传递的接口,通过EAI可以实
现Java-applet与vrml的通信,EAI提供了一系列的java包,为一个Java Applet提供以下功能:
控制VRML浏览器的工作状态;发送一个事件到VRML场景中的事件入口;接受VRML场景
的节点的事件发出的最新值。对于单一的VRML事件实现交互及运算功能可选择内部的
EventIn
增删路由
EventOut
场景 感应器节点
脚本节点
节点
触发事件
路由
-4-
中国科技论文在线
Script节点即SAI接口来实现,若需集成多种媒体,并进行复杂网络控制,则更适合通过EAI
接口与Java语言相结合实现更复杂功能。本文的虚拟校园中采用JDBC方式来建立VRML,
Java Applet与数据库三者的连接,来完成比一般校园网中更为直观的查询功能[3]。
本文的虚拟校园场景整体文件很大,为了实现场景的跳转或者访问场景内部结构而不增
加场景体积,或者为了实现场景到相应网页的跳转,利用了VRML的Anchor节点。本文中实
现的虚拟校园可以访问建筑物的内部空间,实现的方法就是在门物体上增加一个Anchor节点
Anchor { children [
DEF door Transform {…} #门物体的形状代码
] url""}
添加了上述代码之后,当点击门节点的时候就可以跳转到文件,进入对应的内
部场景。Anchor节点同样用于多媒体教室中,当浏览者漫游到多媒体教室中,可以点击场景
中的多媒体播放按钮,跳转到相应的多媒体文件,如PPT演示或者视频文件等。
5 总结
本文提出了一种基于VRML的建立三维虚拟校园漫游系统的实现方法,并对实现过程中
的相关技术问题进行了研究。三维虚拟校园比传统的2D校园网页更加直观、便利,能够使
浏览者迅速对整个校园以及校园的基础设施有充分的了解,同时也为实现虚拟教室提供了一
种有效的途径。随着虚拟现实技术的进一步发展,虚拟校园必然能够增加更为丰富的内容。
参考文献
[1] The Virtual Reality Modeling Language International Standard [S], ISO/IEC 14772-1, 1997.
[2] 张金钊,张金摘,张金锐. 虚拟现实三维立体网络程序设计语言 VRML[M]. 北京:清华大学出版社, 2004.
[3] 宋青红,华斌. 基于 VRML和 Java技术的虚拟校园三维查询系统[J]. 计算机工程, 2005, 31(6):173- 175
[4] 李延军,陈玮. 基于 VRML的虚拟校园漫游系统设计与实现[J]. 自动化与信息工程, 2008, (2):46-48
[5] 魏薇,陈谊. 应用 VRML实现虚拟校园漫游系统[J]. 北京工商大学学报, 2006, 24(3):54-57
[6] 孙麒,刘迎春,徐春霞. 基于 VRML的虚拟场景漫游实现[J]. 计算机工程与设计, 2008, 29(14):3748- 3751
[7] 陈启祥,苏艳等. 基于 VRML的三维建模技术[J]. 计算机与数字工程, 2007, 38(5):161- 163
A Realization of VRML-based 3D Virtual Campus
Teng Zhipeng, Su Hongqi, GuoMinmin
Department of Computer Science and Technology, China University of Mining and
Technology(Beijing), Beijing (100083)
Abstract
This paper researches some technical issues in the process of modeling of virtual reality, provides a
design of a interactive virtual campus roaming system, initially achieve the three-dimensional modeling
and rendering of the system, and researches the methods of optimization of roaming system in the
Web-based environment, and achieves a good experimental results.
Keywords: Virtual Reality; Digital Campus; Roaming; VRML