论文部分内容阅读
三维图形技术是虚拟现实、实时仿真以及交互三维设计等许多重要应用的关键技术。由于三维图形技术涉及到许多算法和专业知识,要快速的开发三维应用程序是有一定困难的,因此三维引擎(三维程序核心)的研究就有很大的意义。三维引擎封装了底层操作,提供程序开发人员一个简易清晰的程序框架,可以极大的提高应用程序开发的效率。本文通过一个三维引擎SE(Small Engine)的具体实现,研究了三维引擎设计的一些关键技术,着重研究了架构设计、场景管理和碰撞检测这些方面,并将其应用到三维场景漫游程序中,取得了较好的效果。 本文主要论述了以下几方面的内容: 1.复杂场景的可视性处理技术和碰撞检测技术是当前三维引擎研究的核心通用技术,本文对这些技术发展作了全面的综述,并对各种不同的技术方法进行分类总结,分析比较了各自的优缺点。 2.分析三维引擎的设计规划。经过对三维引擎的运用过程的分析,将三维引擎的设计规划为三个阶段:静态构造阶段、动态运行阶段和软体设计阶段。在静态构造阶段,采用BSP构造器对静态场景构造层次结构,并结合入口技术建立潜在可视集合PVS。在实时运行阶段,处理视见约束体的选取、照相机控制、碰撞检测和反弹等问题,分析了如何高效的渲染场景和执行仿真。在软体设计阶段,提出以插件为主的二次开发方式。 3.针对一些三维引擎设计层次不明、模块划分不合理以及对于系统的重构和复用考虑不足等问题,本文提出了一种四层的三维引擎系统架构。这种架构的第一层是用户接口底层;二层是引擎核心模块;三层是工具和支持模块;底层是系统模块,包含平台相关内容。 4.作为对理论成果的实践,本文以OpenGL和VisualC++6.0为开发工具实现了简单三维引擎SE。该引擎能够载入三维场景数据进行实时仿真和漫游。引擎内部封装了场景载入器、地形、天空体、摄像机、AABB碰撞检测、植物模拟等模块,并为用户提供了二次开发的API接口。