多个阴影化引擎上3D计算机图形数据的处理

申请号 CN201180014821.5 申请日 2011-03-18 公开(公告)号 CN102822870B 公开(公告)日 2016-10-05
申请人 想象技术有限公司; 发明人 J·雷德肖;
摘要 提供了一种用于在多个阴影化引擎上纹理化和阴影化3D计算机图形图像的方法。首先,图像被细分成多个图 块 且每个图块被细分成多个微图块。对象列表被分配至每个图块,对象列表包含定义图块中可见的对象的数据。对于一个微图块,确定微图块中的哪些 像素 被对象列表中的对象A贯穿以及确定微图块中哪些像素被对象列表中的至少一个其他对象贯穿。在与确定步骤并行的步骤中,用于对象B的像素贯穿数据被输出,对于该对象B已经执行了对于选择的图块中的每个微图块的所有贯穿确定。像素贯穿数据被输出至多个阴影化引擎中的至少一个阴影化引擎。然后,针对所选择的存在可见对象的图块中的每个微图块重复这些步骤。与用于对象B的像素贯穿数据相对应的像素使用多个阴影化引擎中的至少一个阴影化引擎进行纹理化和阴影化。最后,存储通过纹理化和阴影化得到的数据。
权利要求

1.一种用于在多个阴影化引擎上纹理化和阴影化3D计算机图形图像的方法,该方法包括以下步骤:
a)将所述图像细分成多个矩形区域;
b)将每个矩形区域细分成多个更小的矩形区域,其中所述阴影化引擎中的每一个阴影化引擎被分配给更小的矩形区域;
c)将对象列表分配给步骤a)的所述多个矩形区域中的每一个矩形区域,所述对象列表包含定义在所述矩形区域中可见的对象的数据;
d)针对矩形区域中的每个更小的矩形区域,确定在所述更小的矩形区域中哪些像素被所述对象列表中的对象C贯穿,以及确定在所述更小的矩形区域中哪些像素被所述对象列表中的至少一个其他对象B贯穿,所述至少一个其他对象B包括至少一个具有针对至少一个其他更小的矩形区域已经确定的像素贯穿数据的其他对象;
e)与步骤d)并行,输出用于进一步的对象A的像素贯穿数据到分配给在其中所述进一步的对象A可见的那些更小的矩形区域的一个或多个阴影化引擎,对于该对象A用于所选择的矩形区域中的每个所述更小的矩形区域的所有贯穿确定已经被执行;
f)利用分配给那些更小的矩形区域的所述一个或多个阴影化引擎纹理化和阴影化与用于所述对象A的所述像素贯穿数据对应的像素;
g)重复步骤d)、e)、和f)直到每个矩形区域中的所述对象列表中的所有对象已经针对每个更小的矩形区域执行了贯穿确定;
h)存储通过纹理化和阴影化步骤f)得到的数据。
2.根据权利要求1所述的方法,其中步骤d)中的对象C是用于矩形区域的对象列表中的下一个对象,该矩形区域包括所述更小的矩形区域,所述对象C还不具有针对那个更小的矩形区域已经确定的像素贯穿数据。
3.根据权利要求1或2所述的方法,其中步骤d)中的所述至少一个其他对象B包括多个对象,所述多个对象的数量等于每个矩形区域中的更小的矩形区域的数量减1。
4.根据权利要求1所述的方法,其中步骤d)中的所述至少一个其他对象B包括所述对象列表中已经具有针对所述矩形区域中所有其他更小的矩形区域确定的像素贯穿数据的对象。
5.根据权利要求1所述的方法,其中步骤d)中的所述至少一个其他对象B进一步包括:
所述对象列表中已经具有针对所述矩形区域中除一个其他更小的矩形区域之外的所有其他更小的矩形区域确定的像素贯穿数据的对象,或者
所述对象列表中具有针对所述矩形区域中一个其他更小的矩形区域确定的像素贯穿数据的对象,或者
所述对象列表中已经具有针对在一个其他更小的矩形区域与所述矩形区域中除一个其他更小的矩形区域之外的所有其他更小的矩形区域之间的数量的更小的矩形区域确定的像素贯穿数据的对象。
6.根据权利要求1所述的方法,其中步骤g)的重复包括:通过轮换所述矩形区域轮流选择更小的矩形区域并且针对每个轮流选择的更小的矩形区域重复步骤d)、e)、和f)。
7.根据权利要求1所述的方法,其中步骤g)的重复包括:使用莫顿顺序模式轮流选择更小的矩形区域并且针对每个轮流选择的更小的矩形区域重复步骤d)和e)。
8.根据权利要求1所述的方法,其中步骤g)的重复包括:使用Z顺序模式轮流选择更小的矩形区域并且针对每个轮流选择的更小的矩形区域重复步骤d)、e)、和f)。
9.根据权利要求1所述的方法,其中并行于针对第一对象A的步骤e),步骤f)的纹理化和阴影化针对第二对象B被执行。
10.一种用于在多个阴影化引擎上纹理化和阴影化3D计算机图形图像的系统,该系统包括:
用于将所述图像细分成多个矩形区域的装置;
用于将每个矩形区域细分成多个更小的矩形区域的装置,其中所述阴影化引擎中的每一个阴影化引擎被分配给更小的矩形区域;
用于将对象列表分配给所述多个矩形区域中的每个矩形区域的装置,所述对象列表包含定义在所述矩形区域中可见的对象的数据;
用于针对在所选择的矩形区域中的每个更小的矩形区域重复执行以下步骤直到所述矩形区域中的所述对象列表中的所有对象已经针对每个更小的矩形区域执行了贯穿确定的装置:
i)针对矩形区域中的每个更小的矩形区域确定在所述更小的矩形区域中哪些像素被所述对象列表中的对象C贯穿、以及确定在所述更小的矩形区域中哪些像素被所述对象列表中的至少一个其他对象B贯穿,所述至少一个其他对象B包括至少一个具有针对至少一个其他更小的矩形区域已经确定的像素贯穿数据的其他对象;
ii)与步骤i)并行,输出用于进一步的对象A的像素贯穿数据到分配给在其中所述进一步的对象A可见的那些更小的矩形区域的一个或多个所述阴影化引擎,对于该对象A用于所选择的矩形区域中的每个所述更小的矩形区域的所有贯穿确定已经被执行;
用于利用分配给每个更小的矩形区域的所述一个或多个阴影化引擎纹理化和阴影化与用于所述对象A的所述像素贯穿数据对应的像素的装置;以及
用于存储通过纹理化和阴影化装置得到的数据的装置。

