3D游戏特别是网络在线游戏中,室外大场景渲染是一块非常重要的内容,它也是3D图形引擎的核心。它是图形学和图像处理理论最直接的应用,其涉及的技术还可以应用于其它领域,比如虚拟现实、3D GIS、数据可视化等,其重要性不容置疑。随着硬件的不断发展,行业对渲染场景的规模和真实感提出了更高的要求。
第一章 绪论
1.1概述
众所周知,近几年以电子游戏为主的计算机互动娱乐产业迅猛发展,已成为国民经济的重要组成部分。然而,由于我国的软件业起步较晚,3D游戏的核心技术被欧美、日韩等牢牢占据。如何掌握相关核心技术已成为中国电子娱乐产业的当务之急。

室外场景渲染是指对户外所有景物的真实绘制,相对于室内场景渲染,它更为复杂。在3D游戏特别是网络在线游戏中,室外大场景渲染是一块非常重要的内容,它也是3D图形引擎的核心(见图1.1)。游戏引擎中大场景的渲染技术是图形学和图像处理理论的最直接应用,其涉及的技术还可以应用于其它领域,比如虚拟现实、3D GIS、数据可视化等,其重要性不容置疑。
1.1.1室外场景渲染研究的内容和难点
真实感的室外场景除包括地表的基本几何形状绘制,还包括地表上的生物如:草、岩石、树等的渲染以及对光影效果的表现。其中的难点主要在大规模地表的数据处理和真实感的仿真。地形场景中模型图元的数量是以场景大小平方的速度增长的。一个8193×8193维数的地形,如果不考虑减低细节程度和裁剪,绘制一帧将要渲染128M个三角形,这样的三角形量在PC级别的机器上目前还是远不能实现交互式帧率的。所以,如何减少渲染地形的图元数目一度成为室外场景实时渲染的关键问题。随着硬件技术的发展,每秒钟处理上亿个三角形已不再困难。很多计算如几何变换和光栅处理都可以交给GPU去计算。在GPU数据吞吐量很大的情况下,如果~个算法在剔除渲染图元的过程中占用了太多CPU资源,出现GPU等待CPU的情况,那么即使算法在剔除多余顶点方面做得很好,总体绘制效率也不是高效的。所以在目前的显卡硬件架构下,能充分发挥CPU与GPU性能,消除局部效率瓶颈的算法才是最好的算法。
在真实感仿真上,比如对草丛的模拟,如果全部用细节三角形面片,那即使一片草地需要渲染的三角形个数也是难以想像的。目前对物体细节的表现还主要是运用纹理贴图的方式来实现。光影效果的表现涉及局部光照模型、全局光照模型、光照贴图、阴影生成等相关算法和技术。
1.1.2国内外技术发展历程和现状
在国外,3D游戏中场景渲染技术的发展大致可以分为三个阶段:
三维真实感场景渲染领域的研究在国外起步很早,很多相关算法在80—90年代就已提出,并建立了非常严密的理论体系。比如对场景渲染非常重要的多边形LOD算法,场景空间管理的BSP、四叉树、八叉树等算法,光照模型,阴影算法等。但是这些算法在资源有限的微机上受到各方面限制。当时的这些算法还仅限于在大型机和图形工作站上实现。
92年,随着ID Soft公司一款游戏Quake(雷神之锤)的发布,标志着第一款支持多边形模型、动画、粒子系统的全三维游戏在个人计算机上正式诞生。在随后发布的QuakeII、Unreal、Half Life等游戏中,场景渲染相关的LOD技术、BSP空间管理技术、光照贴图、凹凸贴图、多重贴图等相继应用在3D游戏中。随后出现的Quake、Unrea]游戏引擎,更是标志着3D游戏引擎技术走向成熟。
现阶段,随着显卡技术的发展,GPU不但支持标准的(固定的)变换与光照(T&L)管道线,还支持顶点着色(vertex shader)和像素着色(pixel shader) 方式,开发人员因此有了更大的自主空间,可以实现更真实的绘制功能。在此环境下,各大公司都着手开发新一代3D游戏引擎。其中商业引擎以QuakeIII、UnrealII最为出名。此外,软件开源社区的不断壮大,也诞生出一些比较好的开源3D引擎,比如OGRE等。运用这些引擎中的场景渲染技术能生成真实感更强的水波、天气系统、茂密的森林、流熔岩的火山等效果,场景的规模也更大,顶点动态光照技术也开始在室外场景中应用。
3D游戏的趋势是往超大规模场景,真实感表现的虚拟世界发展。大规模场景表现和游戏的虚拟仿真,自然也成为了世界上3D游戏行业非常热门和前沿的研究领域与方向。比如美国暴雪公司的“魔兽世界"和韩国NCSOFT公司的“天堂2"已经在这两个方而取得了相当的突破和进展。暴雪的“魔兽世界"按人的比例来计算,世界地图已达到35km×35km。
随着电子娱乐业的迅猛发展,国内目前从事3D引擎研究和开发的公司也多了起来。比如目标软件的GFX3D引擎,盛大公司的3D引擎,网易公司的3D引擎,锦大科技的AURORA引擎等,还有一些游戏工作组的3D引擎,比如WIN3D系列,Origo系列,TUAM9系列引擎等。但总体上来说,国内还处在使用和模仿优秀引擎的阶段,很多都是在国外优秀引擎上做一些延伸。真正严格意义上自主开发产品还几乎没有,或者说自主开发产品的质量和欧美日韩还有一定差距。这种差距在一定程度上反映在3D大场景渲染技术方面,因此深入的展开这方面的研究十分必要。
1.2课题研究的目的
本课题希望通过剖析多款成熟3D游戏、引擎,对3D引擎的核心部分一室外场景渲染技术进行探讨,并设计和实现自己的一些方案,给我国商业游戏引擎的开发带来一些启示。
1.3论文的篇章结构
本文本着注重实际应用的前提,通过剖析开源3D引擎并运用推测验证的方法,对室外场景渲染的主要技术进行了研究和实现,在很多章节也提出了自己的方案和优化方法。以下对各章的内容进行简要描述。
第一章绪论。介绍3D室外场景渲染的基本概念,介绍国内外在这一领域的研究现状,阐述课题的意义和研究内容。
第二章介绍3D图形渲染的基础知识,包括图形渲染的原理、流程以及实现图形渲染可以应用的类库OpenGL。
第三章研究室外超大场景地形网格的生成与简化算法,比较各种基于LOD思想的网格简化算法的优劣,提出基于几何多重映射(GeoMipMap)的地形绘制优化方案,并得以实现。研究也涉及到地形的空间管理算法、可见性剔除算法、超大场景的数据加载方式研究等。
第四章研究场景的真实感渲染技术。主要涉及应用多层纹理混合贴图模拟融合性地表技术,室外场景的光影效果处理技术,天空、树、草、雾等的渲染方案和技术。
第五章描述本设计实现的室外渲染软件Demo OSRender,以及程序编写过程中可用的优化技术。
第六章对全文进行总结,介绍开题论文的完成情况,客观评价优点和不足,并给出改进的方向。