1. 科学性 如今,越来越多的桌面PC采用3D图形绘制技术来获得高真实感的显示效果。诸如工业与艺术行业的设计和制造、科学研究中的建模、交通和旅游业中的虚拟漫游以及3D游戏等。
3D图形绘制技术的本质,是通过一系列算法来模拟自然界中物体在人眼中成像的过程,算法从几何建模、空间变换到计算空间中每个点的光照、阴影以及纹理等等。算法越趋近真实,物体的绘制效果也越逼真。显然,以有限性能的数字系统去还原真实的自然界是极其困难的,考虑的因素越多越细,系统的复杂度越高,实时性越低。因此,任何一款图形绘制系统都必须根据自身硬件的规模、以及场景中物体的特点,在真实性与实时性之间寻求平衡。

图2.1 移动设备图形领域的发展
过去几十年中,桌面PC及工作站一直是3D图形绘制的主流平台,图形处理系统的架构与算法也主要基于这种大面积、高存储带宽、高功耗的特性。然而,移动设备在外部存储带宽、功耗、面积等制约因素上有着数量级的劣势。但是,移动设备往往又仅需在较小的分辨率上绘制图形。较小的分辨率意味着能接受以恰当的方式忽略一些细节,并且通常不会在一个屏幕中包含太多物体。正是和桌面平台相比之下的这些劣势与优势,使面向移动设备的3D图形处理系统自成一体,绝不能靠简单地移植桌面图形处理系统来实现。
因此,研究与设计全新的体系架构、执行流程、算法、开发调试环境及方法等,都成为面向移动设备的图形处理系统的关键技术与创新难点。概括起来,本项目的科学性有如下几点:
1)基于移动平台上的图形处理器的硬件架构、算法和接口,业内都有各自的侧重和妥协,尚无较统一方案。研究分析图形系统各阶段的关键技术,评估多种实现方案间的优劣,将具有重大的科研及市场价值。
2)由于本项目涉及到了图形处理的各个方面,而国内尚无GPU生产厂家,因此对于国内涉及到3D图形显示的各个相关产业都具有重要的意义。本项目将会帮助厂家能够更好地提高3D图形处理方面的技术,致力于给消费者更好的体验,以使国产电子产品取得更大的市场份额。
3)最近几年,随着移动设备在工业、生活中的普及与发展,3D图形绘制系统也逐渐成了移动设备中的核心部件。研究发展移动设备上的3D图形处理技术具有重大意义。
2. 创新性 从算法和硬件架构两个层次进行优化,并从运算速度、芯片功耗和灵活性三方面考虑,以实现用一个较低复杂度和较低功耗的3D图形处理器对真实感图形实现硬件加速。本课题组的创新性主要体现在如下几个方面:
1)所有算法采用定点实现,并在精度允许的情况下尽量减小数据位宽,以降低电路复杂度和功耗。 2)硬件结构上含有基于Tile的光栅单元。基于Tile的绘制方法大大减小了访问外部存储器的带宽,从而降低了功耗。 3)采用FPGA进行仿真验证工作,通过FPGA的并行性和流水线,可以在一个较低的时钟频率(50MHZ)下达到比较理想的数据处理能力。而这正是图形处理器所必需的。
3. 技术方案 3D图形绘制系统的基本组成,是3D图形算法程序以及图形处理器硬件。确定算法程序及硬件结构后,便可进行各种测试分析。
3.1 3D图形算法 要能实时绘制3D场景,就需要在计算机中为场景内每一个物体进行建模,为了方便在计算机中对不同形状不同属性的物体建模,最常用的方法是用许多三角形面片构成一个多面体来拟合实际物体。对这个物体的3D图形绘制流程,大部分内容就是对这些三角形的绘制。
因此基础3D图形绘制可以分为两部分,第一部分是处理物体的顶点,第二部分是处理每一个像素,就三角形而言,即三角形的三个顶点,以及三角形中的每一个像素。
3.1.1 坐标转换 物体建模时,采用这个物体的几何坐标来表示其形状,这时所使用的坐标系称为模型坐标系,模型坐标系的原点往往取自几何物体的某个点或者附近的某点。当这个物体和其他物体一起被设定到3D场景中时,多个物体必须公用场景的原点,此时,大场景构成一个世界坐标系。而人眼从显示器去看这个大场景时,只会以特定的角度及深度看到场景的一部分的投影,即存在一个视椎体,这个投影最终出现在屏幕上时,变成平面的图像,即屏幕坐标系。
物体在这几个坐标系间转换,需要对每个几何顶点做矩阵运算。矩阵的值由坐标转换时的相关参数确定,例如,在世界坐标系中的偏移,旋转,缩放值,视椎体的深度角度,屏幕的分辨率等。
3.1.2 光照计算 正确的光照,改变物体本来的颜色明暗,并立刻产生显著的真实感。光照处理的对象是计算物体上每个点所反射出的光强大小。这个过程需要根据光源的类型、属性,物体表面的材质,物体表面法线与光源的角度,物体与光源的距离,人眼与物体的角度、距离等因素来计算最终的光照强度。
光源主要包括平行光、点光、聚光。物体对光的反应特性主要包括反射、吸收、透射。其中最主要的反射,包括环境泛光、漫反射、镜面反射。泛光主要用来体现环境中物体散射到物体并反射的光。漫反射是物体向空间各角度均匀反射的光,其强度与入射角的余弦成正比,但与视点无关。镜面反射是朝特定方向反射的光。当镜面反射光恰好进入视点时,将能看到通常所说的高光面。
3.1.3 可见性判断 3D场景绘制,是对真实情况的建模和显示,物体之间严格按照自然的遮挡关系,物体每个点在视野中的前后都需要经过判断,以确保近处的能恰当得遮挡远处的。因此需要设定专门的深度缓存,屏幕上的每个像素在绘制前都需要根据深度来判断,如果前面有不透明物体遮挡的话,该点将不会被绘制。
另一方面,对于不透明的封闭几何体,背朝视点的面不需要显示,将可以直接于早期剔除,出现在视椎体边界的三角形需要进行裁剪,形成新的三角形。
3.1.4 扫描光栅 3D图形绘制流程中,如果对物体的每个像素都做坐标变换或是光照计算等操作,将会导致庞大的计算量,因此在采用三角形拟合物体的算法中,往往仅计算三角形顶点的这些属性,三角形中的点,就又顶点的属性插值而成,由于这项工作将面向每个三角形中的每个像素,运算过程中将需要访问颜色缓存与深度缓存还有纹理贴图数据。这些导致该过程的计算量占图形处理的大部分。如何高效地插值填充三角形内的像素,将显著影响3D图形性能。
扫描光栅算法中,一系列像素是紧挨着的,因此为递推算法和Cache命中提供了天然了方便,然而如何在特定的软硬件平台下充分利用这些特性来取得高性能,需要细致研究。 |