3D游戏引擎中的室外大场景渲染技术研究与实现
关键字: 室外场景渲染 LOD技术 GeoMipMap 场景管理 多纹理混合
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