解耦的着色流水线的制作方法

文档序号:8396420阅读:398来源:国知局
解耦的着色流水线的制作方法
【技术领域】
[0001] 本文总体上涉及图形处理。
【背景技术】
[0002] 使用图形处理器来产生用于显示在计算机显示器上的图像。图形流水线包括多个 阶段来产生最后的描绘。通过采样不同的函数和着色,使用光栅化,来呈现图像。可见性函 数是H角形内的采样点。着色确定在某一采样点的颜色是什么。因此,在下文中,使用术语 "可见性样本"或"着色样本"。
[0003] 在超级采样抗银齿(SSAA)中,可见性样本与着色样本相同。在多重采样抗银齿 (MSAA)中,每个像素有单一着色样本,每个像素有许多可见性样本。图形处理器一般支持该 两种抗银齿解决方案。
【附图说明】
[0004] 参考W下附图来描述一些实施例:
[0005] 图1是本发明的一个实施例的流程图;
[0006] 图2是另一个实施例的流程图;
[0007] 图3是相对于X和Y缩放因子的网格单元大小的图形;
[000引图4是根据一实施例的图形流水线的描绘;
[000引图5是一个实施例的系统描绘;W及
[0010] 图6是如图4所示的实施例的前视图。
【具体实施方式】
[0011] 在某些实施例中,给定峽或图片可W具有不同的着色速率。在一个实施例中,在 峽或图片的一些区域,着色速率可W小于每个像素一次,在其他位置,它可W是每个像素一 次。其中可W降低着色速率的示例包括有运动和照相机散焦的区域,周界模糊的区域,W及 一般而言,W任何方式降低可见性的任何情况。着色速率可W在诸如着色方块(quad)之类 的区域,通过改变区域的大小来改变。屏幕-方块是作为光栅器输出的一组2x2屏幕像素。 着色像素是一组AxB屏幕像素。着色方块是一组2x2着色像素。
[0012] 利用解禪的像素着色,W各种不同的方式中的一种来将MSAA的概念泛化 (generalized)。它可W被泛化的一种方式将是按低于一个像素一次的速率计算着色,例 女口,每1x2像素、2x1像素、2x2像素、4x2像素、2x4像素,或4x4像素计算一次,W上仅为举 例。通过每AxB像素给出一个着色样本,获得采用两个浮点数字A和B的完全连续分布也 是可行的。另一种变体是将着色拆分为两个部分,W便一个部分每个像素地或每个样本地 执行,另一部分W较慢的速率执行,然后,组合结果。
[0013] 在现代的实时图形流水线中,W每个像素每个几何图元一次的速率来执行像素/ 段着色。然而,有许多用于降低像素着色速率的机会。该样的降低会导致功率消耗节省和 其他性能优点。例如,在存在运动模糊和照相机散焦的情况下,有机会在峽的不同的部分, 具有不同的着色速率。当一个场景带有运动和照相机散焦地呈现时,屏幕的一些区域可能 会显得模糊,所W在那些区域,像素着色速率会低一些,因为它们主要显示低频率内容。在 周界模糊的情况下,可W在用户难W感知到高频细节的屏幕的周边降低着色速率,至少在 假设用户正在将注意力集中到屏幕的中也时是如此。此外,在较高密度显示器中,可W降低 着色速率,而不会有细节的重大损失。
[0014]尽管可W灵活地降低着色速率,但是在某些实施例中,也W满速率采样可见性,W保留诸如边缘之类的锐利特征。在某些实施例中,也可W降低可见性采样速率,该具有在对 象边缘处产生银齿化(aliasing)不良影响的可能性。
[0015]参考图1,序列10可软件、固件和/或硬件来实现。在软件和固件实施例中, 它可W通过计算机执行的指令来实现,该指令被存储在例如磁存储、光学存储,或半导体存 储器之类的一个或多个非瞬态计算机可读介质上。
[0016] 首先,光栅器(rasterizer)21针对给定大小的像素区(在此示例中,2x2像素区 24,叫做方块),测试图元。(也可W使用其他大小的像素区)。光栅器W空间填充顺序,诸 如Modon顺序,遍历方块。在多重采样的情况下,如果图元覆盖方块中像素或样本中的任 何一个,如示意图中标记出的被覆盖的方块所示的那样,则光栅器将方块朝下游发送给瓦 片(tile)缓冲器16。在某些实施例中,可W在14执行早期z(earlyZ)剔除。
[0017]对于给定图元,瓦片缓冲器可W将屏幕分割为两个2化2N像素大小的瓦片(其称 为着色方块),并可W存储落在单一瓦片内的所有光栅化的方块,如在框18中所指出的。可 W对于每两个2化2N瓦片,可评估屏幕对准的着色网格(框22)。
[0018]在某些实施例中,网格单元或着色方块的大小可W仅限于2的幕个像素的倍数。 例如,单元大小可W是lxl、lx2、2xl、4xl、4x2、4x4,直到^JxN,包括lxN和^JxlW及所有中间 配置。
[0019]通过控制着色网格单元的大小,可W在框20控制着色速率。目P,单元大小越大,瓦 片的着色速率越低。
[0020] 然后,将存储在瓦片缓冲器中的方块分组成着色方块,着色方块由相邻的网格单 元的组所组成,诸如,在一个实施例中,2x2的相邻的网格单元的组。然后,对着色方块进行 着色,将来自着色器的输出写回到颜色缓冲器中的所有被覆盖的像素。
[0021] 逐个2化2N像素瓦片地估算网格大小(其中,N是被调整大小的方块内的最大的 解禪的像素的大小,且对于每一个几何图元单独地估算)。"最大的解禪的像素"是指当着 色方块的大小改变时像素的大小。在一个实施例中,四个像素构成一个方块,每一个像素都 构成方块大小的四分之一。
[0022] 可W通过叫做"缩放因子"的属性来控制网格大小,该缩放因子包括一对带符号的 值一沿着X轴的缩放因子Sy,W及沿着Y轴的缩放因子Sy。可各种方式来指定缩放 因子。例如,它可W从顶点属性内插出,或从屏幕位置计算出。
[0023]使用带符号的缩放因子是有用的,例如,在照相机散焦的情况下,如果图元穿过聚 焦面。在此情况下,图元的顶点会在焦点之外,而图元的内部是焦点对准的。然后,可W将 负的缩放因子指定为在焦平面的前面的顶点的属性,将正的缩放因子指定为焦平面后面的 顶点的属性,反之亦然。对于图元的焦点对准的区域,缩放因子内插到零,因此,在焦点对准 区域,保持局着色速率。
[0024]缩放因子可W在瓦片内变化,而对于每一个瓦片,仍计算出单一量化的网格单元 大小。该可能会在网格大小中产生从瓦片到瓦片的不连续性,并会导致可见的网格过渡。 [002引图2是根据一实施例的序列的流程图。序列可WW软件、固件,和/或硬件来实现。 在软件和固件实施例中,序列可W通过存储在诸如磁性、光、或半导体存储器之类的一个或 多个非瞬态计算机可读介质中的计算机执行指令来实现。
[0026] 为了从缩放因子计算出网格大小,首先在2化2N瓦片的四个角部内插缩放因子 (框50)。如果跨网格单元的四个角部有符号改变(框52和54),则该指示出瓦片内的最小 值。在此情况下,选中最小可能的网格单元间隔,通常可W是一个像素。然后,将Sy和Sy猜 位(clamp)到下猜位极限(框56)。如果没有符号改变,则从四个角部中选择缩放因子的最 小绝对值(框58)。对于某些实现,可W使用不同于最小值的操作,例如,绝对值的平均值。 然后,对方块大小进行仿射(a巧ne)映射(框60),接下来是,猜位和量化(框62),W确定 网格单元大小。
[0027]X和Y缩
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1