虚拟校园的研究与实践

时间:2022-04-19 06:41:57

虚拟校园的研究与实践

摘要:虚拟校园是利用虚拟现实技术,在计算机中模拟再现真实校园景观,让那些不能在实地参观的人拥有身临其境的感受。该文初步探究了X3D技术,并基于该标准,运用记事本进行X3D程序编码,在运用3DS Max创建的虚拟空间的基础上实现了虚拟红满堂漫游系统。

关键词:虚拟现实;虚拟校园;X3D漫游

中图分类号:TP393文献标识码:A文章编号:1009-3044(2011)31-pppp-0c

The Study and Practice of Virtual Campus-Hongmantang as the Example

YANG Lei, ZENG Ling, CHEN Shao-hong

(College of Informatics, South China Agricultural University, Guangzhou 510642, China)

Abstract: Virtual Campus is based on the virtual reality technology and the realistic campus can be simulated by computer. People can roam in the virtual scene though the computer and let those who cannot visit the campus on-the-spot have the immersive feel. This paper studies the X3D technology initially, programs X3D code with Notepad based on the standard, realize the roaming system of the virtual Hongmantang which is constructed by the 3DS Max software.

Key words: virtual reality; virtual campus; X3Droaming

虚拟校园漫游系统是数字校园建设的基础,它的研究和应用对数字校园的建设有重要的现实意义。本文以华南农业大学的红满堂为虚拟空间,创建出红满堂主体及周围场景如道路、草坪、树木等虚拟模型,实现了基于X3D的逼真虚拟校园漫游系统,用户既可以自由地选择不同视点游览漫游,也可以进行实时地交互性漫游。

1 虚拟校园开发的基础

虚拟现实即“Virtual Reality”,是一项综合集成技术,它用计算机生成逼真的三维视,听,嗅觉等感觉,使人自然地对虚拟世界进行体验和交互。本虚拟校园实现的硬件环境:英特尔Core i3 M 350,2.27GHz,2GB内存, Nikon D80。软件环境:Windows 7 家庭普通版操作系统,3DS Max 2009软件,记事本,BS_Contact 7.0, Photoshop软件。系统实现的关键技术有:X3D技术,使用记事本来编写X3D源程序,源程序的文件扩展名为*.X3D或*.x3dv。3D Studio max,用3ds max软件创建所有虚拟场景,将文件导出为.wrl文件,再通过BS Contact浏览器转换为.x3d文件。BS_Contact 浏览器,BS_Contact良好的图形渲染效果为x3d虚拟现实系统的开发提供了编程的接口,大大提高了构建x3d虚拟现实系统的效率。

2 虚拟校园的开发

2.1 系统的需求分析及设计目标

本系统旨在开发华南农业大学的标志性建筑红满堂的校园虚拟漫游。首要工作是根据实际的自然场景对红满堂及周围场景进行建模,通过建模得到红满堂的虚拟场景。系统拟实现红满堂外部场景的漫游,实现的目标如下:运用3DS Max创建真实地反映红满堂风貌的虚拟场景;在虚拟场景中设置不同的视点形成漫游路径;用户可以通过鼠标或键盘在红满堂场景中漫游。根据系统目标,实现流程分为两大步骤:

虚拟红满堂场景的创建:在实地考察红满堂的布局,测量各实体对象,并基于所得红满堂照片的基础上,建立模型,得到zhuti.max的虚拟红满堂场景。

视点浏览与漫游的实现:通过预先设定的路径实现的自动漫游;实时控制漫游方向,速度,视点高度等的交互式漫游。其中,自动漫游是通过Viewpoint视点节点创建多个观测点,形成漫游路径;实时漫游是通过NavigationInfo导航节点实现的。

2.2 虚拟校园场景的建立

2.2.1 信息的收集与处理

原始数据主要来自数码相机所拍摄的照片和实地考察,根据各实体对象实际的占地位置,进行目测及实际测量,计算出主体的大概面积,高度;材质贴图主要通过数码相机拍摄得来,并作亮度,色调,角度等处理。

2.2.2 虚拟场景的建模

为建模方便,对主体中的各实体进行命名,见图1。主体的建模所做的工作主要分三步:(1)测量整理主体的数据。方柱正面的宽度,方窗的宽度、高度,方窗下沿突出的宽度、高度,圆墙体的高度,圆墙体距底柱的宽度等相关数据。(2)分析主体各实体对象,确定建模方案。从下至上观察主体:底座是圆柱体,圆环形墙体及方形窗上下沿,分别有20根方柱,16个方形窗和4扇门(门与方形窗的宽度相同),20个半管状窗顶,20根圆柱,20个小方窗,10个大扇形组成的大顶,而最顶为1圆墙体、20个小扇形及一个避雷针。(3)主体各实体对象的建模。

图1 实体命名图

2.2.3 模型的优化与贴图

红满堂虚拟场景中的实体对象相对比较多,必须精简优化模型:用圆柱体或长方体建模时,减少各自的分段数,以减少多余的面数;去除冗余实体外部观察模型时不可见的部分;同类型的对象成组,复制时选择关联复制选项等也可减少一些面数,边数。精简优化模型之后即可对模型进行纹理贴图。本文采用Bitmap位图贴图方式,将之前用Photoshop处理好的照片导入到材质球中,根据需要可创建反射、凹凸等效果,并为模型添加UVW贴图命令,可设置参数,修改贴图坐标,当贴在模型上的图不规则时,选择UVW贴图命令的Gizmo对贴图使用移动,旋转,缩放等工具进行调整,以完成贴图。红满堂虚拟场景贴好图渲染输出后的效果如图2,图3,图4,图5所示:

图2 前视图 图3 左视图

图4 后视图 图5 右视图

