基于X3D的虚拟校园漫游系统设计与实现
图10 系统的总体结构图
3.4 系统实现的软硬件环境
开发本系统的硬件环境为:
处理器:Intel(R) Core(TM) i5 M430 @ 2.27GHz 双核 内存:2GBx2 双通道
显卡:ATI Mobility Radeon HD 5145 (512 MB) 图片拍摄设备:SONY DSC-T300,Ipad4
开发本系统的软件环境为:
操作系统:Microsoft Windows 7 旗舰版 Service Pack 1 (build 7601), 64-bit 开发工具:X3D-Edit,Notepad++ 运行软件:BS_Contact 8.0
图像处理软件:Photoshop CS5,可牛影像
第四章 虚拟校园场景设计与实现
虚拟校园场景的建设是整个虚拟现实漫游系统的基础,虚拟校园场景的建设可以分成分[2]
三步:
第一步,想要建立一个真实的虚拟校园,就必须要有校园中各建筑物各环境物体的分布图和具体的平面图,如果没有这些图形,也必须要知道学校的整体占地面积和每一个物体的长度、宽度、高度以及在校园中所处的坐标位置等这些基本的数据。还必须要掌握学校各部分的大概高度,最底点最高点等地形信息。这些信息可通过实地考察以及结合电子地图(如百度地图)、虚拟地球软件(如谷歌地球)获得。 第二步,对校园内各单个实体对象分别单独建模,虚拟校园中的场景模型分为两类:一类是以场为基础,在空间上连续分布的景观对象,如地形、天空等;另一类是以离散实体为特征,以独立的个体而存在的地物对象,如建筑物、树木、路灯等。根据具体场景模型的类型和复杂情况采取适当的建模方法,最终得到了校园中各个实体的场景文件(*.x3d)。
21
基于X3D的虚拟校园漫游系统设计与实现
第三步,各个单独的实体场景构建好了以后,再把这些场景整合成完整的虚拟校园场景,本系统中深圳大学的完整场景文件是 school.x3d。
通过上述三个步骤,即可完成虚拟校园漫游系统的建设。
4.1 信息的收集与处理
本文使用的原始数据主要有办公楼、教学楼、图书馆、宿舍楼、体育馆等建筑的平面图 和通过数码相机拍得的照片。为保证虚拟校园系统的真实显示和空间分析的正确进行,本体统采用的数据采集方案如下:
1.对于各对象实体的在虚拟校园中的位置,先确定一个原点,如学校的正门,然后通过电子地图(如百度地图)上的测距功能,测量对象实体到原点的距离。
2.对于部分建筑物的高度,从总平面图和收集到的数据中不能获取的情况,自行测量出其中一层的高度,然后根据楼层数计算出总的高度。此外可以利用虚拟地球软件(如谷歌地球)进行辅助性的测量。
3.对于纹理数据主要采用自己拍摄的方式。由于受拍摄时的天气及周围环境的影响, 拍出的照片通常不能直接使用,需要在亮度、色调上做出调校。另一方面,拍照取景时,可能会受拍摄角度限制、行人或树木掺杂等因素的影响,照片常常需要进行修复、剪裁等后期处理。处理用到的方法如下[19]-[20]:
(1)去除杂景处理
在数码相机拍摄时,应尽量争取获得纯景物的图片,但在实际操作中难以避免会出现 人或车辆等的遮挡,这时就需要对照片进行杂景处理。在具体去除杂景处理时,借助的是 Photoshop 软件平台,通常采用选区拷贝方法和仿制图章工具方法等,使能获得所需的图 片。
(2)调整色调
受拍摄数码照片的时间、角度、光线等因素影响,很难保证每张照片都能保持有一致的色调。因此需要使用 Photoshop 对图片在亮度、对比度、色彩平衡等方面进行调校。通常使用到的是“亮度/对比度”与”色彩平衡”对话框命令。
(3)拉伸变形处理
在拍摄高大的建筑物时,最理想的选择站在离建筑物较远的视觉来进行拍摄,因为这样可以得到视角较好的照片。但是在实际操作中,会由于拍摄位置的限制,便只能得到由透视角度成像的照片,这样的照片就不能够直接用来制作贴图,而需要进行变形处理,将其调整为正视的角度。在 Photoshop 中使用“编辑 变形 自由变换”命令对需拉伸变形的图片进行处理。
(4)透明贴图
普通的贴图文件都是矩形的,这对处理非规则模型的贴图并不适用,因此网络上通常使
22
基于X3D的虚拟校园漫游系统设计与实现
用透明贴图形式来弥补这一缺陷,在制造花丛、树木、雕像等不规则模型时,如果直接造三维模型来模仿这些景物,既不神似又花功夫,利用透明贴图的这一优点,可达到逼真建模的效果。
4.2 校园中单个实体的场景设计
有了足够的数据信息及纹理图片以后,就可以按照校园中各实体的类型进行单个场景的建设了。鉴于虚拟校园系统组成比较复杂,本文选取几个有代表性的几个场景进行详细叙述。
4.2.1 地形及地面的设计
地形模型在虚拟环境中分量很大,它对漫游的真实性和系统运行的实时性有重要影响。地形对象模型是虚拟校园模型系统的基础,是布置地物对象模型的依据。地形对象三维模型的建立是开发虚拟校园必不可少的一个关键环节,对其它虚拟系统同样如此。
三维真实感地形的绘制一直是国内外图形学领域关注的热点,其可视化程度高、实用方便、可实时生成的优点已成为图形工作者的共识。三维地形模型也称为数字地面模型(DigitalTerrain Model,DTM),它是对地面特征的一种数字表达,是虚拟地理环境研究中的重要组成部分[21]。
如果在可视化过程中对地形的生成只是视觉上的要求,而非真实世界的再现,则可以采用模拟地形。由于本漫游系统是以深圳大学为对象进行开发的,其校园地形数据不太复杂,故采用模拟地形法,即平面模拟地形。这种方法实现起来比较简单,且对系统资源的消耗要小得多。
对于平面地形,可以使用X3D的Box节点,输入地形长宽高数据,并用ImageTexture节点进行贴图。对于不同纹理的地形,如绿地、土地等,可叠加在整个校园地面上。对于曲折的、不方便用Box节点设计的地形,如道路,可使用Extrusion节点。对于丘陵、山脉等起伏不平的地形,可以使用ElevationGrid节点进行创建。
图11是深圳大学地面设计层次图。
图11 地面设计层次结构
绿化带 丘陵 地面 道路 图12是深圳大学地面设计的运行效果图。
23
基于X3D的虚拟校园漫游系统设计与实现
图12 地面设计运行效果图
4.2.2 天空的设计
为了增加三维虚拟校园场景的真实感,需要为校园场景增加蓝天自云效果的天空。根据用户所需要的真实程度,可以采用多种方法来实现[21]:
1.用一种接近天空的淡蓝色来作为背景。
在X3D的Background节点中,有两个域值控制天空的颜色,分别是skyColor和 skyAngle。skyColor域指定立体空间背景天空的颜色,该域值由一系列红、绿、蓝颜色组合而成。skyAngle域指定空间背景上需要着色的位置的天空角。X3D浏览器就是在这些空间角所指位置进行着色的。第一个天空颜色着色于天空背景的正上方,第二个天空颜色着色于第一个天空角所指定的位置,第三个天空颜色着色于第二个天空角所指定的位置,以此类推。这样使天空角之间的颜色慢慢过渡,这就形成了颜色梯度,使得天空看起来更为真实。
2.天空盒方法
所谓天空盒就是用一矩形方盒作为天空的远景贴图的载体。首先生成一个足够大的立方体,通过在立方体盒子的5个不同面上贴上表现天气效果的不同的天空纹理来达到逼真的模拟效果。用于天空背景的图片有特殊要求,这些图片必须满足以下几个条件:
(1)图形尺寸必须为2的N次方。
(2)顶图的四边必须与前后左右图的上边相连。 (3)前后左右的四幅图必须首尾相连。 3.球形方法
球形方法绘制的天空较天空盒优点更多,雾化效果可以绘制得更加均匀。球形模型实际就是一个半球面,一个圆顶形天空可以认为是一个球面的一半,在一个球面上进行纹理映射是比较复杂的,采用不同的映射方式会出现不同的问题。例如,如果采用平面映射的方式,将在连接处出现纹理拉伸现象。如果采用球面映射,最大的问题是在球面的极点产生纹理的聚集现象。
在虚拟校园漫游系统中,从真实感和渲染效率两个方面出发,本系统选用了方法一生成
24
基于X3D的虚拟校园漫游系统设计与实现
天空。
4.2.3 建筑物的设计
1. 建筑物几何模型的建立
建筑物是虚拟现实中的主要景观,在虚拟校园系统中,三维建筑物的表示和建模是最为重要的内容。由于建筑物数目众多,为了较好地实现对楼群建的建模任务,可以根据实际情况确定其设计原则[21]:
(1)由于本系统虚拟的是一个实际存在的校园,为了取得较真实的效果,现实存在的建筑在虚拟环境中尽量都进行建模。
(2)根据校内建筑的外观与结构对建筑进行分类,确定构造模型,对外观和结构相同的建筑采用同一个构造模型。
(3)对于较复杂的模型采用新拆分,使之简单化,然后再进行建模。目前对建筑物的建模一般采用整体法,即画一个立方体或长方体,然后再对表面进行纹理映射,构造建筑物模型。
2.建筑物的纹理映射
建筑物并不是一个空白的面,一般的建筑物上都有窗户,贴有各式各样的瓷砖。目前对于建筑物窗户的建模一般采用线段来构造,及描绘出窗口的大概框架,然后进行渲染。由于校内的建筑物特别多,如果要一一进行建模,会花费大量的时间,而且影响了系统的运行速度。所以,在本系统中对房屋表面的窗户和花纹都采用纹理映射的方法进行建模。其实现方法是:将校内每个建筑各个面的纹理数据进行采集、加工、转换成纹理映射要求的图像格式,之后在画面绘制的过程中,分别对每个面进行纹理映射。
下面将介绍深圳大学一些标志性建筑的构建方法。 1. 图书馆北馆
图书馆北馆场景设计由图书馆设计和布局图书馆周围环境设计组成,创建逼真的虚拟现实三维立体场景,包括建筑物的设计、绿化带场景设计及人行道设计等。采用模块化,组件化设计思想,层次清晰、结构合理的X3D图书馆场景设计。图书馆建筑场景设计层次结构如图13所示。
· 楼梯底座 25
图书馆 周边环境 图书馆北馆建筑场景设计 建筑主体 楼体附件 绿化草坪 树木设计 道路设计