交互式校园漫游系统的设计与实现*

2011-03-17 10:32尹念东
湖北理工学院学报 2011年2期
关键词:碰撞检测虚拟环境漫游

夏 萍 尹念东,2

(1湖北工业大学机械工程学院,湖北武汉 430068;2黄石理工学院机电工程学院,湖北黄石 435003)

0 引言

虚拟场景实时漫游技术具有实时性和交互性的特点,将该技术应用于大学校园漫游系统的开发,人们便可足不出户轻松自如地浏览学校的每个角落,通过外部设备与虚拟校园进行交互操纵,如身临其境,具有良好的沉浸性和交互性。基于MultiGen Creator的校园漫游系统开发具有较高的实际价值。如何更快捷的开发出实时性好、交互性强的桌面型漫游系统是本文要探讨的内容。

本文以黄石理工学院校区为研究对象,借助3D建模软件MultiGen Creator和三维图形驱动软件OpenGVS,开发了一个桌面型的虚拟校园实时漫游系统。主要从虚拟环境的建模和图形系统的驱动两方面来进行阐述,虚拟环境建模主要包括模型设计、场景构造、纹理贴图等,图形系统驱动主要包括用户漫游、碰撞检测等。

1 虚拟环境建模

为了给用户创建一个能使其感受到身临其境、逼真的环境,必要条件之一就是创建一个逼真的虚拟场景。三维建模技术是整个 VR系统建立的基础,是所有应用中的一个关键步骤和技术,是整个虚拟现实技术的灵魂[1]。

MultiGen Creator是美国MultiGen-Paradigm公司开发的新一代实时仿真建模软件。它将多边形建模、矢量建模和地形生成集成在一个软件包中,能方便地进行矢量编辑和建模、地形表面生成,可以在满足“实时仿真”要求的前提下,高效的创建大规模虚拟场景模型数据库。目前,在航空航天、娱乐、虚拟现实、视频播放以及计算机辅助设计、建筑工程、教育培训、金融分析、电子技术和军事训练仿真等仿真及可视化领域中,MultiGen Creator得到了越来越广泛的应用[2]。

在构造场景时,根据建模的目的和要求,首先考虑概略模型,逐步细化构造精确模型[3]。根据黄石理工学院校区的布局,本文校园漫游系统模型的结构图如图 1所示,系统实现过程如图 2所示。

图1 校园漫游系统模型结构图

图2 系统实现过程

1)地形地貌建立。地形地貌模型,主要包括仿真区域地理表面的形态。可以借助MultiGen Creator提供的Terrain模块,通过原始地形数据建立场景模型。为了使创建的地形模型更加真实,通常需要参考实际地形的数字高程模型。可以提供地形原始数据信息的数据格式有很多,如USGS DEM、NIMA DTED格式,但是这些格式必须转换为Creator专用的数字高程数据DED格式。

2)纹理素材准备。为了表现一个更真实的虚拟环境,需要用数码相机采集真实物体的表面纹理照片。由数码相机拍摄的照片一般不能直接使用,需要通过专业的图形工具进行处理。本文根据数码相机拍摄的照片,通过Photoshop软件及安装RGB插件,将JPG格式的照片转换为Creator能够识别的RGB格式,再将这些纹理图像加载到纹理调板中供贴图使用。

3)物体模型建立。场景中的物体模型可分为 2D模型和 3D模型。2D模型包括草地、河流、道路等;3D模型包括建筑物、树木等,可以利用Creator提供的强大的多边形、矢量建模功能完成模型的建立。在建模的过程中要注意模型数据库的构造要尽可能简单,便于进行遍历操作,模型的多边形数量要尽可能减少。

4)模型纹理贴图。纹理贴图用于物体表面的描述,它能将复杂的物体表面真实地体现出来。借助纹理贴图,可以用较少的多边形表现复杂的几何形体,从而节省建模时间并减少系统资源的消耗。需要注意的是,纹理图片的长度和宽度应严格限制为 2的幂次方的像素单位,这样能够提高实时程序的运算速度,并可以保证贴图纹理的正常显示,否则在视景系统运行过程中图片很可能会产生倾斜或变形[4]。

5)场景集成。针对上述步骤完成的虚拟环境中的所有模型,按空间位置将其有序地集成到整个场景中,生成整个校园的虚拟环境如图3所示。在Creator中,可以通过对其他模型数据库外部引用来实现模型的集成,相当于一个指向其他模型数据库的指针。通过外部引用,可以有效降低模型数据库的规模,节省内存空间和存储空间,提高系统资源的利用率。

