0引言随着虚拟现实技术的不断发展和完善,在社会生活各个领域得到了极其广泛的应用,其中一个重要的应用就是大学校园。
三维虚拟校园是展示校容校貌和校园信息化建设的重要组成部分,以三维虚拟现实场景呈现校园风光,并在此基础上增加了漫游功能,更加具体表现了虚拟校园真实性和沉浸性等特点,可以极大地方便学生、促进招生和网络办公。
在国内许多高校都建设了自己的虚拟校园,如浙江大学、清华大学、南京大学、北京航空大学、华中科技大学等[1]。
目前,在虚拟校园的开发中,主要采用的方法有Virtools[2]、VRML [3-4]、VEGA [5-6]等。
基于这些技术开发的虚拟校园漫游系统具有交互性和沉浸感,能够让参观者获得身临其境的感觉。
但对于实际应用来说,光有漫游功能是不够的,对于虚拟校园场景中出现的建筑和艺术雕像,应该能为用户提供更加详细的介绍。
本文基于VRP 虚拟现实平台,实现了虚拟校园。
不仅能让用户实现三维漫游,还介绍了如何联接数据库,使得用户在漫游中查询到选择物体的详细信息,更好地满足用户的需求。
并以山东信息职业技术学院为例,详细介绍了系统的构建过程。
1开发步骤山东信息职业技术学院虚拟校园系统开发方法可以分为如图一所示的六个步骤,分别是基础数据采集、虚拟校园场景建模、模型优化、导入VRP 、连接数据库和系统生成。
图一系统开发流程图2前期工作根据山东信息职业技术学院提供的信息,校园主要的建筑有旧教学楼、办公楼、新教学楼和餐厅等。
然后,根据建筑搜集其建筑面积、高度以及用途等各种相关信息。
再结合校园建筑平面图,我们能够完整地获得整个校园建筑物、绿地、公路等地物的地理坐标及平面轮廓形状,勾勒出整个校园场景。
对校园进行实地考察,用数码相机采集反映学校真实景观的建筑物、道路、树木等纹理图。
为了减少数据量,贴图用山东信息职业技术学院虚拟校园漫游系统Virtual Campus Roaming System of Shandong Information Vocational and Technical College王琰萍1,2邵丽丽1陈勇1Wang Yanping Shao Lili Chen Yong(1.中国海洋大学信息学院,山东青岛266100;2.山东信息职业技术学院,山东青岛266100)(1.College of Information Science and Engineering,Ocean University of China,Shandong Qingdao 266100;2.Shandong Information Vocational and Technical College,Shandong Qingdao 266100)摘要:本文以山东信息职业技术学院校园为例,将虚拟现实技术应用于校园。
介绍了虚拟校园的构建过程,借助VRP 生成三维虚拟校园漫游系统,并实现了连接数据库功能,使得用户在漫游中查询到选择物体的详细信息,为用户提供更加详细的介绍。
关键词:虚拟现实;虚拟校园;信息查询中图分类号:TP391文献标识码:A文章编号:1671-4792-(2009)3-0121-04Abstract :This paper introduces the process of constructing a virtual campus and based on VRP ,realized Virtual Campus Roaming System of Shandong Information Vocational and Technical College .In this demo ,we attached a database to the virtual object ,which allows users getting detailed information of objects when roam-ing ,and provides users introduction with more details .Keywords :Virtual Reality ;Virtual Campus ;Information Query 山东信息职业技术学院虚拟校园漫游系统121科技广场2009.3JPG格式保存。
根据采集的照片可以分析出物体的立体轮廓形状,为下一步的三维建模提供基础。
由于受建筑物的高度、拍摄距离及相机自身成像特点的影响,拍摄的像片往往比例失调,须对每张图片使用图形处理软件Photoshop进行各种处理[7]。
例如,用自由变换把比例失调的图片拉正,裁剪周围其他的场景,去除图片中的杂景等。
如图二所示,左图为采集的原始照片,右图为处理后的图片,即我们所需要的纹理图。
图二采集照片与纹理图在此需要注意以下几点:道路、瓦片、树木等一般采用公共贴图,可重复利用,无需单独采样;处理后的纹理像素大小应处理成2的N次幂以利于纹理的正确显示[8];一些贴图需要处理成透明纹理,如树木、窗户等。
3三维场景建模三维场景的建模在所有工作环节中工作量最大,需要投入大量的时间。
我们采用的建模软件是目前使用最广泛的三维建模软件3Ds Max。
3.1环境建模根据采集的原始照片构建出建筑物的形状。
用3Ds Max 创建一个长方体box,因为需要对box的点、线、面进行操作,我们选用多边形建模方式进行建模。
然后根据建筑物的形状,运用修改器Modify面板中的Extrude、clone、cut等操作对box进行修改,获得准确的形状模型。
为了提高最终实时绘制的速度及质量,建模过程中应该减少显示的点、线、面的数量,删去多余的点、线、面[9]。
办公楼模型如图三所示:图三办公楼的模型3.2纹理贴图完成形状建模后,还需要为建模后的形状模型的每一部分分配材质和贴图,这时需要用到前期工作中处理过的图片。
对模型的各个面单独贴纹理,把纹理附于对象后,还需要UVW坐标。
对于材质中的二维贴图,物体就必须具有贴图坐标,这个坐标就是确定二维的贴图以何种方式映射在物体上,它不同于场景中的XYZ坐标系,而是使用UV或UVW 坐标系。
办公楼贴完纹理之后的效果图如图四所示:图四经过贴图的办公楼把建筑模型构造好之后,我们需要把创建好的模型导入到虚拟仿真平台VRP中,另外还需要对贴图进行一些特殊的处理。
在建模过程中所创建的模型使用的材质都是“多维/子对象”材质,所谓“多维/子对象”材质是指将单独的对象赋予多种材质。
而很多虚拟现实、游戏平台(如VRP)不支持多维子材质,所以我们必须将物体的面按不同材质一个个的分离出来,然后再将分离出来的对象的多维材质转化为标准材质。
3.3环境优化主要的建筑物模型创建完成后,我们还需要对其他环境进行完善、美化,比如设计花坛、种植树木、建设道路等。
一个场景中需要种植许多树木,若采用建立立体树将占用很大的空间,很大程度上影响显示效果。
我们采用建立平面树,前期工作已经把树木的纹理处理为透明纹理,在进行贴图时同样要设置为透明贴图,对于一棵树建立两个平面,并让两平面交叉在一起,形成一棵视觉上立体的树。
环境优化之后的效果图如图五所示:图五环境优化后的场景效果图1224模型导出为了使在3Ds Max 中创建的模型能导出到虚拟平台VRPlatform 中,需要安装相应的插件。
选择VRP 导出插件中导出命令项,然后在导出为VRP 文件对话框中可以看到所有错误提示,导出的面数、定点数、贴图数、模型总数及相机个数等相关信息,最后将模型调入到VRP 编辑器,这样就成功地导出了模型,如图六所示。
图六从3Ds Max 导出模型示意图5连接数据库校园模型建立好以后,要把它放置于特定的交互的3D 环境中,通过设定虚拟漫游者的运动方式、速度、初始位置、观察的环境等参数条件,使观察者能从任意角度对虚拟环境中的对象进行观察,并与之交互,从而产生身临其境的感觉[1]。
为了增强能与周围环境交互的效果,我们添加了数据库功能,实现当在场景中漫游时,选择任意建筑物可从数据库中查找数据,将建筑物的名称、建筑面积、高度及用途等各种属性实时显示在屏幕上。
其实现的流程为:①捕获用户点击的对象名称;②根据对象名称在数据库中查找其对应的信息;③将信息在屏幕上输出。
因为数据量较小,我们选择使用Access 数据库,使用VRP 连接数据库。
首先,要编写dll 文件,实现必要的函数接口://初始化数据bool g_open_db();//关闭数据库void g_close_db();//设置数据标注的脚本支持,对应于一条脚本函数//修改数据标注值,info/name,$GETVALUE(楼5)void g_get_value(const char *valuename,const char *id ,char *value);然后,就可以使用VRP 中的脚本编辑器编写相应的脚本函数,并进行初始化设置。
数据库中的信息可以随时更新,用户在交互式漫游时,可以设置为距离触发或点击触发。
对于虚拟校园场景中出现的建筑和艺术雕像,可以为用户提供更加详细的介绍。
6虚拟漫游系统生成为了能在创建的虚拟环境中漫游,并与周围环境进行交互,产生身临其境的感觉,需要在VRP 中给模型设置碰撞检测,添加天空盒、太阳光晕、背景音乐使整个场景显得更逼真,创建行走、飞行、动画相机使观察者可以在场景中自由漫游。
在三维场景中漫游,就要以一定的视角来浏览整个场景,所以我们需要创建相应的相机。
创建行走相机,设置相机的水平角度、相机高度等属性,将相机放到场景中适当的位置。
创建飞行相机来游览整个VR 场景的概貌,创建动画相机,设置一条自动漫游路径。
在现实中的物体是无法穿越的。
为了模拟真实场景,需要为模型设置物理碰撞,对不能穿越的对象进行碰撞检测。
制作室外场景时,常会用天空盒来表现周围环境。
选择一个合适的天空盒样式应用当前场景中,旋转天空盒角度,让天空盒中的光照方向与场景投影方向一致。
为了让VR 场景更生动,还可以为VR 场景添加一个太阳光晕,使整个场景显得更逼真。
选择一个太阳光晕样式,应用当前场景中,调整太阳光晕的角度与高度,让太阳光晕的光照方向与场景投影方向一致。
添加背景音乐增强场景沉浸性,选择一个相应的音乐作为背景音乐。
这时需要用到脚本编辑器,在系统函数类型中创建初始化函数,添加背景音乐脚本,插入语句,并设置背景音乐相关属性。
在数据库数据显示时,需要将数据显示在二维面板上。
二维界面图片通过Photoshop 创建,通过脚本来控制二维面板的显示与隐藏。
保存所有设置后,即可编译成一个可独立执行的.exe 文件,生成虚拟漫游系统,如图七、图八所示。
图七虚拟漫游系统效果图(一)山东信息职业技术学院虚拟校园漫游系统123科技广场2009.3图八虚拟漫游系统效果图(二)7结束语山东信息职业技术学院是公办省属普通高等学校,通过三维虚拟校园可以比较直观地了解校园的各个区域,使浏览者对校园环境产生身临其境的感觉,其中的教学楼、办公楼、食堂、道路及绿化地带和种植的植物,都栩栩如生地呈现在我们的眼前,不但可以直观了解校园,还有助于提高学院的形象,对大学的全国范围招生有极大的帮助。