论文部分内容阅读
数字游戏是计算机行业中最有价值和发展潜力的领域之一,它同时有着非常高的技术要求。它集中体现了计算机科学在图形处理、网络通信、实时运算和人工智能等方面的最新成就,它的需求反过来又推动了这几个领域的发展。由于数字游戏的广泛普及和巨大利润,从它诞生以来,资金和技术在这里就一直呈现出高速增长的趋势,这一趋势还在继续。3D游戏是数字游戏发展的趋势,它已渐渐开始成为主流。它在体现逼真现实世界的同时对技术提出了巨大的挑战。3D游戏实现的关键在于游戏引擎技术,而图形引擎是其中最重要的部分之一。
本文在分析3D游戏引擎的结构及工作流程的基础上,构建了一个完整的3D游戏图形引擎Trial3D,它以三角形为建模和处理的基本几何图元,可以接受应用广泛的QuakeII模型及WorldCraft关卡编辑器生成的关卡,渲染和管理室内和室外的动态、静态场景,支持多种类型的光源,支持Gouraud着色方式,支持透视修正纹理映射,支持碰撞检测。Trial3D主要采用了以下技术实现较高的渲染速度和帧频:对室内场景,用BSP树实现在世界坐标空间中的多边形级剔除和碰撞检测,并将其与扫描线技术结合实现无重绘;对室外场景采用分区算法,同时用OSP技术实现世界坐标空间中的物体剔除和碰撞检测;在世界空间内实现了物体及多边形的剔除、背面消除;实现了空间裁剪和像素裁剪。此外,Trial3D以1/z缓冲代替z缓冲实现正确的深度缓冲和透视纹理映射,并将该技术用到动态场景管理中,弥补了BSP树和OSP树只能针对静态场景管理的缺陷。它还将仿射纹理映射和完美透视修正纹理映射分段混合使用,实现了表面纹理真实性和效率的兼顾。
Trial3D是一个采用软件渲染方式的引擎,所有的空间变换、光照、纹理映射以及光栅化都用程序代码实现。它使用了DirectX的2D图形API和输入API。Trial3D可以用于Windows平台的3D游戏。
本文对引擎各部分的多种实现方式进行了比较和讨论,并对实际运行的效果作出了评测。在文章最后,本文对后续工作的内容,包括Mipmapping、阴影、广告牌技术、粒子系统、多重纹理和凹凸映射分别作出了探讨。