1.1 可见性裁减技术
可见性裁减处理从某个视点来说场景中可见部分的确定问题,即只将潜在的可见部分送入绘制管道,从而提高场景实时绘制的性能。如图 1所示,根据场景中不可见面片的种类,可以将可见性裁减分为视见体裁减和遮挡剔除。视见体裁减主要裁减位于视见体外部的多边形,简单场景的视见体裁减可以基于 OpenGL等图形绘制软件包在基本图元一级进行裁减,而对复杂场景的视见体裁减一般根据预处理阶段构造的层次数据结构对场景空间数据进行合理组织,可以在场景对象一级进行裁减,因此使用 CPU进行视见体裁减的时间开销更低。遮挡剔除是对于当前视点剔除掉位于视见体内且被其前面的遮 挡物(Occluder)遮挡住的对象。另外,可以将裁减那些背向视点的多边形的背面裁减理解为一种最简单的遮挡剔除。综合国内外在这方面的研究情况,可见性裁减算法主要分为预处理与实时处理,保守型与近似型,点与区域型,图像空间与物体空间,还有单独遮挡物与遮挡物融合5种类型 。
1.2 LOD技术
LOD绘制技术是指对网格面片表示的模型,在一定误差的精度范围内,根据视点与物体的距离或物体的重要性等因素决定删除点、边、面,从而简化所绘制场景的复杂度,加快图形的绘制速度。因此这里采用LOD 技术充分利用了人眼的视觉特性,在模型的精细程度与绘制的速度方面取一个折衷,既要保证一定的绘制质量,以满足良好的视觉效果,又不造成用户漫游的不适感。地形这一特殊的复杂模型一般采用多分辨率建模技术绘制。所谓多分辩绘制算法可以认为是LOD技术的延伸,即算法实时地根据视点的变化而简化地形绘制的一种方法。由于校园地形较为平坦,地貌特征并不复杂。基于以上情况,如图2所示,本系统参照卫星地图构建了华北电力大学保定二校区地形的平面模型,用它来替代地形模型。
2 虚拟漫游系统流程设计与开发
在虚拟校园漫游系统开发过程中,对现有的建筑及其它场景采用实地拍摄,实地观察,使用几何建模的方法来进行场景搭建。工作流程如图3所示。
2.1 Virtools开发工具
本系统构建使用的V~tools是一套集创作应用程序、交互引擎和渲染引擎和发布模块于一身的3D虚拟现实开发系统。该系统除了提供给用户方便易用的拖拉模块式构建方法,还为程序员提供了编程SDK、脚本编程语言以及对图形编程语言ceTx的支持,以便于程序员开发更适合实际需求的高效解决方案 。
2.2 三维虚拟场景数据库的构建与优化
逼真的三维场景模型是构建高逼真虚拟漫游系统的关键,本系统的场景构造主要按照实地考察结果进行。建模同时还要实现场景细节表现与图形负荷之间的高效平衡。为了使构造的漫游系统达到实时绘制要求,系统采用了场景数据库的层次组织结构、纹理映射、实例化、LOD层次细节模型、可见性裁剪等技术方法对场景进行优化。
实体建筑是虚拟场景中的主体部分,也是最重要的场景内容。对实体建筑进行建模与优化的一般步骤是:
(1)获得建模数据。建筑外观与几何形状等要求准确的数据,在没有建筑图纸的情况下主要根据实地拍摄的照片使用3DS MAX进行 建模。
(2)确定模型的层次结构,由于系统使用的建模工具不具备像Multigen建模工具的树状层次结构来管理场景模型”,所以在模型建好后,通过导入到 Virtools中进行层次设置。如先按主体分组,再在每个主体中分墙体、门、窗等。直到底层分解到基本图元结构。
(3)去除冗余多边形。描述实体模型表面的数据经常存在冗余现象,这里的冗余多边形主要是指在实体外部观察模型时不可见的部分。例如,楼体的底面、内墙面及楼层之间的连接面等。由于场景浏览时它们处于不可见的位置,去除它们并不影响实体的视觉效果,而消除这些冗余多边形则可以在很大程度上降低场景的复杂度。这里只考了建模时模型的可见性裁剪,对校园进行实时漫游时需根据Virtools的SDK实现非基本 图元层次的视见体裁减和 遮挡剔除 ,这样可充分利用GPU的性能实时绘制复杂校园的室外场景。