论文部分内容阅读
3D实时渲染系统最基本的一个要求是:能以每秒10帧到20帧的速率播放。高的帧速率可以得到更流畅的画面,提升交互的真实感。3D场景绘制得越逼真,利用的几何元素越精细,从而引起绘制代价提高。随着造型技术的不断发展,三维模型也由原来的简单、规则变得越来越复杂、不规则。为了达到实时渲染的目的,应尽可能地减少绘制所耗费的时间,加速3D场景的绘制速度。本文主要研究加速3D场景的绘制及渲染。
为了尽量减少模型的顶点和片面数量、加快场景的渲染速度,在绘制中经常采用LOD(Level of Detail)技术。累进网格(Progressive Mesh,简称PM)是一种连续型的LOD,具有丰富的细节层次和较少占用存储空间的特点。VIPM(ViewIndependent Progressive Mesh)是累进网格应用的一种应用实现,除了具有PM的特点外,还具有数据结构简单、和硬件亲和性高的特点,已成为图形绘制引擎的重要组成部分。另外,如何能合理的、有效的利用GPU(Graphic Processing Unit)是计算机图形学领域研究的热点问题。与图形渲染有关的算法已从CPU移至GPU执行,利用GPU高速的并行数据流计算能力能够提高游戏的速度、缓解计算机系统的瓶颈。
传统的VIPM采用Hoppe的PM模型进行预处理和用固定渲染管线进行实时绘制和渲染。本文对传统的VIPM进行了两方面的改进:在预处理阶段,采用的是对Hoppe的PM改进的快速恢复算法,提出一种更为简单和硬件亲和性高的数据结构;在实时绘制渲染阶段,本文应用GPU顶点着色器的可编程性来调用显存中模型数据,节省了数据传输的时间,加快了绘制速度,同时在图形渲染上,采用了可编程渲染管线的顶点着色器和片段着色器进行模型的渲染。当场景中的VIPM模型需要同时绘制多个实例的时候,传统的VIPM算法只能够为其复制全部或者大部分VIPM数据才能表示一个实例,需消耗大量的存储空间。本文采用的简化的快速恢复递进网格,只需在原来VIPM数据基础上增加少量数据就可以表示成一个实例,大大节省了在场景中VIPM模型的多个实例所需要的存储空间,而传统的VIPM技术不具有这种能力。
Ogre游戏引擎是一个开源项目,由于其较为先进框架设计和比较完善的功能,被人们广泛的研究和应用。本文在Ogre提供的接口的基础上为其加入改进的VIPM,相比Ogre自带的VIPM,改进的VIPM具有更快的渲染速度和更少的存储空间。