2.3 虚拟校园漫游的设计与实现

2.3.1 虚拟场景的背景和灯光设置

用3DS Max建立好的红满堂虚拟场景保存为zhuti.max文件,为使虚拟场景更加逼真且实现漫游和交互功能,首先在3DS Max软件中导出zhuti.wrl文件,用BS Contact 浏览器打开并保存为zhuti.x3d文件,接着用记事本打开zhuti.x3d文件,进行X3D程序编辑,并将文件保存为main.x3d,然后添加了Background节点,设置了虚拟校园的背景;添加了DirectionLight节点,为虚拟场景提供光源;同时利用Viewpoint节点和NavigationInfo视点导航信息节点,实现了在红满堂虚拟场景中进行自动漫游和交互式漫游功能。

为逼真地表现虚拟显示所描述的环境,可以通过Background节点设置背景。通过颜色插值模拟大地和天空,实现的代码如下:

上述代码描述的是这样的背景:浅灰色的大地,蓝色天空,大地和天空相接处颜色渐白。

DirectionLight是定向光源节点,即生成的光线是平行向前发射的,可模拟成太阳光为虚拟场景提供光源。利用DirectionLight节点在红满堂虚拟场景中实现了理想的光照效果,代码如下所示:

2.3.2 自动漫游的设计与实现

采用设定坐标的方式来实现自动漫游。在X3D文件中,视点是在虚拟场景中预先定义观察位置和空间朝向,浏览者可以观察到在虚拟世界中相应的场景。Viewpoint视点节点确定在X3D空间坐标系中的观察位置,指定了这个观察位置在X3D立体空间中的三维坐标、立体空间朝向及视野范围等参数。将zhuti.wrl文件用BS_Contact7.0浏览器打开,在File菜单栏下选择“Save State As”,在弹出的对话框中,将文件名命名为main,选择保存类型为.x3d。用记事本打开main.x3d文件,并在其中编辑X3D程序为使浏览者可以全方位地浏览红满堂概貌,利用视点坐标预设了浏览路径。该路径为分别从正面,左面,后面,右面及顶部总览红满堂,并在各个面近距离地浏览红满堂的风貌格局。该路径中共预设了12个不同的观测点,分别命名为view,Front,Left,Left 1,Back,Back1,Back2,Right,Right1,Top,Top1,及Top2,这12个视点展示了红满堂的最佳场景,浏览者可以在浏览器中按右键,在弹出的菜单栏中呈现这12个视点,可自由地选择所感兴趣的观察点,也可选择视点漫游选项,浏览器会自动地从当前视点切换到新的视点。

2.3.3 交互式漫游的实现

红满堂虚拟场景采用了交互式漫游方式,即利用NavigationInfo提供的替身在虚拟现实世界空间中以移动,行走等多种浏览方式实现漫游功能。浏览器创建一个浏览者的替身,该替身是不可见的,浏览器所展现的景物便是以替身的视角来观察的。为了控制浏览的状态,可通过 NavigationInfo节点进行控制,NavigationInfo称为导航节点,描述了场景观看方式和替身的物理特征。它利用该替身来进行碰撞检查,可设置浏览的速度、浏览方式、头顶灯以及浏览器替身的大小。系统添加的NavigationInfo视点导航节点与Background背景节点平行使用。浏览者可以通过鼠标或键盘任意地控制漫游位置,方向,速度,以多种方式在虚拟场景中漫游。实现该交互式漫游的部分代码如下所示:

上述代码实现的效果是,浏览者可以通过鼠标、键盘的上下左右键随意改变漫游的方向,位置,速度,在虚拟红满堂中进行交互式的漫游。

3 总结

本文对用3DS Max进行虚拟场景建模和模型的优化进行了一些研究,对基于X3D实现虚拟漫游作了初步的探索。但目前实现的虚拟校园只强调了几何建模,因此创建的红满堂虚拟场景不够逼真;另外在虚拟校园所提供的功能相对简单,只提供单用户在三维空间中的漫游。

参考文献:

[1] 张金钊,张金锐,张金镝.X3D虚拟现实设计[M].北京:电子工业出版社,2009:1-285.

[2] 胡小强.虚拟现实技术基础与应用[M].北京:邮电大学出版社,2007:18.

[3] 张金钊,张金锐,张金镝,等.X3D动画游戏设计[M].北京:中国水利水电出版社,2010:338-349.

[4] 王秀丽,朱正平,岳秋菊.构建虚拟校园漫游系统[J].自动化与仪器仪表,2010(5):1-3.

[5] 周希望.基于X3D的虚拟校园交互式漫游系统[D].北京:北京服装学院,2009:8-13

[6] 程娟,钱晋,钱钶.虚拟数字校园漫游系统中的模型构建技术研究,2010(25):1-2

[7] 丁勇.虚拟校园景观的构造及漫游系统的实现[J].电脑知识与技术,2007(14):525-526.

[8] 吴迪.虚拟校园漫游系统的研究与开发[D].天津:天津大学,2007:1-25

[9] 冯莉莉,武卫玲.基于3ds max的虚拟校园三维模型的创建[J].林业科技情报,2009(1):10-11.

[10] 马萍,孟祥增.虚拟校园漫游系统的构建[J].中国教育技术装备,2010(36):102-103

收稿日期:2011-08-15

基金项目:广东省教育科研“十一・五”规划研究项目:基于本体的《计算机导论》课程适应性学习系统相关研究(2009tjk068)

作者简介:杨磊,男,硕士,讲师,研究方向为计算机辅助教育,人机交互;曾玲,女,博士,讲师,研究方向为远程教育,教育信息化。

上一篇:基于树-轮结构的应用层组播模型研究 下一篇:基于J2EE和ArcGis的核事故评价系统