说明书全文

多个阴影化引擎上3D计算机图形数据的处理

技术领域

[0001] 本发明涉及多个阴影化引擎上3D图形数据的处理。

背景技术

[0002] 在3D图形系统中,像素通常被细分成多个矩形区域或图(tile),在这些像素上3D图像即将被渲染。例如,在申请人的英国专利No.2298111中,图像被分成多个图块且图块被轮流被处理。为了简便起见,这些图块常常被分组为众所周知的宏图块(macro tiles)。
通常,几何结构处理单元使用已知的方法从应用中接收图像数据并将其传送至屏幕空间中。然后数据被供应给图块化单元(tiling unit),该图块化单元将屏幕空间几何结构插入到对象列表中以用于每个定义的矩形区域或图块的集合。这些列表中的每个列表将包含整体地或部分地存在于屏幕的子区域中的图元(通常定义为三形的表面),即图块。因此,将存在用于屏幕上每个图块的对象列表。然后使用任何已知的方法图块可以轮流被渲染直到每个图块中的所有对象都被处理。
[0003] 用于确定图块中的特定像素的图元深度的各种方法是已知的。这些使隐藏面能够被移除(remove)并在随后不被用于像素处理,除非距观察点最近的表面是半透明的。通常,图元将具有与其相关联的标签,指示其是半透明的还是不透明的。
[0004] 图1显示了这类已知的渲染系统的示例,图1是已知的渲染系统的原理方框图。渲染系统包括几何结构处理单元2,该几何结构处理单元2接收定义对象的图元数据。其处理对象以导出诸如三角形的图元,该图元被传递至图块化单元4,该图块化单元4把将被纹理化并阴影化的图像细分成多个矩形区域。然后在图块化的屏幕空间几何结构列表单元6中产生图块几何结构列表。这些列表包括图元的列表,这些图元可能在每个图块中是可见的。然后在将数据传递至纹理化和阴影化单元10之前,隐藏面消除单元8确定由图元定义的哪个表面或哪些表面在图块中的各像素处图块是可见的,纹理化和阴影化单元10根据与确定在各像素处为可见的对象相关联的图像属性可以将纹理化和阴影化应用于像素。
[0005] 用于确定相对深度并还用于确定是否适合于渲染用于特定像素或图块的数据的各种方法是已知的。一个这类系统在申请人的国际专利申请号PCT/GB2004/002717(公开号WO2005/015503)的专利申请中示出。其中,对于图块中的每个像素,使用与半透明有关的数据,对象在深度分类单元中被轮流考虑到。当在某个像素处半透明的对象覆盖了不透明的对象时,用于整个图块的数据被输入到阴影化和纹理化单元。
[0006] 在以前的实施方式中,每个三角形在查找表(LUT)中被分配了唯一的条目(entry),而不是共享LUT条目以用于具有类似状态的三角形。区间(span)的处理顺序也是基于线性,而不是确定方向的微图块(micro tile)。这意味着将三角形与左边区域和右边区域相关联是不可能的,因为图块的整个宽度被看做是单循环的。因为每个三角形具有单个LUT条目,这意味着LUT必须是大型而昂贵的。当更多的三角形需要被存储在LUT中时,随着图块变得更大,成本也变得更高。然而,这使用于每个三角形的边界框(在这种情况中由于图块的整个宽度立即考虑到了Y的最小值和最大值)能够存储在LUT中。这意味着输出处理变得很简单。在传递过程之后,最初TAG ID缓冲器被扫描以确定哪个LUT ID仍然是可见的(之前显示的对象可能被其它对象遮盖)。然后,用于可见的三角形(1三角形=1LUT ID)的可见区间被输出,以最小的LUT ID开始。每个LUT条目包含用于三角形的原始范围(Y最小值至Y最大值),并且针对该范围TAG ID缓冲器被扫描以用于输出三角形。
[0007] 在延迟Z缓冲器系统中栅格化(rasterisation)管线接收一串图元,该图元与当前正在被处理的图块贯穿(intersect)。通过深度分类器(depth sorter)接收信息,该深度分类器计算深度并栅格化接收到的三角形,以确定样本是否是可见的。也就是说,其确定了图元是否在之前用于Z缓冲器中的该像素位置的对象的前面,以及是否是半透明的。
[0008] 如果适当的话,存储用于特定像素的深度可以被更新并且指示哪些样本应该被纹理化和阴影化以用于每个像素的掩码(mask)被传递至标签分类器(tag sorter),其在纹理化和阴影化中使用每个像素的对象数据和关联的标签。

