减小的位计数多边形光栅化的制作方法

文档序号:8287937阅读:359来源:国知局
减小的位计数多边形光栅化的制作方法
【专利说明】
【背景技术】
[0001]通常,三维计算机图形领域涉及在二维空间(诸如显示屏)中产生并显示三维对象。这是通过将有关三维对象的信息转换为显示的位图来完成的。该所谓的渲染处理是多部分处理,通过该处理,计算机将图像的应用模型描述转换为屏幕图像。基本想法是:三维计算机图形中的信息的处理以图形流水线中的一系列阶段发生,每个阶段产生对于连续阶段的结果。
[0002]一个类型的渲染采用的是光栅化。一般而言,光栅化是将以矢量图形格式(形状)描述的图像转换为光栅图像(像素或点)的处理。作为结果的输出可能被提供给显示器或者打印机,或者例如保存为位图文件。典型的光栅化算法接收描述为多边形的三维场景,并将该场景渲染到二维显示器上。每个多边形被表现为三角形的集合,并且每个三角形由三维空间中的3个顶点表现。在这个意义上,光栅化器接收三角形顶点的流,将其转换为表面上对应的二维点,并根据需要填充转换的二维三角形。
【附图说明】
[0003]图1示出依据本发明的实施例的配置为进行多边形光栅化的图形处理系统。
[0004]图2示出依据本发明的实施例配置的图1所示的系统的处理路径选择设备。
[0005]图3示出依据本发明的实施例配置的多边形光栅化方法。
[0006]图4示出依据本发明的实施例的有关给定多边形的边界框以及要光栅化的有效样本。
[0007]图5示出依据本发明的实施例能够分割为能够被处理的三角形的示例多边形图元(primitive)。
[0008]图6示出依据本发明的实施例配置的媒体系统。
[0009]图7示出依据本发明的实施例配置的移动计算系统。
【具体实施方式】
[0010]公开的技术用于执行给定图形工作负荷的光栅化,其中,与相对高位计数(bitcount)操作相关联的工作负荷的部分经由第一处理路径处理,并且与相对较低位计数操作相关联的工作负荷的部分经由第二、相对更快的处理路径被处理。在典型并依据实施例的工作负荷中,大多数光栅化处理操作能够使用更快的处理路径来执行。例如,在一些实施例中,能够使用更快的处理路径执行的光栅化处理操作超过接收的图形工作负荷的90%,或者95%,或者在很多情况下为99%。因此,通过识别更快的处理路径(例如32位操作路径,例如相对于40位或者64位操作路径)将是充分的那些情况,进而选择适当的处理路径,能够实现处理效率和功耗的显著改善。在更一般的意义上,与给定图元相关联的最大位计数能够被识别并与阈值比较来确定能够使用多个可用处理路径中的哪一个。
[0011]总览
[0012]如上所述,光栅化器通常接收三角形顶点的流,将其转换为表面上对应的二维点,并根据需要填充转换的二维三角形。更具体而言,典型地由应用程序创建给定的对象的应用模型,并存储在应用数据库中。使用图形应用编程接口(API),应用程序将应用模型转换为一系列命令,其然后由图形流水线处理,以产生模型的视图。图形API典型地包含一系列图形输出子程序或者命令,其含有要观看的内容的详细几何描述和描述对象应该如何出现(例如尺寸、颜色、纹理、宽度等)的属性、以及其他要素,而这些都是在能够从高级语言(诸如C、C++、面向对象C、Pascal、LISP等)调用的图形封装中收集的。在光栅化期间,由三维表现中的三维参数定义的图元被转换为像素的二维光栅。三维参数包括x、y、以及z坐标,并可以可选地包括诸如颜色和纹理的参数。在转换处理期间,包括X、Y、以及Z值的三维坐标被转换为用于定位的X和Y屏幕坐标、以及被视为参数的深度值Ζ。在光栅化期间,对于3个三角形顶点的每个,给出一组参数值。在光栅化处理期间要解决的一个问题是计算三维参数(诸如Z参数、颜色参数、以及纹理参数),该三维参数对应于将三维图元进行最密切近似的坐标。光栅化通过在扫描像素网格的水平或者垂直扫描线时计算在每个像素处的参数值,来进行这些确定。存在与已知的光栅化技术相关联的多个重要问题。例如,在光栅化期间,检查样本是否由三角形(或者其他图元)覆盖的查询由图形流水线广泛地调用。该查询经常用3个半平面测试来计算,并需要能够导致32.16 (48位)数字的乘法。然而,通常的图形API典型地将要求的光栅化精度限定为使用固定点16.8(24位)数字。此外,典型的图形系统使用具有40位操作的固定功能硬件,并且软件光栅化器使用64位操作。为此,根据工作负荷,光栅化处理可能是昂贵且低效的处理,有时需要很多乘法计算。
[0013]因此,依据本发明的实施例,提供如下光栅化技术:其中,在光栅化之前或者期间评价给定的图形工作负荷,来评估操作的必要位计数。如果位计数超过给定的阈值,那么能够使用能够容纳更高位操作的更慢的处理路径来处理工作负荷。另一方面,如果位计数为给定的阈值或在其以下,那么能够使用能够容纳更低位操作的相对更快的处理路径来处理工作负荷。例如,鉴于本公开要理解的是,对于固定功能硬件,使用32位操作而非40位操作可以减小面积和功耗。以类似的方式,对于软件光栅化器,使用32位操作而非64位操作可以增加图形流水线的性能并减小功耗。
[0014]该技术基于多个观察。例如,鉴于本公开要理解的是,三角形的边界框外的样本点能够在光栅化之前/之中被简单地拒绝,使得对于三角形的边界框内的一组样本仅需要完成半平面测试。此外,半平面测试需要的位的数能够在光栅化之前界定一一该测试在当前的绘制调用期间对于给定的三角形中的所有样本点都有效。在一个示例实施例中,例如,如果该界限不超过32位,那么能够使用通常的32位变量(而在光栅化期间根据需要将值移位)。如果界限超过32位,那么能够使用软件光栅化器中的64位操作和/或硬件光栅化器中的可编程硬件。
[0015]鉴于本公开要理解的是,虽然本文提供了诸如32位操作(例如BitOp—ld<32)的示例位操作,但是该技术能够适用于任何数位的操作(例如24位、16位等),并且请求保护的发明不意图被限制为任何特定位操作阈值,除非明确规定。同样,虽然本文提供了诸如三角形的示例多边形图元,但该技术能够适用于通过首先将其分割或者切割为三角形的任何平面多边形,并且请求保护的发明不意图被限制为任何特定图元形状,除非明确规定。
[0016]系统架构和方法
[0017]图1是示出依据本发明的实施例的配置为进行多边形光栅化的图形处理系统。可见,系统包含渲染引擎,该渲染引擎包含光栅化器。光栅化器配置有处理路径选择设备。在操作中,给定的应用访问该系统并提供图形工作负荷,该图形工作负荷例如可以包含要由系统处理的一个或多个命令和/或图形数据,其进而来向显示器设备产生输出。
[0018]要理解的是,没有示出图形处理系统的所有典型部件和功能模块(诸如图形处理单元(GPU)、位块传送器引擎、以及媒体引擎)。此外要注意的是,不同实施例可以具有不同程度的元件部分/模块整合。例如,处理路径选择设备可以实现为在光栅化器的输入处的离散部件/模块,或者集成到光栅化器。替代地,处理路径选择设备可以部分地实现在光栅化器内,并部分地实现在与光栅化器通信的一个或多个其他部件中。鉴于本公开可以想到大量其他这样的变化和实施例,请求保护的发明不意图被限制为在图中绘出的特定示例。
[0019]给定的应用能够是产生适于由图形处理系统执行的命令的任何应用。工作负荷能够如常规完成那样或者如果期望的话用自定义或者专有协议,从应用传递至系统。在其他实施例中,应用可以与一个或多个介入模块和/或部件通信,其中的一个或多个进而与系统通信。这样的应用细节从一个实施例到另一个实施例会大幅变化,并且不意图限制请求保护的发明。
[0020]能够使用任何数量的已知和/或自定义技术和架构来实现基于光栅化器的渲染引擎,以便允许进行典型的光栅化处理。然而,除了这样的常规/自定义功能和架构外,光栅化器被进一步编程和/或配置有处理路径选择设备,其在一个实施例中被配置为评估工作负荷的哪些部分(如果有的话)与相对高位计数操作相关联,以及工作负荷的哪些部分与相对较低位计数操作相关联,然后将这些工作负荷部分提供给光栅化器的适当的处理路径。位计数阈值例如能够是用户可配置的参数集,或者能够被设定为适于给定应用的预定值。参考图2讨论处理路径选择设备。
[0021]图2示出依据本发明的实施例配置的图1所示的系统的处理路径选择设备。可见,设备接收采取一个或多个多边形图元形式的工作负荷,并通过设备模块处理每一个,该设备模块包含边界框模块、三角形变换模块、边缘方程
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1