杨巍+沈浩+刘荣+郑单单
摘要:以湖南工业大学河西新校区环境为研究对象,通过使用3DS MAX等软件建立模型,并采用VC++.Net结合Direct3D对虚拟场景渲染与漫游,实现了具有较强交互功能的三维虚拟校园漫游系统,并对整个系统进行优化。
关键词:虚拟校园;Direct3D;数字校园
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2016)27-0241-02
1 引言
美国科学家Jaron Lanier在20世纪80年代首次提出了虚拟现实概念,虚拟现实(Virtual Reality,简称VR)是综合图形技术、多媒体技术、立体显示技术等多学科技术为一体,是极富挑战性的前沿交叉技术。目前,它在军事航天,文教娱乐,工业设计,文化旅游等领域都有着极其广泛的应用[1]。虚拟校园交互式漫游系统是基于对真实校园的三维景观进行仿真的虚拟校园,使用先进的虚拟现实技术将真实的校园环境在互联网上进行立体的重现,用户在感官上如同身临其境一般[2] ,对学校的资源管理、环境规划等诸多方面起了非常重要的作用。
2 系统功能的设计
系统主要分成如下几个模块:三维引擎处理模块、层级模块、音效模块,智能导航模块、季节变换模块、碰撞检测模块、渲染模块、漫游模式切换模块、公告牌模块、粒子系统模块、物体模型层模块、摄像机模块、实时监控模块等。
三维引擎模块是整个系统的主干,通过该模块控制其他的模块,并且其他模块的操作最终所展现出来的形式是依托于三维引擎模块。通过层级模块进行分层处理,该模块负责音效,渲染,模型等模块的更新与管理。季节变换与渲染模块所包含的其他下级模块。系统的功能模块参见图1所示。
引擎模块负责整个系统的事件处理、更新和渲染。层级模块是当用户点击进入漫游时,层级发生变化,引擎将会调用渲染方法。该模块采用面向对象的多态性将整个系统划分层次,使程序结构清晰。智能导航模块提供可供用户选择的路线的起点与终点,生成两点之间的最短路线,以摄像机为第一视角对路线沿途的校园风光漫游。季节变换模块则用于季节的选择,展示不同季节所对应的校园风光。碰撞检测模块主要检测摄像机是否与建筑模型发生碰撞。
3 系统实现
3.1系统开发流程
首先按照实际校园的建筑尺寸一定的比例进行虚拟建模,将模型和天空等虚拟物体进行整体拼接构造一个虚拟场景。然后是建立漫游系统,即通过Direct3D的摄像机的视角变换完成对三维虚拟场景漫游控制的设计。最后为了进一步提高虚拟校园系统的真实感,添加各种交互功能,包括雪花效果等。系统开发流程框架如图2所示。
3.2场景模型的建立
三维建筑物的表示和建模是虚拟校园中最为重要的内容。对建筑物模型的构建是通过3DMAX软件建立三维实体模型,然后再对相应的实体几何模型进行纹理映射。包装设计艺术楼的建模如图3所示:
对于天空的设计,采用天空盒方案来实现,同时为了更加达到逼真的效果,增加了天空云层漂浮移动的效果。使用图4的各个面的纹理图作为天空盒的各个面的材质纹理,实现了将虚拟校园置身于大自然的背景之中的效果。
另外,由于虚拟校园中的树木和雕塑的数量都比较多,在不明显影响虚拟校园场景的视觉效果的情况下,采用基于Direct3D的公告板(Billboard)技术,也称广告牌技术[3]。
3.3 多种交互漫游模式的实现
虚拟校园用户使用外部输入设备达到可以随意控制漫游的速度、方向及视角等,则称为交互漫游模式。本系统则实现了手动模式、全景模式、实物模式和智能寻路模式这四种漫游模式。
1)手动模式:通过键盘的W键、S键、A键、D键、左右方向键来分别控制摄像机的前进、后退、左移、右移以及摄像机左右调整的角度。
2)全景模式:该模式是将摄像机上升至一定的高度,能够以俯视的角度鸟瞰整个虚拟校园。在该模式同样可以使用手动模式下键盘的相应的按键来控制摄像机相应的视角变换。虚拟校园系统全景模式如图5所示。
3)实物模式:该模式是通过交互界面选择相应的实物,然后摄像机会绕该模型360度旋转一周,可以近距离的看到实物模型的细节。虚拟校园系统的实物漫游模式参见图6所示。
上述各种模式是通过摄像机视图变换达到不同的效果。整个模式切换是由引擎相机与引擎键盘监听实现的,其核心代码如下:
void Campus::ShiwuModel(IDirect3DDevice9* Device,float Radio_offset,…)
{
D3DXMATRIX roa12,matWorld;
D3DXMatrixRotationY(&roa12, (-0.5f)*D3DX_PI/180.0f);
Device->SetTransform(D3DTS_WORLD,&matWorld);
CampusEngine_Camera->SetPos(hero->pos);
CampusEngine_Camera->SetLook(hero->look);
CampusEngine_Camera->Set3DCamera(Device, (float)rect.right,…);
Render(Device);
}
4)智能寻路模式的实现
在虚拟校园系统中实现了智能导航功能,该功能使用了A*(A STAT)算法[4]取得两点之间的最短路径。当用户选择起点和终点后,系统会根据A*算法自动生成器两点之间的最短路径,然后通过摄像机自动移动,并且在转折点自动旋转方向漫游沿途风光。其核心代码如下所示:
void SearchPath(Node startNode, Node endNode)
{
lock(graph);
Init(startNode, endNode);
int posNF = closed.IndexOf(Succes, SameNode);
int PosNO = open.IndexOf(Succes, SameNode);
if(PosNF > 0) { close.remove(PosNF); }
open.add(PosNF);}
5)季节变换的实现
使用粒子系统模拟的现象有火焰、爆炸、云、雾、雪、尘、流星尾迹或者像发光轨迹这样的抽象视觉效果等等[5]。虚拟校园系统的季节变换模块中通过使用公告板技术与粒子系统技术,实现了植物的纹理切换以及雪花飘落,冬天雪花的效果。
4 结语与展望
通过不断的研究与探索,充分利用多种创作工具的优点,以湖南工业大学为对象的三维虚拟校园交互式漫游系统的建设研究初步完成预期的需求目标。本文重点研究了虚拟校园系统的虚拟场景的建模技术,以及研究虚拟校园多种漫游方式的算法,并详细介绍了系统漫游中交互功能的实现。通过实践与测试,三维虚拟校园交互式漫游系统能够较为流畅地运行。可以以多种漫游模式对整个校园游览,并且能够较为良好的与虚拟校园系统进行交互。
参考文献:
[1] 王弘智,王哲.虚拟现实技术发展与应用[J].福建电脑,2016,32(2):99-100.
[2] 邹沐昌,代玉仁,单伟.虚拟校园中的场景建模与浏览的若干问题的研究[J].工程图学报(增刊),2001,40(8)563-564.
[3] 谭云兰,贾金元,张晨,等.3D树木建模技术研究与进展[J].中国图像图形学报,2013,18(11):1520-1528.
[4] 王豫峰,韩璞,王华彬.基于A*算法的游戏寻径的设计与实现[J].电脑知识与技术,2011,7(30):7450-7451.
[5] 潘军,刘长江,张诗楠.虚拟环境中实时天空场景的生成研究[J].信息技术与信息化,2014,20(11):63-64.