发明内容

[0009] 本发明的优选实施方式提供了改进的方法和系统以用于标签分类器,该标签分类器提高了处理的效率,诸如在基于图块的图形系统中用于像素的纹理化和阴影化的效率。
[0010] 具体来说,本发明的实施方式求改进多个通用阴影化引擎(USSE)或其他类的阴影化单元可以操作的效率,以阴影化被分别分配给它们作为图元从栅格化和深度分类单元传递的图块或部分图块中的像素。
[0011] 更具体地,根据本发明,提供了一种用于在多个阴影化引擎上纹理化和阴影化3D计算机图形图像的方法,该方法包括以下步骤:将所述图像细分成多个矩形区域;将每个矩形区域细分成多个更小的矩形区域;将对象列表分配给每个矩形区域,所述对象列表包含定义在所述矩形区域中对象为可见的数据;针对每个更小的矩形区域轮流执行以下操作:确定在所述更小的矩形区域中哪些像素被来自所述对象列表的下一个对象贯穿,以及确定在所述更小的矩形区域中哪些像素被来自所述对象列表的各自的下一个对象贯穿,该各自的下一个对象在之前的每个各自的其他的更小矩形区域的像素贯穿确定上被使用;输出用于对象的像素贯穿数据到分配给每个各自的更小的矩形区域的阴影化引擎,对于该对象的用于每个更小的矩形区域的所有的贯穿确定已经被执行;用所述阴影化引擎纹理化和阴影化与用于所述对象的像素贯穿数据相对应的像素;以及存储通过针对与所述像素贯穿数据对应的像素的纹理化和阴影化步骤得到的数据。
[0012] 根据本发明,还提供了一种用于在多个阴影化引擎上纹理化和阴影化3D计算机图形图像的方法,该方法包括以下步骤:a)将所述图像细分成多个矩形区域;b)将每个矩形区域细分成多个更小的矩形区域;c)将对象列表分配给每个矩形区域,所述对象列表包含定义在所述矩形区域中对象为可见的数据;d)针对一个更小的矩形区域,通确定在所述更小的矩形区域中哪些像素被所述对象列表中的对象A贯穿,以及确定在所述更小的矩形区域中哪些像素被所述对象列表中的至少一个其他对象贯穿;e)与步骤d)并行,输出用于对象B的像素贯穿数据到多个阴影化引擎中的至少一个阴影化引擎,对于该对象B用于所选择的矩形区域中的每个更小的矩形区域的所有贯穿的确定已经被执行;f)针对其中具有可见的对象的所选择的矩形区域中的每个更小的矩形区域,重复进行步骤d)和e);g)利用多个阴影化引擎中的至少一个阴影化引擎纹理化和阴影化与用于对象B的像素贯穿数据对应的所述像素;以及h)存储从纹理化和阴影化步骤g)得到的数据。
[0013] 本发明的方法允许最大化多个即将实现的阴影化引擎之间的负载平衡。这在系统中是可能的,其中每个LUT条目具有多于一个的三角形,所以在图像中的三角形的范围不能根据LUT确定,而必须以像素乘像素为基础来确定。
[0014] 在图像的每个矩形区域中,可能具有任意合适数量的更小的矩形区域。在一个实施方式中,每个矩形区域具有四个更小的矩形区域。在另一实施方式中,每个矩形区域具有八个更小的矩形区域。优选地,每个矩形区域中所述更小的矩形区域通过在x和y方向上划分所述矩形区域而建立。
[0015] 优选地,阴影化引擎的数量等于每个矩形区域中更小的矩形区域的数量。在这个方案中,针对图像的纹理化和阴影化,每个阴影化引擎可以被分配至每个矩形区域的特定的更小的矩形区域。可替换地,对于特定的更小的矩形区域的每个阴影化引擎的分配可以以每个矩形区域为基础。
[0016] 优选地,在每个选择的矩形区域中,多个阴影化引擎中的每一个阴影化引擎被分配给更小的矩形区域,并且在步骤e)中输出的所述像素贯穿数据被输出至分配给在其中对象B是可见的一个或多个更小的矩形区域的一个或多个阴影化引擎。
[0017] 在优选的实施方式中,步骤d)的对象A是用于所述矩形区域的所述对象列表中的下一个对象,该矩形区域包括所述更小的矩形区域,该对象A在所述更小的矩形区域中是可见的并且还不具有针对该更小的矩形区域已经确定的像素贯穿数据。
[0018] 步骤d)中的所述至少一个其他对象可以包括多个对象,对象的数量等于每个矩形区域中更小矩形区域的数量减1。
[0019] 优选地,步骤d)中所述至少一个其他对象包括所述对象列表中已经具有确定的针对所述矩形区域中所有其他更小矩形区域的像素贯穿数据的对象。
[0020] 更优选地,步骤d)中的所述至少一个其他对象可以进一步包括:所述对象列表中已经具有针对所述矩形区域中除一之外(except one)的所有其他更小的矩形区域确定的像素贯穿数据的对象,所述对象列表中具有针对所述矩形区域中一个其他更小的矩形区域确定的像素贯穿数据的对象,以及所述对象列表中已经具有针对在一(one)与所述矩形区域中除一之外(except one)的所有更小的矩形区域之间的各自数量的更小的矩形区域确定的每个像素贯穿数据的对象。也就是说,优选地,步骤d)中的所述至少一个其他对象包括:已经具有针对一个其他更小的矩形区域确定的像素贯穿数据的对象,已经具有针对两个其他更小的矩形区域确定的像素贯穿数据的对象,已经具有针对三个其他更小的矩形区域确定的像素贯穿数据的对象,等等,直到已经具有针对在所述矩形区域中所有其他更小的矩形区域确定的像素贯穿数据的对象。
[0021] 步骤d)中的确定在所述更小的矩形区域中哪些像素被所述对象列表中的对象A贯穿,以及对象确定在所述更小的矩形区域中哪些像素被所述对象列表中的至少一个其他贯穿,可以包括使用一个或多个掩码,该掩码指示哪些对象应该在各像素被阴影化和纹理化。
[0022] 步骤f)的重复进行可以包括通过轮换(rotate around)所述矩形区域轮流选择更小的矩形区域并且针对每个轮流选择的更小的矩形区域重复步骤d)和e)。可替换地,步骤f)的重复进行包括使用莫顿顺序(Morton-order)模式轮流选择更小的矩形区域并且针对每个轮流选择的更小的矩形区域重复进行步骤d)和e)。在一些情形中,对于多个阴影化引擎之间负载平衡,发现选择的顺序是重要的。莫顿顺序也被称为Z顺序。
[0023] 优选地,并行(parallel)于针对第一对象B的步骤e),步骤g)的纹理化和阴影化针对第二对象B被执行。也就是说,当步骤d)和步骤e)相应于步骤f)正被重复时,步骤g)的纹理化和阴影化可以针对对象执行,用于该对象的像素贯穿数据在以前执行的步骤e)中被输出。附图说明
[0024] 参照图1已经描述了已知的渲染系统,其显示了3D渲染系统的原理方框图。
[0025] 现在本发明的优选实施方式将参照附图的图2和图3通过示例的方式具体进行描述,其中:
[0026] 图2显示了图1的修改部分的体现本发明的原理方框图;以及
[0027] 图3显示了本发明实施方式中的图块的细分区域。
[0028] 如已经讨论的,本发明提供了用于使用多个阴影化引擎纹理化和阴影化3D图像的方法。本发明通过阴影化引擎之间的负载平衡提高了阴影化引擎的效率。本发明提供了用于与另一三角形的像素贯穿确定结果并行输出的特定的小矩形区域中一个或多个三角形的像素贯穿确定的操作。
[0029] 图2显示了在图1的隐藏面消除单元8和纹理化和阴影化单元10之间实施的本发明的实施方式。在图2所示的示例性实施方式中,在四个平行的阴影化引擎上以四个USSE18的形式执行了纹理化和阴影化。
[0030] 如图2所示的本发明的优选实施方式,提供了改进的标签分类方法和设备,其在掩码上进行操作,该掩码指示在每个像素处哪些样本应该被阴影化和纹理化。该掩码由栅格化和深度分类单元产生,并且在适当的时间数据从栅格化单元输入至标签分类单元,然后标签分类单元控制多个通用阴影化引擎(USSE)以确定使用经由栅格化单元输入到它的图元数据将阴影应用至每个像素。
[0031] 在以前的技术系统中,标签分类单元在扫描的基础步骤上在每个时钟循环进行操作,该步骤着眼于图块中的一串16个像素。本发明的实施方式已经修改了该方法以使用微图块(如4×4像素)方法,例如,用于单个图块的四个USSE,每个USSE分配至图块的不同区域(每个区域被称作微图块)。这些区域通常为左上角(TL)、右上角(TR)、左下角(BL)和右下角(BR)。每个微图块可以例如时四个像素乘四个像素,但其他尺寸和微图块的数量也是可能的。
[0032] USSE的使用效率通过使所有USSE在图元上操作为目标来实现,其中该图元具有类似的状态(如颜色、结构)。因此,从栅格化顺序中的简单的渲染像素移除是存在的。这限制了USSE需要被重新配置以处理不同的图元数据的次数。对于这方面,现在将进一步具体地进行讨论。
[0033] 图2显示了在图1的隐藏面移除单元8和纹理化和阴影化单元10之间实施的本发明的实施方式。在图2所示的示例性实施方式中,传递产生控制单元12确定什么时候将用于图块的对象数据发送至纹理化和阴影化单元。其通过使用与图块中的每个像素相关联的标签和应用于这些标签的一组规则进行。各种不同的方案是可用的。用于每个像素的标签被存储在标签缓冲器14中并将指示最接近的对象在特定像素处是否是可见的,至今对于所处理的几何结构来说,是半透明的或不透明的。当半透明的对象在某像素偶遇时然后将对象数据输入到纹理化和阴影化单元10通常则是必要的,其中,对象数据到目前为止已经通过隐藏面移除单元8进行处理以用于图块。
[0034] 在图2的布局中,提供了标签分类器16以控制对象数据分配至多个(这里为4个)通用阴影化引擎(USSE)18。标签分类器16细分图块或矩形区域,该图块或矩形区域被处理成多个子区域(微图块),一个被分配至每个各自的USSE。划分成多个微图块的图块的划分可以如图3所示,其中图块被划分成四个微图块,即左上微图块(TL)、右上微图块(TR)、左下微图块(BL)和右下微图块(BR)。所以,在该示例中,图块的左上四分之一(TL)被分配给USSE 1,右上四分之一(TR)被分配给USSE 2,及左下四分之一(BL)被分配给USSE 3且右下四分之一(BR)被分配给USSE 4。
[0035] 标签分类器16执行针对三角形扫描图块区域并输出三角形数据至四个USSE18的功能。在某种程度上进行这个过程以确保USSE 18的有效利用。
[0036] 当标签分类器16最初从传递产生控制单元12接收到数据的输入时,其不知道哪些三角形在图块的每个区域中是可见的并因而哪些三角形需要被输出至USSE。
[0037] 在该实施方式中,标签分类器16通过针对对象列表中的第一个三角形A扫描左上区域(TL)启动。一旦这个过程完成了,则根据对齐(flush to)标签分类器16的对象针对下一个三角形B扫描下一个区域,即右上区域(TR),以及针对三角形A扫描该区域。针对三角形A和B并且针对下一个三角形C然后左下(BL)区域被扫描。最后针对三角形A、B和C并且针对下一个三角形D右下区域(BR)被扫描。
[0038] 一旦这个过程完成了,应当理解的是针对三角形A所有四个区域就已经都被扫描了,并已经确定了对于该像素三角形是可见。然后三角形可以被输出至USSE 18的所有四个USSE 18,其可以处理与A相关联的像素贯穿以对它们进行纹理化和阴影化,然后传递纹理化和阴影化的数据至存储器20。
[0039] 然后过程继续。在下一个过程循环时,三角形B、C和D开始被分配至TL区域并且针对这些三角形和下一个三角形E执行了完整扫描的四分之一。在此之后针对三角形B所有区域将被扫描并且标签分类器16可以将三角形B输出至所有USSE 18以用于纹理化和阴影化并随后存储在帧存储器20中。
[0040] 在下一个循环,TR区域再次被考虑,并且在其上针对被三角形C、D和E以及下一个三角性F贯穿的所有像素执行的完整扫描。三角形C现在已经被扫描用于所有区域及被输出至USSE 18以纹理化和阴影化并随后存储在帧存储器20中。
[0041] 在本实施方式中,这个过程以象限顺序继续进行直到通过传递产生控制单元12输入的所有三角形均已经针对图块被纹理化和阴影化。如果存在要被处理的进一步的数据以用于图块,则相同的过程将在来自传递产生控制单元12的下一个数据输入时继续。
[0042] 因此,应当理解的是,因为具有有效地处理管线的四像素并且掩码被建立,该掩码指示在每个四分之一块中当前是哪些三角形,所以负载通过轮换搜索四分之一块来保持平衡。这意味着新的三角形被轮流输出至每个四分之一块。可以通过考虑用于跨越整个图块的四分之一的每个三角形输出以及输出用于跨越整个图块的三角形的区间来维持效率,因此用于任何给定三角形的建立、状态和纹理读取仅必须在图块中执行一次。在搜索过程期间每个四分之一块中即将输出的每个三角形的选择也是重要的,因为应用将试图把在状态和纹理中的过度降低到最低程度。同时USSE之间的负载平衡是重要的,试图输出那些三角形也是重要的,这些三角形影响了同时提交它们时相同状态排序的场景。具有相同状态的三角形还应该优选地保持在一起。这通过选择具有最小LUT条目的三角形实现,因为LUT条目根据提交的三角形(如果它们是可见的)以递增顺序被分配,即相似的状态在LUT中被放置在一起。具有相同状态的三角形将参考相同的LUT条目,所以在移动到下一个LUT条目之前,用于LUT的所有具有相同最小条目的三角形被输出。
[0043] 本发明的实施方式可以在专用的硬件软件或二者的组合中实施。在该示例中,图块已经被显示细分成四个微图块。然而,本发明可以用更多或更少的细分及USSE的相应数量实施以执行本发明的纹理化和阴影化。此外,图块中的微图块不需要基于轮换顺序轮流被选择,但可以按任何需要的顺序轮流被选择。
[0044] 优选地,具有类似状态的三角形可以有序地通过标签分类单元提供以用于扫描图块的每个区域,以使USSE可以考虑具有相同状态的第一个三角形。例如,可能具有组成单个对象的多个三角形,所有这些三角形都需要相同的阴影化和纹理化。轮流扫描用于所有这些三角形的区域将提高系统的效率,因为用不同的纹理化和阴影化数据重新程序化USSE不是必要的直到那些具有相同状态的三角形都已经被纹理化和阴影化。这将改进渲染的速度,因为用不同的纹理化和阴影化数据重新程序化USSE进行了额外的处理循环。
[0045] 本发明实施方式的方案的多个优点如下。根据单一LUT ID分组具有类似状态的三角形减少了LUT存储的需求。处理微图块考虑到基于象限的三角形的输出。在轮换的象限顺序中输出三角形在USSE上保持了平衡的负载。也已经找到了有效用于负载平衡的诸如Z-顺序或莫顿(Morton)顺序的其他顺序。(参照图3,Z顺序可以为TL、TR、BL,最后是BR,及莫顿顺序可以为TL、BL、TR,最后是BR。)产生边界框作为输出处理的部分意味着边界框是最优的,而不是基于原始输入边界框,即基于最后可见像素,而不是当三角形被处理时的可见像素。
QQ群二维码
意见反馈