虚拟校园漫游开发中的关键技术研究
2013-04-29姬洪强吕敬敏
姬洪强 吕敬敏
摘要:虚拟校园漫游可以让浏览者体验亲身游览校园,体会校园文化的感觉,对学校推广宣传、招生等起到重要的作用,越来越多的学校开始开发虚拟校园漫游系统。文中以3Ds Max和Virtools为开发工具为例,介绍虚拟校园漫游开发过程中建模技术、场景优化技术、材质烘焙技术和碰撞检测技术等关键技术。
关键词:虚拟现实;虚拟校园漫游;3Ds Max;Virtools
中图分类号:TP391 文献标识码:A 文章编号:1009-3044(2013)08-1799-02
虚拟校园漫游在电脑上真实的再现了校园环境及校园文化,浏览者不用亲自到学校就可以形象直观体验亲身游览校园的感觉,起到对校园面貌和校园文化有直观的体验和认识,对设施设备清楚了解的作用。虚拟校园漫游的开发有很多种工具和平台,最常用的一种方法是使用3Ds Max进行建模、材质等前期处理,然后导出到虚拟现实软件中进行后期的交互处理,后期工具本文选择的是Virtools。下面就使用这两款工具开发虚拟校园漫游过程中设计到的关键技术进行介绍。
1 建模技术
虚拟校园漫游中的场景模型主要涉及教学楼、宿舍楼、餐厅等建筑物以及操场、道路、树木等,是一个大场景,建模时需要对整个校园的这个大场景进行区块划分,比如宿舍楼区一块,教学楼区一块等,各个区块制作完成后导入到一个场景中,将极大的降低建模的难度。
很多时候,在进行场景建模时,开发者并没有校园的第一手资料,比如建筑平面图、详细的测量参数等,可以使用谷歌地图测量的数据作为建模参考,同时使用截图软件截下谷歌航拍图,在3Ds Max透视图中建一个面片并将截下的航拍图赋给该面片,作为建模时的布局参考。建筑物主体建模使用二维样条线勾勒出轮廓,然后挤出建筑物的高度,附属物用基本几何体变形制作,细节部分如门窗等用贴图来表现。路面、人工湖建模基本同建筑物建模方法一样。花草树木是场景中最多的装饰物,花草树木的逼真程度影响到场景的真实感,可以通过交叉的面片来实现,这种方法极大的降低了模型面片数,并配上良好的照片素材和透明贴图来实现模型效果。绿化带使用基本几何体中的Box,给侧面和顶面附上不同的材质表现。
2 场景优化技术
逼真的模型是增强漫游真实性的保证,但是如果校园场景中模型的总面数太多会多占用系统资源,影响系统运行的速度,所以需要在不降低模型真实性的前提下对场景中的模型进行优化处理,以下是几种常用的优化方法。
2.1 减少模型面数和删除多余面
对于整个漫游场景,模型的总面数多少决定了场景在电脑上运行速度的快慢。在使用3Ds Max软件进行场景建模前,先对场景中所有模型的面数做一下估算,然后为复杂程度不同的模型分配不同的面数。在建模过程中,减少几何体的分段数能有效减少模型的面数。多余面是对视点不可见的部分,模型的背面或模型被其它模型遮挡住的面以及模型自身内部的面都是多余面。三维模型建立后应删除这些多余面,从而降低场景的总面数,做到场景最优化。
2.2 使用纹理映射模拟模型的细节
纹理映射是真实感模型制作的一种方法,它可以方便的制作出使用建模技术无法表现细节的极具真实感的模型。简单来说,就是将纹理空间中的纹理像素映射到屏幕空间中的像素,给简单平坦的模型表面增加细节的过程。对于模型上众多的细节部分,用纹理映射的方法代替模型制作,能够大大降低模型的面数和复杂度,减少了运算量,提高系统速度。
2.3使用关联复制
关联复制(Instance)是3Ds Max复制对象时的一种方法,使用关联复制的方式复制模型,可以在增加模型数量的同时不另外占用系统资源。只要改变任何一个关联复制的模型时,其它的复制模型也做相应的改变。在漫游场景中,相同的模型只需要定义一次,就可以重复复制使用,并且可以降低生成的文档的大小。
2.4 贴图(Texture)素材处理
现在数码相机的分辨率一般都比较高,所拍的照片会很大,直接使用这样素材时,会导致场景文件过大,因此需要在不影响贴图效果的前提下对素材进行处理。可以将素材制成.JPG或.PNG格式的文件,并适当缩小图片的大小等。贴图的长宽宜采用2的N方,最好不要超过2048,即2的11次方,但贴图不一定是正方形,长方形也可以,如:128*256、1024*128。贴图的大小如果不是2的N方,那么图形将会多耗用显存,读取时也会稍微变慢。场景中需要重点表现的部分需要制作成大贴图,如建筑的屋顶,大地面等。建筑中的门窗、柱子、牌匾,地形中的道路、台阶、草地、栏杆制作成小贴图。场景中的围墙、道路、人工湖沿等需要处理成为无缝贴图。贴图制作时尽可能充满(0,1)空间,避免浪费。
2.5 使用Optimize修改器
模型完成后可以使用Optimize修改器对模型面数进行优化。Optimize修改器将小于某一指定值的相邻平面进行合并,在不影响模型逼真性的前提下,大大减少了场景中的面数。因此,在建模时,在保证模型逼真性的前提下应尽量使用直线、直面。使用曲线进行放样时尽量减少路径的步幅数和截面的分段数,以降低输出后文件的大小。
3 贴图烘焙技术
贴图烘焙也叫Render To Texture,是一种把光照和阴影信息渲染成贴图的方式,,然后把这个烘焙后的贴图再贴回到场景中的模型上,光照和阴影信息变成了贴图,在渲染时不需要CPU再去费时计算灯光和复杂的阴影信息,从而加快了渲染速度,节省CPU资源。
常用的烘焙形式有CompleteMap和LightingMap两种。LightingMap烘焙方式烘焙生成的贴图清晰,但光感不很清晰,且只支持3Ds Max软件默认的材质,要表现模型表面丰富的效果只能用其它软件修改,适用于大面积的墙体,室内外大的地面等。CompleteMap形式烘焙生成的贴图光感好,支持多数的复合材质,但是要表现好的效果需要设置的尺寸较大,否则会很模糊,适用需要重点表现的物体。
4 碰撞检测技术
在虚拟校园漫游中,对场景中活动的模型进行碰撞检测是很重要的。模型在运动过程中会发生相互碰撞,如果不检测模型之间的相互碰撞,就会出现模型穿过模型的现象。比如虚拟角色穿墙而过或者穿树而过,结果是严重破坏了漫游的真实感。碰撞检测要解决两个问题:一是碰撞在什么时间什么地方发生,二是碰撞后会做出什么样的反应。
Virtools中常见的碰撞检测方式有:盒盒相交、球球相交、盒面相交、面面相交。盒也称边界盒,是物体局部坐标轴X、Y、Z三个轴向上的最大值构成的一个长方体。对物体做碰撞检测时,首先检测边界盒是否相交,如不想交,则说明两个物体未发生碰撞,进一步对两个物体进行检测,直到检测到边界盒相交,说明发生碰撞,随之计算碰撞后的反应。球也称边界球,是物体局部坐标轴X、Y、Z三个轴向上的最大值构成的一个球体。两个不规则的物体之间发生碰撞时可以采用球球相交的形式来进行检测。球球相交首先动态拾取物体,然后为每个物体创建边界球,获取两个球心之间的距离,同时获取各自边界球的半径,当检测碰撞时判断两个球心之间的距离是否大于两个边界球半径之和,若大于则两物体为发生碰撞,如小于或等于则发生碰撞。盒面相交是判断一个物体的边界盒与两一个物体的面之间是否相交。面面相交是判断一个物体的面是否与另一个物体的面之间是否相交。
虚拟漫游中对物体的碰撞检测精度要求不是很高宜采用球球相交或盒盒相交的检测方式,这种形式既能达到预期效果,又不影响速度。
5 结束语
使用3Ds Max前期设计Virtools后期交互处理,操作简便,使得开发周期大大缩短。在开发过程中只有合理的运用这些技术,才能使得最终的场景逼真,沉浸感增强而且系统的交互速度也较快。
参考文献:
[1] 姬洪强.《现代教育技术》虚拟实验室的设计与实现[D].金华:浙江师范大学,2009.
[2] 都美江.基于Vega Prime的虚拟校园仿真系统的研究与实现[D].沈阳:东北大学,2009.
[3] 雷娜娜.数字西安三维景观系统的构建[D].荆州:长江大学,2009.
[4] 况洋,江婕.桌面型虚拟现实系统场景优化问题研究[J].科技广场,2011(5):43-44.
[5] 余潇.基于Virtools游戏引擎的虚拟校园漫游的研究及应用[J].数字技术与应用,2012(10):96.