精彩专题

文档资料

南大先腾3D游戏引擎主要技术特点

南大先腾3D游戏引擎主要技术特点

2015-10-31 10:25:39

大面积的室外场景的展现是现代三维图形应用软件的重点之一,支持的场景最大面积,地形与地表的细节度,地面植被数量,光照效果,渲染性能等等都是衡量引擎技术水平的重要参数。室外场景渲染主要包含以下几个技术要点:
例如从一张1024x1024的高度图生成的地形网格数据将包含1兆顶点,2兆三角形面,如果不做任何处理的将这些几何数据一并渲染出来,是目前主流硬件所不能负担的,无法实现实时渲染的性能要求。分析现实中的视觉常理,近处的物体覆盖视野的面积较大,需要较高的细节度,远处的物体覆盖的面积较小,需要的细节度也较低。基于这个特性制作的层次细节模型,就是根据物体与视点的距离,从几何结构上对数据进行适当的抽稀,令视野范围内的景物由近至远逐渐降低几何细节度,大大缩减传输给显示硬件的数据量,大幅度提升渲染性能,从而在视觉效果和渲染性能之间谋得一个平衡点。
本引擎已经实现了对地形网格几何数据的层次细节度模型,在将数据量缩减98%以上的情况下仍可获得较为理想的视觉效果。
相对于室内场景,室外场景的几何数据量比较庞大,渲染时不可避免的要将这些几何数据从内存传输到显示硬件,即便经过了细节度抽稀,这个操作对系统总线数据带宽的消耗仍然是相当大的。分析这些几何数据的特性,发现地形网格以及一些静态景物的几何数据通常是不会发生变化的,不需要更新,如果将其直接放入显示硬件的存储器内,在渲染时由显示硬件内部直接调用,则可省去从主存到显存的传输,从而大幅度提升渲染性能。引擎利用OpenGL提供的VBO技术,将数十兆的几何数据放入显存中,总体渲染性能上获得了数倍的提升。
要进一步提升地形细节度和覆盖面积,势必要提高地形网格的分辨率,一幅4096x4096的地形网格将包含16兆顶点,32兆三角形面。考虑到光照系统的数据需求,每个顶点除了基本的顶点坐标、纹理坐标之外,还需要法向量、切向量、副法线等信息,这些浮点型数据将占据大量的内存空间,4096x4096的地形网格总数据量可达1G字节。除此之外,内存中还需要保存大量的其他模型数据以及贴图材质等,光地形数据就占用如此巨大的空间是不能容忍的,而且显示硬件的存储器一般都远远小于主存的容量,如此巨大的数据根本无法放入显存,也就无法应用VBO的优化技术。因此为了处理数据量更大的地形,在LOD模型的基础上,必须引入在后台以数据流的方式分块载入的技术,也就是根据视点位置,只载入必要的数据,释放短时间内不可见的数据,从而在较低的存储器容量下高效渲染大规模的地形数据。
此外,LOD技术已经不仅仅被用于地形数据的优化处理,场景内所有的景物也都可以遵循这个思想进行优化渲染,除了几何数据外,贴图材质也可根据视距改变尺寸,从而获得最平衡的图像效果和渲染效率。
要展现一片室外场景地形必须要能表现多种地貌特征,如沙滩、泥土、草地、岩石等等,本引擎支持为一张地形网格覆盖多个地表层次,并设以自上而下的覆盖关系,每个层次都支持应用凹凸映射贴图的即时光照处理,并通过地表层次分布图(Layer Mask Map)实现不同地表层次间的平滑过渡,从而实现完全实时的室外动态光影效果。
室外地形+点光源+HDR+VSM的效果
 
地表层次平滑过渡
 
在不做任何优化的情况下,每渲染一层地表都需要将地形网格重复渲染一遍,再与已经渲染的地表混合,这样并没有尽用显示硬件的能力,做了很多重复劳动,消耗了大量多余的像素填充操作。本引擎采用单次渲染多层地表的技术,充分利用显示硬件的贴图单元数量,一次渲染3层地表并按覆盖率混合,利用GLSL显示硬件编程最新加入的条件跳转功能,通过自上而下的覆盖率判定,在像素的级别阻止渲染已经被完全覆盖的地表层次,最大限度的避免了多余的像素填充操作,大大提高了渲染效率,这是在以往的硬件水平上无法做到的。
 
作为室外场景不可或缺的组成部分,植被渲染技术一直是三维渲染技术研究的重点之一。植被渲染的主要难点在于覆盖面积大,几何数据量巨大。一般的室外场景覆盖地表的树木动辄数千,杂草等更是以万计,视野范围内要渲染的植被模型总平面数可达百万以上,以主流显示硬件的几何运算能力是无法应付的。除了运用VBO等技术对植被渲染作硬件上的优化处理外,还必须在软件上作层次细节度的优化。对于体积较大的植被,如树木,大型灌木等,近处的采用最高精度的模型,给予最佳的光照和阴影处理,并附加随风摆动的动态效果,以获得最佳的视觉效果;随着与视点距离的增加,逐渐简化其模型细节度,远处的植被可以直接用一张始终面向视点的平面贴图代替(告示板Billboard),并可忽略光照和阴影;对于杂草之类的小体积植被可以不生成阴影,在超过一定距离后就可以不再渲染。
虽然在渲染时可以进行LOD细节度控制,但是为每个植被实体保存几何数据还是需要大量的内存空间,数千树木、数万杂草的几何数据量甚至比地形网格的几何数据量还大,这样就无法应用VBO等硬件优化技术。分析植被分布的特点,虽然覆盖面积很大,但大部分是相同种类的植被,同种植被完全可以使用相同的模型,通常只须制作有限的几种不同种类的植被模型,然后用它们复制出很多实例,这些实例使用相同的原始数据,只是在位置、朝向和尺寸上有所不同,大量的复制模型构成了丰富多彩的植被体系。由于位置、朝向和尺寸可以由一个变换矩阵来描述,因此我们只需要保存一份原始模型的几何数据,不同的实例只需要用一个变换矩阵来表示。这样实际保存的数据只是一份原始数据,占用的内存空间很有限,VBO等硬件优化技术就可以得以应用,而且使用相同的数据,通过变换矩阵来获得不同的形态,这样的渲染省去了大量的几何数据传输的消耗,在现代显示硬件编程技术的支持下能够实现图像效果和渲染性能都十分理想的大规模植被渲染。以上所述的技术已经独立实现,即将集成进入引擎。
[上一页][1] [2] [3] [4] [5]