图3 校园场景模型图

2 基于OpenGVS的交互式校园漫游系统的实现

系统模型建造完成后,就要根据实际仿真任务的要求来对模型进行驱动,实现场景的漫游功能。本文采用OpenGVS中提供的API来完成视景系统的驱动及渲染。OpenGVS包含了一组高层次的、面向对象的 C++应用程序接口(API),它们直接架构于世界领先的三维图形引擎(包括OpenGL、Glide和Direct3D)上,它的一个功能函数调用,等同于普通的上百或上千行图形编程代码。开发者只需用少量代码就可以快速生成高质量的 3D应用软件。OpenGVS的API分为相机、通道、烟雾、帧缓冲、几何体、光源、对象、场景、工具、特效等各组资源,本文根据应用的需要调用这些资源来驱动硬件实时产生所需的图形和效果。

2.1 校园漫游系统模型导入及初始化

整个校园模型建立完成后,就要将其导入到OpenGVS中进行实时渲染和仿真驱动了。OpenGVS提供的import命令可以直接导入场景模型数据库,数据模型一旦导入后,仅需要2行代码就能将导入的对象定义实例化,然后加入到场景。例如在导入教学楼的模型文件时,模型导入命令为:

GVS使用前,系统自动地调用且仅调用一次Gv-sys-init()初始化系统,并根据用户的需要创建和分配各种资源。

2.2 系统漫游

为了使用户能通过操作鼠标或键盘在整个虚拟场景中自如的浏览,需要正确的设置用户的观察视点,使系统中的观察相机能根据用户的操作在不同方向上进行移动和转动,从而达到在场景中自由漫游的目的,系统漫游效果图如图4所示。如视点向前移动,用OpenGVS实现代码如下:

图4 系统漫游效果图

2.3 碰撞检测

在虚拟场景中漫游时,如果不加控制,虚拟人将可以穿过物体,这与实际情况不符,所以在设计物体模型时,需要给物体模型加上碰撞检测功能,这样,当虚拟人碰到物体时就无法继续向前走动,与现实情况吻合。本系统需要将视点与天空、地面以及建筑物等的边界进行碰撞检测,以防用户在观察场景的时候发生穿透地面、天空或“穿墙而过”的情况。虚拟环境漫游中的碰撞检测比较简单,将视点当做一个小球体,将照相机安装在球体中心,在球体中心处画 3条相互正交的线段,视点移动的时候,以这 3条线段与物体边界做线段检测,如果碰撞发生,则禁止视点当前的移动。碰撞检测主要代码如下:

3 结束语

本文针对黄石理工学院校区运用Multigen Creator建模技术以及基于OpenGVS的视景系统驱动及渲染技术,实现了校园漫游系统的设计。为使建模效果更佳,本文综合使用各种软件工具,最大限度地提高工作效率。系统所有模型均转换为MultiGen Creator支持的Open-Flight格式,以便仿真程序的实时管理和调度。另外对于大型场景的实时仿真,一次调入内存几乎不可能,因此,建模时可将大型场景划分为几个区域,在用户漫游系统时,动态的装载视点周围的场景,从而节省内存空间和存储空间,提高系统资源的利用率。

[1] 翟丽平.基于MultiGen的虚拟现实三维建模技术研究与实现[D].[硕士论文].重庆:重庆大学,2005

[2] 吴家铸,党岗,刘华峰,等.视景仿真技术及应用[M].西安:西安电子科技大学出版社,2001

[3] 童小念,罗铁祥,李志玲.MultiGen Creator建模技术的优化与实现[J].计算机系统应用,2008 (2):94-95

[4] 王裕俭.基于Multigen Creator和Vega的虚拟现实探讨[J].测绘信息与工程,2003,28(4):14 -16

猜你喜欢
碰撞检测虚拟环境漫游
全新预测碰撞检测系统
前庭刺激对虚拟环境三维空间定向的影响及与空间能力的相关关系
如何通过虚拟环境有效管理Python第三方库
基于BIM的铁路信号室外设备布置与碰撞检测方法
霹雳漫游堂
虚拟环境下大数据智能并行聚类方法研究
NASA漫游记
空间遥操作预测仿真快速图形碰撞检测算法
BIM技术下的某办公楼项目管线碰撞检测
论高校思想政治教育网络虚拟环境的特征