论文部分内容阅读
三维图形技术是虚拟现实、实时仿真以及交互三维设计等许多重要应用的关键技术。由于三维图形技术涉及到许多算法和专业知识,要快速的开发三维应用程序是有一定困难的,因此三维图形引擎技术的研究就有很大的意义。三维图形引擎封装了底层图形开发包,提供给程序开发人员一个简易清晰的程序框架,可以极大的提高应用程序开发的效率。本文通过一个三维图形引擎Gingko的具体设计与实现,研究了三维图形引擎设计的一些关键技术,着重研究了架构设计、场景管理、资源管理等方面,并基于Gingko引擎的平台研究实现了光影特效。本文主要论述了以下几方面的内容:首先,本文在国内外相关研究发展现状的基础上,借鉴已有的研究成果,针对课题需求研究了三维图形引擎的架构技术,完成了三维图形引擎的功能设计和架构设计。分析了目前主流开源三维图形引擎的特点,根据研究的需要提出了引擎结构的划分。将引擎划分为三维图形引擎核心和扩展应用层。其次,对Gingko引擎中的场景管理模块、资源管理模块以及扩展层中的主要模块进行了具体设计和实现。场景管理模块的主要目的是为了可见性判断和碰撞检测模块提供支持。在场景管理模块的设计中,要解决室外场景和室内场景的管理。Gingk引擎最终构建出场景树,使得可视性问题和碰撞检测问题都最终归结为场景树的遍历。资源管理模块负责管理在图形引擎构架基础上开发的图形软件系统中所用到的所有与图形相关的资源的载入、解析、移除和销毁。具体可分为配置文件,模型文件、材质和纹理等。扩展应用层基于三维图形引擎核心实现,向用户提供高级功能,主要介绍了图形用户界面,脚本系统和读写XML文件模块。最后,研究了高动态范围光照(High Dynamic Range,HDR)技术和软阴影算法。在Gingko引擎的框架下,以插件形式设计实现了HDR特效模块和阴影特效模块。其中,基于可编程图形硬件实现了HDR特效。同时,分析了主要的软阴影算法,在前人工作的基础上提出了一种改进的算法,提高了渲染效果并满足实时性的要求。