图形管线中基于瓦片的精度的光栅化的制作方法

文档序号:6611012阅读:250来源:国知局
专利名称:图形管线中基于瓦片的精度的光栅化的制作方法
技术领域
本发明大体上涉及硬件加速图形计算机系统。
技术背景计算机性能的最近进展已使得图形系统能够通过使用个人计算机、家用视频游戏计 算机、手持装置等来提供更逼真的图形图像。在此类图形系统中,执行多个程序以向系 统屏幕"渲染"或绘制图形图元。"图形图元"是图形图片的基本组成部分,例如顶点、 多边形等。经渲染的图像由这些图形图元的组合形成。可利用许多程序来执行3-D图形 渲染。已研发出多种专用图形处理单元(例如,GPU等)以优化执行图形渲染程序所需的 计算。GPU经配置以进行高速操作且通常并入有一个或一个以上渲染管线。每一管线包 括多个基于硬件的功能单元,所述功能单元经优化以高速执行图形指令/数据,其中将指 令/数据馈入到管线的前端中,且在管线的后端处出现计算结果。GPU的基于硬件的功能 单元、高速缓冲存储器、固件等经优化以对低级图形图元(例如,包含"点"、"线"、"三 角形"等)进行操作且产生经实时渲染的3-D图像。使用光栅显示技术来产生经实时渲染的3-D图像。光栅显示技术广泛用于计算机图 形系统中,且一般指代组成图像的多个像素的栅格受图形图元影响的机制。对于每个图 元,典型的光栅化系统一般逐像素步进,且按照图元的贡献来确定是否要"渲染"给定 像素或将其写入到帧缓冲器或像素映射中。这又确定如何将数据写入代表每个像素的显 示缓冲器。己研发出各种遍历算法和各种光栅化方法,用于以覆盖组成给定3-D场景的图元内 所有像素的方式从基于图形图元的描述计算为基于像素的描述(例如,对于每个图元进 行逐像素光栅化)。典型的解决方案涉及以单向方式通过系统地逐行步进越过场景(例如,从左到右) 来产生像素,且访问所述场景的每一像素。按照组成所述场景的各个图元的贡献来确定 每个像素的覆盖度。其它传统的解决方案涉及利用每像素评估技术来精密评估组成显示 器的像素中的每一者,且确定哪些像素由哪些图元覆盖。一旦图元被光栅化为其组成像素,便接着在光栅化级随后的管线级中寻址这些像素,
其中执行渲染操作。 一般来说,这些渲染操作根据组成场景的图元的覆盖度来向显示器 的像素中的每一者分配颜色。还根据分配给图元的纹理映射信息、光照信息等来确定每 像素的颜色。然而,现有技术3-D渲染结构在符合处理当今应用的日益复杂的3-D场景的能力方 面存在问题。计算机屏幕现通常具有1920X1200个像素或更大的屏幕分辨率。现有技术 光栅化解决方案越来越成为3-D渲染过程的瓶颈。由于显示屏幕的尺寸不可动摇地增加 到(例如)1920个像素宽或更大,因而现有技术的用于光栅化的逐行步进和每像素评估 解决方案越来越需要更大的资源来处理计算负荷。为了处理此类大屏幕尺寸,GPU的光 栅化资源需要在每时钟周期基础上处理较大数目的每图元评估操作(例如,多边形边缘 等式),且需要每图元评估操作处理相应较大数目的像素。因此,典型的现有技术GPU 不具有足够的光栅化资源来符合大屏幕尺寸且同时维持可接受的实时3-D渲染性能。增加3-D渲染性能的传统方法(例如,增加时钟速度)具有例如增加功率消耗和增 加由GPU集成电路小芯片产生的热量的负面影响。用于增加性能的其它方法(例如并入 较大数目的并行执行单元来并行执行GPU操作)具有例如增加集成电路小芯片尺寸、减 少GPU制造过程的产率、增加功率需求等负面影响。因此,需要一种光栅化过程,其能够符合图形应用需求的要求并提供增加的性能, 而不会招致例如功率消耗增加和/或制作产率降低的不利结果。 发明内容本发明实施例提供一种用于光栅化过程的方法和系统,其能够符合图形应用需求的 要求并提供增加的性能,而不会招致例如功率消耗增加和/或制作产率降低的不利结果。在一个实施例中,本发明实施为一种用于在图形处理器的光栅级中进行基于瓦片的 精度的光栅化的方法。所述方法包括接收图形图元以在图形处理器的光栅级中进行光栅 化,以及以第一级别精度来光栅化图形图元以产生多个像素瓦片。接着以第二级别精度 来光栅化所述瓦片,以产生覆盖的像素。接着输出所述覆盖的像素,以在图形处理器的 随后级中进行渲染操作。第一级别精度通常高于第二级别精度,以使得用于以第一级别 精度寻址所述多个瓦片的整数值大于用于以第二级别精度寻址多个像素的整数值。以此方式,可根据需要处理的各个像素或样品的数目来调节所需精度。举例来说, 在一个实施例中,以第一级别精度来光栅化图形图元,以寻址组成屏幕图像的多个像素。 相应地,在一个实施例中,以第二级别精度来光栅化图形图元,以寻址组成所述多个瓦 片中的每一者的多个像素。通过这种做法,本发明实施例有效利用GPU的光栅化资源来在每时钟周期基础上寻
址每图元评估操作(例如,多边形边缘等式),以有效符合大屏幕尺寸且同时维持可接受的实时3-D渲染性能。


