论文部分内容阅读
近些年来,作为涉及计算机图形学、多媒体和人机接口等技术的新兴技术,针对虚拟现实的研究与应用发展十分迅速。它已经广泛应用于教育、娱乐、建筑设计等多个领域。伴随着生活水平的日益提高,人们的出行也变得越来越频繁。于是,对于导航系统产品的需求也呈逐年上升趋势。由于嵌入式导航设备拥有便于携带等诸多优点,市场前景十分可观。电子地图作为导航设备的一般功能,目前基本已经产品化,但大多嵌入式导航设备使用的仍然是二维平面地图。该种电子地图虽然可以通过特定符号表达导航结果,但是并不能给用户传达一种直观的认识。嵌入式设备硬件性能的迅速提升,使得三维图形处理向嵌入式领域的拓展成为可能。三维电子地图不仅可以提供电子地图的基本地理位置信息,同时还能够在导航过程中给用户直接的视觉体验。它作为电子地图的发展方向,已经越来越被人们所关注,可以说这是虚拟现实技术在导航领域的应用。在三维电子地图的功能实现环节,关键问题之一在于图像显示时帧率的保证。在场景漫游过程中,长时间的系统响应会让用户难以忍受。在嵌入式设备上如何提高实时漫游过程中电子地图虚拟场景的生成速度,成为了研究的热门问题。本论文所描述的系统利用了Android系统平台上原生的OpenGL ES对三维模型进行绘制并在窗口中加以显示。在场景创建方面,借助了常用的建模软件3Ds Max。针对速度问题,研究了场景空间管理、LOD多分辨率模型、场景对象快速调度等多种场景加速技术,并着重对场景空间管理、LOD多分辨率模型的生成以及场景对象调度进行了改进:(1)面对三维电子地图所包含了的独立场景,本文引入并利用一种可调节八叉树的机制来应对复杂场景的划分问题。它是以网格模型顶点分布情况为依据的,这使场景在划分之后,网格模型可以尽可能地集中在为数不多的场景叶子节点中。为了提高系统启动效率,系统采用直接将场景管理对象串行化至外部存储器,以方便系统下次运行时直接使用。(2)在网格模型化简的环节,提出了利用基于三角形曲率权值并结合基于距离二次误差测度的化简方法。在新顶点位置的选取问题上,本文提出了选取条件较为苛刻的顶点可复用选取模式,并结合惩罚机制,复用原始数据顶点的同时,尽可能地维持模型的最初形态。(3)在场景调度环节,提出了基于节点Morton编码的调度机制。用户改变漫游对象位置与方向,该机制可以通过位运算快速查找场景中当前可见的节点集合,并将该集合添加到后期渲染器的渲染队列加以绘制显示。(4)在碰撞检测部分,通过并行遍历模型AABB(Axis-Aligned Bounding Boxes,轴对齐包围盒)树的方式,提高了检测的效率。本文以Android操作系统为实验平台,利用OpenGL ES库的支持,对上述场景加速算法的可行性进行了实验验证。实验证明,上述方法在能够降低内存的开销的同时减少了系统渲染三维模型时需要消耗的时间;场景调度策略在增加了调度的灵活性的同时,执行效率也有保证,总体体现为显示画面帧率的提高。论文最后对研究结果进行了简要的总结,并阐述了今后可能继续研究的方向。