在附式中以实例方式而非以限制方式来说明本发明,其中相同参考标号指代类 似元件。图1展示根据本发明一个实施例的计算机系统。图2展示根据本发明一个实施例描绘位于屏幕上用于光栅化的多边形201的图。 图3展示根据本发明一个实施例的三角形和沿着光栅化线产生的覆盖瓦片。 图4展示根据本发明一个实施例描绘示范性瓦片的尺度的图。图5展示根据本发明一个实施例在光栅级内实施的基于瓦片的精度的光栅化过程的图。图6展示根据本发明实施例描绘包括扩展位的示范性整数操作数的图。 图7展示根据本发明一个实施例的GPU的内部组件的图。
具体实施方式
现将详细参看本发明的优选实施例,附图中说明了所述优选实施例的实例。尽管将 结合优选实施例来描述本发明,但将了解不希望其将本发明限于这些实施例。相反,希 望本发明涵盖可包含在如所附权利要求书所界定的本发明精神和范围内的替代物、修改 和等效物。此外,在本发明实施例的以下详细描述中,陈述多个特定细节以提供对本发 明的彻底理解。然而,所属领域的技术人员将认识到可在不存在这些特定细节的情况下 实践本发明。在其它例子中,未详细描述众所周知的方法、程序、组件和电路以免不必 要地混淆本发明实施例的方面。符号和术语从计算机存储器内对数据位所进行的操作的程序、步骤、逻辑块、处理和其他符号 表示的角度来展现以下详细描述的某些部分。这些描述和表示是数据处理领域的技术人 员用以将其作品实质最有效地传达给所属领域的其他技术人员的方式。程序、计算机执 行步骤、逻辑块、处理等在此处且一般被认为是导致希望结果的自相容歩骤或指令序列。 所述步骤是需要对物理量进行物理操作的步骤。通常(尽管不必要),这些量采用能在计算 机系统中存储、传递、组合、比较和以其他方式操纵的电信号或磁信号的形式。已多次 证实将这些信号称为位、值、元素、符号、字符、项、数字或类似形式是便利的,主要 是因为常见用法的缘故。然而,应记住所有这些和类似术语与适当物理量相关联且仅仅是应用于这些量的方
便标记。除非从以下论述中容易看出另有特别规定,否则理解为在本发明中,使用例如 "处理"或"存取"或"执行"或"存储"或"渲染"等术语的论述始终指代计算机系 统(例如图1的计算机系统100)或类似电子计算装置的行为和处理,其操纵表示为计 算机系统的寄存器和存储器内的物理(电子)量的数据并将其变换为类似地表示为计算 机系统存储器或寄存器或其它此类信息存储、传输或显示装置内的物理量的其它数据。 计算机系统平台图1展示根据本发明的一个实施例的计算机系统100。计算机系统100描绘根据本 发明实施例的基本计算机系统的组件,其为特定的基于硬件和基于软件的功能性提供执 行平台。 一般来说,计算机系统100包含至少一个CPU 101、系统存储器115和至少一 个图形处理器单元(GPU) 110。所述CPU 101可经由桥接器组件/存储器控制器(未图 示)耦合到系统存储器115,或可经由在CPU 101内部的存储器控制器(未图示)直接 耦合到系统存储器115。 GPU 110耦合到显示器112。 一个或一个以上额外GPU可视情 况耦合到系统100,以进一步增加其计算能力。GPU 110耦合到CPU 101和系统存储器 115。系统100可实施为(例如)桌上型计算机系统或服务器计算机系统,其具有耦合到 专用图形渲染GPU 110的强大的通用CPU 101。在此一实施例中,可包括添加外围总线、 专门图形存储器、IO装置等的组件。类似地,系统100可实施为手持装置(例如,手机 等)或置顶视频游戏控制台装置(例如可从Microsoft Corporation of Redmond, Washington 得至U的Xbox⑧或可从Sony Computer Entertainment Corporation of Tokyo, Japan亍导至!j的 PIayStation3 )。应理解,GPU 110可实施为离散组件、经设计以经由连接器(例如,AGP插槽、 PCI-Express插槽等)耦合到计算机系统100的离散图形卡、离散集成电路小芯片(例如, 直接安装在母板上)或作为包括在计算机系统芯片组组件(未图示)的集成电路小芯片 内的集成GPU。另外,可针对GPU110包括本地图形存储器114以用于高带宽图形数据存储。本发明实施例图2展示根据本发明的一个实施例描绘位于屏幕250上用于光栅化的多边形201的 图200。图2描绘根据本发明实施例执行的光栅化过程。在所述光栅化过程期间,多边形(在 此情况下为三角形201)的覆盖范围在具有一个或一个以上瓦片的个别部分上方分解为 其各个贡献部分(例如,每瓦片32X32个像素、每瓦片16X16个像素、每瓦片8X8个 像素等)。对于覆盖较大数目像素的非常大的三角形,界定三角形且因此界定覆盖哪些像 素的边缘等式可用完较大数目的位来表示其整数操作数。这是由于这样的事实需要以 足够的精度界定三角形边缘等式,以便允许确定哪些像素由三角形(或其它类型图形图 元)覆盖》图2描绘比较大的屏幕250,在此情况下其横越8k个像素(例如,8192个像素)。 使用此类大屏幕250,需要较大数目的位来界定并寻址组成屏幕250的像素,如由示范 性线202描绘,其中光栅化器在屏幕250的宽度上从左到右步进越过一行瓦片。图3展示根据本发明一个实施例的三角形201和沿着光栅化线202产生的覆盖瓦片。 如上所述,三角形边缘等式的较大整数操作数用于评估较大三角形(例如,三角形201), 并确定哪些瓦片具有覆盖。三角形边缘等式的较大整数操作数用于为所述三角形切割出 具有至少某些覆盖的那些瓦片。沿着光栅化线202说明这些瓦片。根据本发明实施例, 一且确定了这些瓦片,便可使用较小整数操作数来评估每一所述瓦片内有哪些像素具有 覆盖。此属性利用这样的事实步进越过瓦片所需的位数目比步进越过大屏幕(例如, 屏幕250)所需的位数目小得多。图4展示根据本发明的一个实施例描绘示范性瓦片400的尺度的图。如上所述,组 成瓦片400的像素的数目比组成大屏幕(例如,屏幕250)的像素的数目小得多。举例 来说,在一个实施例中,瓦片400具有32像素的宽度和32像素的高度。在另一实施例 中,瓦片400具有16像素的宽度和16像素的高度。对于图2的全屏幕图像250,三角形边缘等式需要能够寻址相对较大数目的像素(例 如,4096或8192个像素)。这意味着三角形边缘等式操作数使用13或14个位(例如, 13位x维度操作数和13位y维度操作数)。在后续光栅化操作中(例如,在细光栅化期 间),计算仅需要寻址各个瓦片(例如瓦片400 (例如,16X16个像素))内所所发生的 事物。对于这些情形,在每个维度上仅寻址16个像素是足够的。因而,举例来说,所述 算法仅需要提供三或四位整数像素地址而不是13或14位。因此,对于这些稍后光栅化 操作,通过消除最高有效10位(举例来说),给定光栅化器级可节省大量硅面积而不会 损失有用精度。举例来说,在一个实施方案中,光栅化过程被划分为粗光栅化和细光栅 化。在细光栅化期间,当在32X32瓦片内工作时,精度从13或14位调节到5位。节省的硅面积提供许多优点。举例来说,节省的硅面积可用于其它用途,例如较大 的存储器超高速缓存、更强大的ALU等。类似地,较小整数操作数降低了存储操作数所 需的硅面积。节省的硅面积还会改进整个GPU制作过程的产率,且降低所得GPU小芯 片的功率消耗。因此,举例来说,在光栅化器与大屏幕250 —起作用的情况下,为了执行初始光栅
化,光栅化器需要能够寻址屏幕250的8K范围内的各个像素,从而导致较大整数操作数 (例如,14、 15位或更多)。 一旦切割出各个瓦片,光栅化器便仅需要在组成瓦片400 的所述数目的像素内工作。因此,在瓦片400为32个像素宽的情况下,光栅化器仅需要 在宽度维度上寻址32个像素,这仅需要5个位。类似地,在瓦片为8个像素宽的情况下, 光栅化器级仅需要在每一维度上寻址8个像素,这仅需要每维度3个位。换句话说, 一旦光栅化过程进行到瓦片级别,精度的整数级别便可降低为足以覆盖 界定所述瓦片的像素范围。对于执行多级别光栅化的光栅化级,随着瓦片尺寸进一步沿 着光栅化管线向下而变小,重复此过程。精度相应地降低以匹配组成所述瓦片的像素数 目乃至组成所述瓦片的样品数目。图5展示根据本发明一个实施例在光栅级500内实施的基于瓦片的精度的光栅化过 程的图。如图5描绘,当光栅级以屏幕相关的精度尺度(例如,图2的屏幕250)进行 操作时,三角形边缘等式操作数具有第一整数精度级别,展示为整数精度级别501。当 光栅级(例如)在组成各个瓦片(例如,图4的瓦片400)的像素内以第二级别瓦片相 关的精度进行操作时,三角形边缘等式操作数向下调节到第二精度级别,从而产生较小 的整数操作数,展示为整数精度级别502。因此,当光栅级(例如)在瓦片400的子部 分(例如,在瓦片400被进一步划分成较小子瓦片的情况下)内或用各个像素的样品以 第三级别瓦片相关的精度进行操作时,三角形边缘等式操作数向下调节到第三精度级别, 从而产生较小的整数操作数,展示为整数精度级别503。以此方式,每当降低瓦片尺寸时,可相应地降低寻址组成所述瓦片的像素所需的精 度。在计算样品时类似地降低精度。图6展示根据本发明实施例描绘包括扩展位601的示范性整数操作数的图600。图6 描绘扩展位601的可选使用的使用,所述扩展位601可添加为操作数的最高有效位,以 指示三角形(例如,三角形201)的边缘位于瓦片边界以外的那些情况。举例来说,在 一个实施例中,扩展位601将由光栅级的硬件用以指示覆盖范围延伸超过瓦片边界,就 好像边缘在无限远处一样。图7展示根据本发明一个实施例的GPU 110的内部组件的图。如图7所示,GPU 110 包括设置引擎701和光栅化器单元702。在本实施例中,本发明的功能性在光栅化器单 元702的硬件和软件内实施。 一般来说,光栅化器单元702通过将从设置引擎701接收 到的基于顶点的描述转换为基于边缘描述的描述来起作用。光栅化器单元702随后将这 些边缘描述转换为组成实际像素描述的填充区域(例如,像素区域、像素子样品等)。随 后将像素描述传递到GPU 110内的其它单元以供进一步处理和渲染。在本实施例中,光栅化器单元702包括粗光栅组件703和细光栅组件704。粗光栅 组件703在快速搜索瓦片栅格以识别所关注的瓦片(例如,由图元覆盖的瓦片)时实施 第一少许精度瓦片光栅化过程(如上所述)。 一旦识别到所关注的瓦片群组,细光栅组件 704单独识别由图元覆盖的像素。因此,在此类实施例中,粗光栅组件703通过使用瓦 片来快速搜索像素栅格,且细光栅组件704使用由粗光栅组件703产生的信息,并通过 单独识别由图元覆盖的像素来实施第二级别精度细粒度光栅化。仍参看图7, CPU110进一步包括高速缓冲存储器721,其通过针对最频繁使用的图 形渲染数据实施高速低等待时间存储来起作用。此类数据通常包含纹理信息、顶点信息、 颜色等。高速缓冲存储器721展示为耦合到本地图形存储器114。高速缓冲存储器721 利用一个或一个以上高速缓冲维持机制来维持与本地图形存储器114的一致性。箭头740 展示GPU 110与系统存储器(例如,图1所示的存储器115)之间的通信路径。在一个实施例中,包含光栅单元702的硬件经优化以在每时钟基础上进行操作。举 例来说,为了提供高处理量且因此维持高渲染帧速率,粗光栅组件703和细光栅组件704 包含经设计以在每时钟周期基础上实施第一级别精度光栅化和第二级别精度光栅化的硬 件。光栅化器单元702可经实施以使得在粗光栅组件703中实施第一级别光栅化,所述 粗光栅组件703在单个时钟周期内"切割出"覆盖给定图元的瓦片。随后,在细光栅组 件704中实施具有第二级别精度的光栅化,所述细光栅组件704在单个时钟周期中切割 出瓦片的覆盖的像素。因此,举例来说,可每时钟处理64个像素的硬件将使用64像素 占地面积(例如,四个每一者具有16个像素的瓦片),而可每时钟处理128个像素的硬 件将使用128个像素占地面积(例如,八个每一者具有16个像素的瓦片、四个每一者具 有32个像素的瓦片等)。出于说明和描述目的展现了对本发明特定实施例的以上描述。不希望它们为详尽的 或将本发明限于所揭示的精确形式,且能够根据以上教示作出多种修改和改变。选择并 描述所述实施例是为了最好地解释本发明原理和其实际应用,因而使得所属领域的技术 人员能够最好地利用本发明和具有适合于所希望的特定使用的各种修改的各种实施例。 希望本发明范围由所附权利要求书和其等效物界定。
权利要求
1.一种在图形处理器的光栅级中用于基于瓦片的精度的光栅化的方法,其包含接收图形图元以在图形处理器的光栅级中进行光栅化;以第一级别精度来光栅化所述图形图元以产生多个像素瓦片;以及以第二级别精度来光栅化所述瓦片以产生覆盖的像素;以及输出所述覆盖的像素以在所述图形处理器的随后级中进行渲染操作。
2. 根据权利要求l所述的方法,其中所述第一级别精度高于所述第二级别精度。
3. 根据权利要求2所述的方法,其中用于以所述第一级别精度寻址所述多个瓦片的整 数值大于用于以所述第二级别精度寻址多个像素的整数值。
4. 根据权利要求l所述的方法,其中以所述第一级别精度来光栅化所述图形图元,以 寻址组成屏幕图像的多个像素。
5. 根据权利要求l所述的方法,其中以所述第二级别精度来光栅化所述图形图元,以 寻址组成所述多个瓦片中的每一者的多个像素。
6. 根据权利要求5所述的方法,其中将所述多个瓦片中的每一者划分为至少两个部分, 且其中以第三级别精度来光栅化所述至少两个部分以寻址组成每个部分的多个像 素。
7. 根据权利要求1所述的方法,其中在每时钟周期基础上实施所述具有所述第一级别 精度的光栅化。
8. 根据权利要求1所述的方法,其中在每时钟周期基础上实施所述具有所述第二级别 精度的光栅化。
9. 根据权利要求1所述的方法,其中在粗光栅单元中实施具有所述第一级别精度的光 栅化,且在细光栅单元中实施具有所述第二级别精度的光栅化。
10. —种GPU (图形处理器单元),其包含设置单元,其用于产生多边形描述;光栅化器单元,其耦合到所述设置单元,用于光栅化所述多边形描述; 粗光栅单元,其位于所述光栅化器单元内,用于以第一级别精度来光栅化图形图元,以产生多个像素瓦片;以及细光栅单元,其位于所述光栅化器单元内,用于以第二级别精度来光栅化所述图形图元以产生覆盖的像素,以在所述图形处理器的随后级中进行渲染操作。
11. 根据权利要求9所述的GPU,其中所述第一级别精度高于所述第二级别精度。
12. 根据权利要求10所述的GPU,其中用于以所述第一级别精度寻址所述多个瓦片的 整数值大于用于以所述第二级别精度寻址多个像素的整数值。
13. 根据权利要求10所述的GPU,其中以所述第一级别精度来光栅化所述图形图元, 以寻址组成屏幕图像的多个像素。
14. 根据权利要求10所述的GPU,其中以所述第二级别精度来光栅化所述图形图元, 以寻址组成所述多个瓦片中的每一者的多个像素。
15. 根据权利要求14所述的GPU,其中将所述多个瓦片中的每一者划分为至少两个部 分,且其中以第三级别精度来光栅化所述至少两个部分以寻址组成每个部分的多个 像素。
16. 根据权利要求10所述的GPU,其中在每时钟周期基础上实施所述具有所述第一级 别精度的光栅化。
17. 根据权利要求10所述的GPU,其中在每时钟周期基础上实施所述具有所述第二级 别精度的光栅化。
18. —种计算机系统,其包含-系统存储器;中央处理器单元,其耦合到所述系统存储器;以及 图形处理器单元,其以通信方式耦合到所述中央处理器单元; 设置单元,其位于所述图形处理器单元内,用于产生多边形描述; 光栅化器单元,其位于所述图形处理器单元内且耦合到所述设置单元,用于光栅化所述多边形描述;以及粗光栅组件,其位于所述光栅单元内,其中所述粗光栅化器组件经配置以接收 图形图元以在图形处理器的光栅级中进行光栅化;以第一级别精度来光栅化所述图 形图元以产生多个像素瓦片及以第二级别精度来光栅化所述瓦片以产生覆盖的像 素;且其中输出所述覆盖的像素以在所述图形处理器的随后级中进行渲染操作。
19. 根据权利要求18所述的计算机系统,其中所述第一级别精度高于所述第二级别精 度。
20. 根据权利要求19所述的计算机系统,其中用于以所述第一级别精度寻址所述多个 瓦片的整数值大于用于以所述第二级别精度寻址多个像素的整数值。
全文摘要
本发明提供一种在图形处理器的光栅级中用于基于瓦片的精度的光栅化的方法。所述方法包括接收图形图元以在图形处理器的光栅级中进行光栅化;及以第一级别精度来光栅化所述图形图元以产生多个像素瓦片。接着以第二级别精度来光栅化所述瓦片,以产生覆盖的像素。接着输出所述覆盖的像素,以在所述图形处理器的随后级中进行渲染操作。
文档编号G06T15/00GK101131768SQ20071013004
公开日2008年2月27日 申请日期2007年7月25日 优先权日2006年7月26日
发明者富兰克林·C·克罗, 布莱兹·A·维尼翁 申请人:辉达公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1