专利名称:计算机图形处理的制作方法
技术领域:
本发明涉及计算机图形处理,并特别地涉及一种用于当处理计算机图形时执行反锯齿的方法和设备。
背景技术:
将专门参考三维图形处理来描述本发明,尽管如本领域技术人员所理解的,其还可等效地应用于二维图形的处理。当显示计算生成的图像时遇到的一个问题在于,所显示的图像被量化成所使用的显示器,例如监视器或打印机的离散像素位置。这限制了所显示图像的分辨率并可产生不想要的视觉伪像,例如,在输出显示设备的分辨率对于显示平滑直线不够高的情况。这些效应通常被称之为“锯齿”。图1说明了这种锯齿效应。图1的左边示出了要绘制的图像,并且右边示出实际显示的图像。如图所示,白色对象的想要的平滑曲线在显示器上实际具有锯齿状的外观。这就是锯齿。(在图1中,每个正方形表示显示器的像素,并且十字标表示处于每个(X,y)像素位置的点,为所述点确定(采样)该像素位置的颜色值。例如,图1中的像素A被绘制为全白色,因为该像素位置的颜色采样点落在白色对象内。应当注意,在图1中,只示出感兴趣像素上的样本十字标,尽管实际上可以采样所有像素。)可通过利用足够高的分辨率显示器来移除所有锯齿伪像。但是,电子显示器和打印机的分辨率通常受限制,因此许多图形处理系统使用其它技术来尝试去除或降低锯齿效应。这种技术通常称之为反锯齿技术。—种已知的反锯齿技术被称为超采样或过采样。在这种方案中,为显示的每个像素位置取得多个颜色样本,并且所述多个样本接着在显示像素时被合并为单个颜色。这具有平滑或平均来自所涉及像素位置处原始图像的颜色值的效果。图2说明超采样过程。在图2所示的例子中,为显示器中的每个像素确定四个颜色值(样本点)。(每个这样的样本实际上可被看作为“子像素”,显示器中的每个像素由四个这样的子像素构成。)给定像素的四个颜色值样本(子像素)接着被组合(下过滤 downfilter),使得用于显示器中该像素的最终颜色是该像素所取得的四个颜色样本的颜色的适当平均(混和)。这具有平滑所显示图像的效果,并且例如通过用中间的颜色阴影围绕锯齿伪像来降低锯齿伪像的突出。这可以在图2中看到,其中像素A现在具有两个“白色”样本和两个 “黑色”样本,并因此在所显示图像中被设置为50% “白色”。以这种方式,白色对象边缘周围的像素被模糊,以例如基于发现有多少样本落在边缘的每条边上来产生更光滑的边缘。实际上,超采样以比对于显示器所实际使用的分辨率要高得多的分辨率来处理屏
4幕图像,并接着在显示所处理的图像之前缩放和过滤(下采样)所处理的图像到最终的分辨率。这具有为改进的图像提供锯齿伪像减少的效果,但需要更强的处理能力和/或更多的时间,因为图形处理系统实际上必须处理与样本一样多的像素(使得,例如对于4x超采样(即在为每个像素位置取得四个样本的情况),处理请求将是没有超采样时的四倍。)其它反锯齿技术因此已经被提出,这些技术在仍然提供图像质量的一些改进的同时还具有比超采样更少的处理要求。一个通常的这种技术被称为“多采样”。在多采样中,对每个将组成最终显示的像素也取得多个样本,但不是为每个样本确定单独的颜色值,而是确定单个颜色值,并将其应用到像素的所有样本,这些样本被发现属于最终图像中的相同对象。换句话说,多采样为景物中的给定对象的给定像素计算单个颜色值,该颜色值被提供给(重用于)由该对象覆盖的像素的所有样本(子像素)(与超采样作为对比,其中为每个样本确定单独的颜色值)。由于只有单个颜色值用于给定像素的多个样本,所以多采样不如超采样那么得处理密集,且因此允许比超采样更快的处理和性能。但是,相比于超采样,显示的图像质量有所降低,因为尽管对象的边缘仍然以更高的分辨率采样,但颜色没有。如本领域已知的,3D图形处理通常通过首先将要显示的景物拆分成多个类似的基础部件(所谓的“图元”)来执行,以允许3D图形处理操作被更容易地执行。这些“图元” 通常是简单的多边形的形式,比如三角形,并且通常通过定义其顶点来描述。一旦要显示的景物已经被划分成多个图形图元,如本领域所知的,则图形图元通常被进一步划分为离散的图形实体或元素,通常称为“片断”,对该片断执行实际的图形处理操作(比如渲染操作)。每个这种图形片断将表示且对应于图元中给定的位置,并且实际上包括用于所涉及位置的数据集(比如颜色和深度值)。每个图形片断(数据元素)通常对应于在最终显示器中的单个像素(图片像素) (因为当像素是要显示的最终图片中的奇异点,所以在3D图形处理器操作的“片断”和显示器中像素之间通常存在一对一的映射。)。但是,可能有“片断”和“像素”之间不存在直接对应关系的情况,例如在显示最终图像之前对所渲染图像执行特殊形式的后处理,比如缩因此,一般执行的3D图形处理的两个方面是“栅格化”图形“图元”(或多边形) 位置数据为图形片断位置数据(即确定图形片断的(x,y)位置以用于表示要显示的景物中的每个图元),并且接着“渲染”“栅格化的”片断(即,对片断上色、明暗处理等)以便在显
示屏幕上显示。(在3D图形文献中,术语“栅格化”有时用来指到片断的图元转换以及渲染。但是,这里“栅格化”将用来仅仅指将图元数据转换为片断地址)。栅格化过程主要地涉及为显示器中的每个像素的采样点(或正执行超采样或多采样的多个采样点)确定所涉及的图元是否覆盖该采样点(或多个采样点)。接着生成具有近似(x,y)坐标位置的一个或多个片断,以渲染由图元覆盖的一个或多个采样点。渲染过程主要涉及导出显示每个片断所需要的数据。这种数据通常包括每个片断的红、绿、蓝(RGB)颜色值(其将主要确定显示器上片断的颜色),和每个片断的所谓 “Alpha”(透明度)值。如本领域已知的,该数据通常通过以线性或流水线的方式一个接一个地对每个片断(即该片断的数据)执行各自渲染过程(步骤)来导出。因此例如,基于例如片断的(X, Y)位置和为片断属于的图元的顶点所记录的颜色和透明度数据来为每个片断首先分配初始RGB和alpha值。接着连续地对片断数据执行诸如文本化、雾化和混和等操作。这些操作修改了为每个片断设置的初始RGB和alpha值,使得在最后的处理操作之后,每个片断具有适当的RGB和alpha值集合,以允许该片断正确地在显示屏幕上显示。用于片断显示的最终RGB和alpha值集合被存储在存储器(通常称为帧缓冲器) 中作为对应于显示器像素阵列的片断数据阵列。帧缓冲器中的数据接着被用于当要显示图像时设置显示器的像素。在许多图形渲染系统中通常将存在存储最终的片断数据的中间存储器,并且数据从该存储器转移到用于显示的帧缓冲器。例如,在延迟或基于瓦片的渲染系统中,片断数据在转移到帧缓冲器之前将首先存储在一个或多个瓦片缓冲器。即使以立即方式渲染,也可能存在在所渲染片断数据被转移到帧缓冲器之前接收和存储它们的中间缓冲器。渲染过程(至少对于3D图形渲染)的另一个重要方面是确定给定图元的片断是否实际上在显示最后景物时被看到。如本领域已知的,该确定通常是通过使用深度(Z)值来执行的,在图元中的每个片断被渲染时为其设置深度值。因此不但为每个渲染的片断存储RGB和alpha值,还存储深度值。接着,当给定 (x,y)位置的新片断要被渲染时,(例如,因为其属于覆盖相同采样点的不同图元),将其深度值与在存储最终片断值的存储器(例如帧或瓦片缓冲器)中为相关片断位置当前存储的片断的深度值比较,以确定代替当前存储的片断是否能看到新片断。如果新片断将被看见, 其被渲染且其最终片断数据(颜色值等)被存储,以代替为所涉及片断位置存储的现有片断数据。因此,在要显示的给定景物的渲染过程结束时,包括至少颜色(和例如深度)值的片断数据将在片断U,y)位置的阵列上被存储,所述数据将接着被用于给显示器的像素上色以显示景物。在最简单的情况下,其中对于显示器的每个像素存在单个采样点,每个存储的片断位置将对应于在显示器中具有该位置的单个像素(即,在片断和显示器的像素之间存在一对一的映射),使得为片断位置存储的片断数据将用于为在显示设备上具有对应位置的像素设置像素颜色。但是,在超采样和多采样的情况下,在片断和最终显示的像素之间将存在或可能不存在这样一对一的映射。例如,在超采样的情况下,渲染过程将对取得的每个图像样本渲染和存储具有完整片断数据集合的片断(例如在3D图形处理中包括至少颜色值和深度值)。因此例如,对于4x超采样,将对最终显示器中的每个像素渲染四个片断,并且每一个这些片断的片断数据作为单独的片断数据存储。每个所存储的四片断集合的片断数据将接着被适当地组合 (下采样),以给出要用于显示器相关像素的数据集(颜色值)。因此,在该方案中,将为最终显示器中的每个像素存储四个片断数据集合。在多采样的情况下,当将图像栅格化为片断时也为每个像素取得多个样本。但是, 由所涉及图元覆盖的给定像素的所有样本都被栅格化为单个片断(而不是如超采样情况中的单独的片断)。该单个片断接着被渲染,由此为图元所覆盖的像素的所有采样点给出单个、公共的片断数据集合(例如,深度值、颜色值等),如前面那样接着存储所述片断数据集
I=I O尽管超采样和多采样提供了降低锯齿伪像方面的优点,本申请人相信仍存在对已知反锯齿技术的改进范围。
具体实施例方式根据本发明的第一个方面,提供了一种处理要显示的图像的图形图元的方法,该方法包括为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.生成用于渲染图元的图形片断集合,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;渲染为图元所生成的图形片断,以便为每个渲染的图形片断确定片断数据集合; 和在片断数据的阵列中为采样点集合的每个采样点存储渲染片断数据集合,所述采样点集合对应于被发现由图元所覆盖的渲染的图形片断。根据本发明的第二个方面,提供了一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于生成用于渲染图元的图形片断集合的装置,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;用于渲染为图元所生成的图形片断的装置,用于为每个渲染的图形片断确定片断数据集合;和用于在片断数据的阵列中为采样点集合的每个采样点存储渲染片断数据集合的装置,所述采样点集合对应于被发现由图元所覆盖的渲染的图形片断。在本发明中,被渲染的图形片断都对应于原始图像的采样点集合,即使得给定片断可渲染采样点集合中片断共同(即一起、并行同时地)对应的采样点。但是,接着为由图元覆盖的每个采样点存储渲染片断数据集合。本申请人发现,该方案具有多个优点,这将在下面进一步描述。根据本发明的第三方面,提供了一种图形渲染模块,包括渲染器,所述渲染器能够共同渲染由图形图元覆盖的多个采样点;和在渲染器末端的存储缓冲器,所述存储缓冲器为由被渲染器所渲染的图元覆盖的每个采样点存储单独的渲染片断数据集合。根据本发明的第四方面,提供了一种处理图形以供显示的方法,包括共同渲染由图形图元覆盖的多个采样点;和为已经共同渲染的由图元覆盖的每个采样点存储单独的渲染片断数据集合。要显示的图像所取得的采样点集合(并且由此与所渲染的每个片断相关联)可以按期望被选择。如本领域已知的,每个采样点集合(以及由此每个采样点)将表示要显示图像的不同位置(X,y位置)(尽管每个集合中采样点的相关位置(并且通常将会)相同)。如典型情况那样,在图像要显示在具有包括多个像素的显示器的输出设备的情况下,每个采样点集合优选地对应于显示器的给定像素(像素位置)的采样点集合,或者对应于显示器的一部分像素(比如,子像素)的采样点集合。在后一种方案中,多个采样点集合的组优选地构成显示器像素的采样点总集合。在这些方案中,每个片断将有效地为显示器中的给定像素渲染片断数据。采样点集合可以表示(覆盖)要显示的图像的整个区域,或者例如可只表示(和覆盖)要显示的整个图像的一部分。后一种方案将例如用于基于瓦片的渲染系统,其中图像(比如16X 16个像素瓦片)的单独部分(瓦片)被依次渲染并接着被组合以显示最终图像。在该情况下,表示所期望图像的瓦片(部分)的多个采样点集合将用于处理图元,并且如果需要接着对图像的其它瓦片重复该过程。每个采样点集合中的采样点数目可以按所期望的选择。例如,每个采样点集合可实际包括单个采样点。在该情况下,每个片断可例如被设置为对应于显示器的单个像素,即使得渲染过程将有效地被执行而不需要任何超采样或多采样。这个方案因此会有效地处理图像而不需要任何反锯齿。在一个特殊的优选实施例中,每组采样点集合包括多个采样点(即,覆盖图像中的多个采样位置)。采样点的实际数量可按所期望的选择,尽管四是一个优选数量。在每个采样点集合包括多个采样点的情况,采样点(采样模式)的模式和(相关) 位置也按所期望的选择。例如,任何已知适当的反锯齿采样模式可被使用,比如排序的栅格超采样。最优选地,使用旋转的网格超采样,因为其提供更好的采样效果,如本领域已知的。 由此每个采样点在图像中具有唯一的χ和y坐标是优选的。在一个优选实施例中,用于为给定图元采样图像的每个采样点集合相同(S卩,使用相同的采样点数量和模式以及相关位置)。在该情况下,采样点集合对于每个片断将是相同的。在另一个优选实施例中,用于为给定图元采样图像的采样点集合可以有差异和/ 或不同,例如在采样点的数量和/或对每个采样点集合所使用的采样模式或相对位置方面。最优选地,采样点集合可在要用来渲染图元的片断之间不同。在一个特别优选的实施例中,采样点集合(例如与每个片断关联)可在使用中被选择和改变。这为渲染和反锯齿处理提供了灵活性。这种采样点的选择可能例如来自采样模式的预定选择和/或要使用的采样模式在使用中是可编程的。这例如允许一些片断被设置为使用排序的网格采样模式且其它片断被设置为使用旋转的网格采样模式。在这类方案的一个特别优选的实施例中,片断被分组成有多个片断的集合,并且不同的采样模式被用于集合中的每个片断,但是相同的采样模式被用于每个片断集合中的每个相应的片断。例如,有不同采样模式的集合可应用于给定的片断组(例如2X2的片断阵列),但是,该采样模式集合可重复应用于每个相继的片断组。这类方案在有多个片断的组将被下采样到输出显示器的单个像素的情况下特别有用,因为其可例如被用于确保用于每个片断的样本点不需要匹配X或y坐标,即使得用于像素的每个样本在图像中具有唯一的χ和y坐标。在一个优选实施例中,用于渲染图元的每个片断对应于不同的采样点集合。在该方案中,实际上只会生成单个片断并且该单个片断被用来共同渲染每个采样点集合的采样点,即使得渲染过程将有效地以多采样方式执行,并且每个片断共同渲染(不同)采样点集合的(多个)采样点。 在另一个优选实施例中,对于给定的采样点集合,一个以上的片断被或能够被生成和渲染。这允许一个以上的片断被用于渲染采样点集合,而不是用单个片断来共同渲染采样点集合的所有采样点。最优选地,在该方案中,对应于相同采样点集合的每个片断用于为采样点集合的不同采样位置渲染数据。这类方案具有增加不同颜色(纹理)样本的数量的效果,这些样本是将为多个片断都对应的采样点集合所生成的(因为将为每个被渲染的片断采用单独的颜色(纹理)样本),并因此允许渲染过程以更类似于超采样的方式操作。因此,在优选实施例中,系统可有选择地为给定的采样点集合生成用于渲染的一个以上的片断。在这种方案中,优选地,为采样点集合的每个采样点(或至少为由图元覆盖的每个采样点)生成一个片断,即使得将为采样点集合的每个不同采样点渲染单独的片断。在该情况下,渲染过程将有效地以超采样的方式执行,因为单独地(通过渲染不同的片断)为采样点集合的每个(覆盖的)采样点生成片断数据集合(以及颜色值(样本))。在这些方案中,在为采样点集合的不同采样点生成多个片断时,优选的是,只为由图元实际覆盖的样本点生成片断,如此避免了对实际将不用于所涉及图元的片断进行渲染的需要(因为它们与没有由图元覆盖的采样点有关)。因此,在这些方案中,优选地为由图元覆盖的采样点集合的每个采样点生成一个片断(但是,不为没有由图元覆盖的采样点生成片断)。因此,在一个优选实施例中,系统能够且优选地为给定的采样位置集合有选择地生成多个片断,最优选地,是基于被确定为由所涉及图元覆盖的采样位置集合的采样位置数量来生成(且优选地使得当存在发现为被覆盖的采样位置时,生成相同数量的片断)。在一个特别优选的实施例中,本发明的系统由此包括用于确定在一个或每个采样点集合中多少采样点由图元覆盖,并接着为被发现由图元所覆盖的给定或每个采样点集合中的每个采样点生成用于渲染的片断的步骤或装置。在一个特别优选的实施例中,本发明的系统可优选地有选择地被配置为且优选地在使用中被配置为要么只为要被渲染的采样点集合(例如被发现包括由图元覆盖的采样点)生成只用于渲染的单个图形片断,要么能够为要渲染的采样点集合(例如被发现包括由图元覆盖的采样点)生成用于渲染的多个图形片断(如果需要的话,例如因为集合中一个以上的采样点被覆盖)。优选地,系统能够以这种方式根据例如每图元、每绘制调用和/ 或每景物来配置。最优选地,渲染器要被设置的渲染状态可用于设置系统在哪个配置中操作。所相信的是,这些方案在其自身方面可以是新的或有利的。因此,根据本发明的第五方面,提供了一种处理要显示的图像的图形图元的方法,该方法包括为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.
^ \\\ 有选择地为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的单个图形片断或多个图形片断;
9
渲染为图元所生成的一些或所有图形片断,以便为每个渲染的图形片断确定片断数据集合;和在片断数据的阵列中存储一些或所有渲染片断数据。根据本发明的第六方面,提供了一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于有选择地为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的单个图形片断或多个图形片断的装置;用于渲染为图元所生成的一些或所有图形片断的装置,用于为每个渲染的图形片断确定片断数据集合;和用于在片断数据的阵列中存储一些或所有渲染片断数据的装置。根据本发明的第七方面,提供了一种操作图形渲染系统的方法,其中该系统能为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点,该方法包括将图形系统配置成总是为被发现包括有由图元所覆盖的采样点的采样点集合生成只用于渲染的单个图形片断;或将图形系统配置成能够为被发现包括有由图元所覆盖的采样点的采样点集合生成用于渲染的多个图形片断。根据本发明的第八方面,提供了一种图形渲染系统,包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于将图形系统配置成总是为被发现包括有由图元所覆盖的采样点的采样点集合生成只用于渲染的单个图形片断的装置;和用于将图形处理器配置成能够为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的多个图形片断的装置。本领域技术人员将会理解,本发明的这些方面和实施例能够且优选地适当包括这里所描述的本发明的任意一个或多个或所有的优选和可选特征。因此,例如,为被发现包括有由图元所覆盖的采样点的每个采样点集合有选择地生成用于渲染的单个图形片断或多个图形片断的步骤或装置优选地包括用于确定图元覆盖了多少采样点集合中的采样点的步骤和装置,并且在图元只覆盖了采样点集合中的一个采样点的情况下,为该采样点集合生成用于渲染的单个图形片断,但是在图元覆盖了采样点集合中一个以上的采样点的情况下,为该采样点集合生成用于渲染的多个图形片断。在这些方案中,按期望为给定采样点集合生成用于渲染的多个片断。在一个优选实施例中,要为采样点集合渲染的每个片断被设置为共同具有某个片断数据(即,至少初始被设置为对于每个片断相同的数据)。这简化了片断的生成。优选地,每个片断的(至少)任何初始(例如,预先的颜色采样)的红、绿和蓝色值,alpha(透明度)值(如果提供的话),以及Z (深度)值被设置为相同。但是,其它分段数据,比如要与每个片断关联的(所覆盖的)采样点将会且应当在每个片断之间自然变化。
因此,在一个特殊的优选实施例中,在要为采样点集合生成多个片断的情况下,仍然首先为采样点集合生成单个片断,并接着生成具有与初始片断一样(例如,从其拷贝)的某个片断数据的多个片断(例如,与所覆盖的集合中的采样点一样多),并接着生成多个所发送的用于渲染的片断。在这些方案中,优选地生成和渲染多个新的片断,以替换初始的片断,但是还有可能例如与一个或多个附加生成的片断一起保留和渲染初始片断(由此提供全部被渲染的多个片断)。因此,在一个优选实施例中,首先为被发现包括有由图元所覆盖的采样点的采样点集合生成单个片断,并且接着,如果期望(例如,系统被配置为以这种方式操作),则确定采样点集合实际上是否包括由图元覆盖的一个以上的采样点,并且如果是,则为该采样点集合生成用于渲染的有多个片断的新集合,这些片断优选地包括与初始为该采样点集合生成的单个片断一样的至少一些数据。再次认为,这些方案在其自身方面可以是新的和有利的。因此,根据本发明的第九方面,提供了一种处理要显示的图像的图形图元的方法, 该方法包括为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.
^ \\\ 为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的图形片断;为被发现包括有由图元所覆盖的一个以上的采样点的那些采样点集合生成多个图形片断,所述多个图形片断具有与先前为该采样点集合生成的图形片断一样的至少一些片断数据;渲染为图元所生成的图形片断,以便为每个渲染的图形片断确定片断数据集合; 和在片断数据的阵列中存储一些或所有渲染的片断数据。根据本发明的第十方面,提供了一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的图形片断的装置;用于为被发现包括有由图元所覆盖的一个以上的采样点的那些采样点集合生成多个图形片断的装置,所述多个图形片断具有与先前为该采样点集合生成的图形片断一样的至少一些片断数据;用于渲染为图元所生成的图形片断的装置,用于为每个渲染的图形片断确定片断数据集合;和用于在片断数据的阵列中存储一些或所有渲染的片断数据的装置。根据本发明的第十一方面,提供了一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该
11采样点的装置;用于为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的图形片断的装置;用于为被发现包括有由图元所覆盖的一个以上的采样点的采样点集合有选择地生成多个图形片断的装置;用于渲染为图元所生成的图形片断的装置,用于为每个渲染的图形片断确定片断数据集合;和用于在片断数据的阵列中存储一些或所有渲染的片断数据的装置。根据本发明的第十二方面,提供了一种图形渲染模块,包括渲染器,所述渲染器可共同渲染由图形图元覆盖的多个采样点;和用于有选择地共同或个别地渲染由图形图元覆盖的采样点的装置。本领域技术人员将会理解,本发明的这些方面和实施例能够且优选地适当包括这里所描述的本发明的任意一个或多个或所有的优选和可选特征。因此,例如,为被发现包括有由图元所覆盖的一个以上采样点的采样点集合生成的多个图形片断包括“新”生成的片断(具有与较早的片断一样的数据),但是相反,可由“原始”片断连同一个或多个“新”生成的片断组成。类似地,在采样点集合被发现只包括一个覆盖的采样点的情况中,则优选地将初始生成的单个片断用作为用于渲染该采样点集合的单个片断。在本发明的这些方面和实施例的特殊优选的方案中,用于有选择地生成多个用于渲染的图形片断的装置或步骤包括用于接收已经为被发现包括有由图元覆盖的采样点的采样点集合初始生成的图形片断的装置或步骤,确定与该片断对应的采样点集合是否包括由图元覆盖的一个以上的采样点,并且如果是,则为该采样点集合生成用于渲染的有多个片断的集合。优选地,如上所述,如果生成了有多个片断的集合,则该集合包括新片断的集合,集合中的每个片断优选地具有与初始片断一样的至少一些片断数据。如果确定与初始片断对应的采样点集合只包括单个覆盖的采样点,则优选地保留和发送初始片断以便渲染,尽管如果期望,相反可生成对应于初始片断的新片断。另一方面,如果确定采样点集合包括覆盖的一个以上的采样点,则优选地生成和发送与所覆盖的采样点的数量相对应的有多个片断的集合以便渲染,并且集合中的每个片断对应于一个所覆盖的采样点。所相信的是,这些方案在其自身方面可以是新的和有利的。因此,根据本发明的第十三方面,提供了一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于为被发现包括有由图元所覆盖的采样点的采样点集合生成用于渲染的单个图形片断的装置;和用于确定被发现包括有由图元所覆盖的采样点的采样点集合是否包括由该图元覆盖的一个以上的采样点,并且如果是,则用于为所述采样点集合生成用于渲染的有多个片断的集合的装置。根据本发明的第十四方面,提供了一种处理要显示的图像的图形图元的方法,该方法包括
为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.
^ \\\ 为被发现包括有由图元所覆盖的采样点的采样点集合生成用于渲染的单个图形片断;和确定被发现包括有由图元所覆盖的采样点的采样点集合是否包括由该图元覆盖的一个以上的采样点,并且如果是,则为所述采样点集合生成用于渲染的多个片断的集合。而且,本发明的这些方面能够且优选地包括这里所描述的本发明的任意一个或多个或所有的优选和可选特征。在一个特殊的优选实施例中,用于为采样点集合有选择地生成多个图形片断的装置可例如根据每图元、每片断、每绘制调用、每瓦片或每景物等(或它们任意的组合)来有选择地包括在渲染过程中或从该过程省略(旁路)。这便于将系统配置为以这种方式或不以这种方式操作。最优选地,提供执行这些功能且可有选择地包括在渲染过程(例如流水线)中或有选择地在渲染过程(流水线)中被旁路的功能设置或单元。这便于例如对给定的片断、图元、绘制调用和/或景物等有选择地省略该功能(例如通过旁路该功能单元)。为渲染图元而生成的图形片断集合应当包括足够用于渲染图元以供适当显示的片断。因此,例如,在已知一部分图元实际上将不会在最终显示中被看见的情况下,不需要为这部分图元生成片断。同样地,即使已经为一个图元生成了片断,所优选的也是,不渲染实际上不会在最终图像中被看见的任何片断。因此,在一个优选实施例中,本发明包括用于确定任何给定的片断是否可能或将会在最终图像中被看到(例如优选地,将代替其数据已经存储在片断阵列中的片断而被看见)的步骤或装置,并且如果确定片断可能或将会被看到,则只渲染该片断。至少在3D图形系统中,这样的确定可能且优选地基于对片断的深度值的评估,如本领域已知的。为每个片断和采样点确定和存储的片断数据可以是任何适合的这样的数据。其至少应当包括适当的颜色和/或透明度数据,比如RGB和alpha值,以例如允许显示器的像素被适当的显示。(这里应当理解,这里所指的“颜色数据”包括适当的灰度码或类似的数据, 比如对于单色或黑白显示器所使用的。)在至少处理三维图形的情况中,被确定和存储的片断数据优选地还包括片断的深度(Z)值(以及由此用于一个或多个所涉及的样本位置)。其它片断数据,比如所谓的模板数据(stencil data)也可(并优选地)被适当地确定和存储(并且如果期望)。渲染的片断数据被存储在片断数据阵列中。如上所述,对于由图元覆盖的每个采样点,单独的渲染的片断数据集合被或能够被存储在片断阵列中。如本领域所知道的,该阵列应当表示例如片断位置的二维阵列,其可接着被适当的处理以例如显示像素的2D阵列。 如在本发明中,为每个样本位置存储片断数据集合,片断数据的阵列将对应于要显示的图像的样本位置阵列。如本领域技术人员将理解的,虽然最后的片断数据阵列将为每个采样位置存储渲染的片断数据集合以便随后显示,但是给定图元的所有渲染片断数据将存储在片断数据阵列中的情况是不必要的。例如,如果为一个图元渲染一个片断,但是接着确定了(例如通过使用深度比较测试,如本领域中已知的)片断位置处将看不到所涉及的图元(例如因为咬合所渲染图元的图元的片断数据已经存储在片断数据阵列中),那么对于咬合的一个或多个样本位置渲染片断的数据优选地不会并且将不会实际上存储在片断数据阵列中。因此, 实际中,如本领域已知的,如果在已经渲染了片断之后确定了与片断有关的图元实际上将不会在有关的片断位置和/或样本位置看到,则渲染的片断数据优选地不存储在片断数据阵列中。因此在实际中,至少一些,但不必是所有的给定图元的渲染片断数据将趋于存储在片断数据阵列中,尽管在图像的整个图元集合中将存在为片断数据阵列中每个位置(例如样本位置)存储的渲染片断数据集合。存储在片断阵列中的片断数据集合可以任何适当方式存储。如本领域技术人员将理解的,它们优选地存储在对应于它们所表示的图像中的采样位置的片断阵列中的位置, 以便于数据的后续处理以供显示。将会理解,尽管在许多情况中,图元将覆盖采样点集合中片断对应的所有采样点, 在一些情况中可能不是这样,使得只有一些但不是所有与片断关联的样本点将由图元覆盖。在后一种情况下,片断的渲染片断数据将用于那些由该图元覆盖的采样点,但不用于那些没有由图元覆盖的采样点(因为这些采样点实际中将不会由图像的另一个图元覆盖)。 因此,例如不存在为没有由图元覆盖的那些采样点将渲染的片断数据存储在片断数据阵列中的需要。因此,在一个优选的实施例中,为片断渲染的片断数据能够并且优选地选择性地存储在片断数据阵列中(并且尤其存储在阵列中与采样点集合对应的样本位置中,该采样点集合对应于片断)。这种选择性存储可例如包括只为采样点集合中片断所对应的且实际上由图元覆盖的那些采样点存储渲染的片断数据到片断数据阵列中(即,使得对于采样点集合中片断所对应的每个所覆盖的采样点,渲染片断的单独的片断数据集合将存储在片断数据阵列中,但是对于没有由图元覆盖的样本位置,渲染的片断数据将不被存储)。可替换地或附加地,在例如为每个样本位置集合渲染多个片断的情况下,对于所选择的一个或多个与片断对应的且由图元覆盖的采样点,能够存储为多个片断中的每一个渲染的片断数据(例如使得多个片断的每一个用于为所涉及的采样点集合的一个不同的所覆盖的采样点生成渲染的片断数据)。因此,在一个特别优选的实施例中,每个图形片断已经与其数据关联,以指明应当为采样点集合中与片断对应的哪些采样点,将渲染的片断数据存储在片断数据阵列中(即实际上,片断正用于渲染采样点集合中与片断对应的哪些采样点)。该系统接着优选地操作用于为各个所选择的样本位置,但不为与该片断关联的剩余的样本位置将渲染的片断数据存储在片断数据阵列中。指明片断正用于渲染哪些采样点的信息优选地与片断中穿过渲染器的片断数据 (比如,片断的RGB和alpha值)关联或是其一部分。优选地是,以覆盖掩码的形式指明,对于样本位置集合中与片断关联的每个样本位置,片断是否正用于渲染该样本点(即应当为该样本点存储其数据)。该方案已经被发现是一个尤其方便的方式来将给定的片断与适当的样本点相关联,并且便于本发明的其它优选操作,比如上述的那些操作。例如,指明片断正用于渲染哪些样本点的数据可用于确定有多少渲染片断数据的副本需要存储在片断数据阵列中,和数据应当存储于其中的片断数据阵列的位置。
该方案还可用于如上所述的方便为给定的采样点集合生成用于渲染的多个片断 (例如,当确定了图元覆盖采样点集合中一个以上的采样点时)。尤其,在这种情况出现且生成多个片断时,与每个片断关联的样本点数据,例如覆盖掩码可被适当改变以指明每个片断实际上与哪个样本点(或多个样本点)有关。相信这些方案其自身可以是新的和有利的。因此,根据本发明的第十五方面,提供了一种处理要显示的图像的图形图元的方法,该方法包括为要显示图像的采样点集合的每个采样点确定图元是否覆盖了该采样点;生成用于渲染图元的图形片断集合,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;关联每个图形片断信息,以指明片断对应的采样点集合中的哪些采样点由该片断共同渲染;渲染一些或所有图形片断,以便为每个渲染的片断确定片断数据集合;和对于一个或多个渲染的片断,存储每个采样点的渲染片断的渲染片断数据集合, 与该片断关联的信息指明所述每个采样点由该片断共同渲染。根据本发明的第十六方面,提供了一种处理要显示的图像的图形图元的设备,包括用于为要显示图像的采样点集合的每个采样点确定图元是否覆盖了该采样点的装置;用于生成用于渲染图元的图形片断集合的装置,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;用于关联每个图形片断信息,以指明片断对应的采样点集合中的哪些采样点由该片断共同渲染的装置;用于渲染一些或所有图形片断的装置,用于为每个渲染的片断确定片断数据集合;和用于为渲染片断存储每个采样点的渲染片断的渲染片断数据集合的装置,与该片断关联的信息指明所述每个采样点由该片断共同渲染。如将由本领域技术人员理解的,当每个片断被渲染时,将进行适当的上色和/或纹理操作。因此,将需要的是,确定来自图像的一个或多个适当的颜色样本,以允许每个片断被适当地渲染。该颜色采样可以任何适当的方式执行。在一个特别优选的实施例中,当每个片断被渲染时,颜色采样是以每片断的基础来执行的。当片断达到渲染过程的纹理映射阶段时,这可能且优选地作为纹理“查找”的一部分对该片断来执行。(如本领域已知的,当渲染图形片断时,在该过程中将通常存在一个阶段,被称为纹理映射,其中将基于例如已经为所涉及的片断设置的纹理坐标(s,t),来确定和设置用于片断的颜色和纹理。)在这样的方案中,每个片断将有效地为其对应的采样点集合提供单个颜色(文本)查找,即使得各个片断可被当作为以多采样的方式操作(即,对与片断关联的(多个)采样位置的单个颜色(纹理)查找)。优选地从所涉及图像内的单个位置取得用于每个片断的颜色样本(例如,纹理查找)。该样本位置例如能够对应于所取得的位置样本之一以确定图元的覆盖,或者例如能够在所涉及的位置采样模式(例如像素)的中心处取得。
最优选地,在由采样模式(例如像素,其中每个采样模式对应于一个像素)覆盖的区域中从适当加权或选择的位置取得颜色样本。在使用颜色采样位置这样的“加权”的情况下,加权(选择的)位置是优选地基于片断正用于渲染的(所覆盖的)采样点的位置的。因此,在一个特别优选的实施例中,根据所涉及片断正用于渲染的所覆盖采样点来确定颜色样本位置。因此例如,如果采样点集合中的所有采样点由图元覆盖,并且单个片断正用于共同渲染那些采样点,则优选地从采样模式的中心位置取得颜色样本。类似地, 如果片断只表示单个覆盖的采样点,则优选地在采样点位置取得颜色样本。如果片断表示两个覆盖的采样位置,接着优选地从与颜色样本有关的适当位置来取得那些颜色样本(例如,朝着那两个样本的位置加权),等等。要使用的颜色样本位置例如可以在使用中基于与每个片断关联的所覆盖样本点来计算,和/或用于每个给定样本点覆盖模式的颜色样本位置可以被预定且接着将预定的颜色样本位置集合(例如,与它们对应于的覆盖模式的适当标识符一起)例如存储在查找表中,以允许渲染器在使用中为片断获取适当的颜色样本位置。在一个优选实施例中,渲染过程等被预配置成使用给定的采样模式(和颜色样本位置(或位置集合))并接着在渲染片断时应用该模式等到所有片断。这便于该渲染过程生成片断数据并接着存储该数据到片断数据阵列中的适当位置。在一个可替换的实施例中,每个片断可以与其数据关联,以指明用于片断的采样模式和/或要用于片断的颜色样本位置。将会理解,利用上述方案,本发明可有效地以多种反锯齿模式来操作,比如多采样、超采样或不启用反锯齿模式。例如,如果每个片断用于共同渲染多个样本点,则图像将有效地以多采样方式来处理。另一方面,如果为每个采样点集合(例如像素)只设置单个采样点,则图形处理可有效地以非多采样方式来执行,即不利用反锯齿。等效地,通过在被发现由每个采样点集合的图元覆盖的片断之上为每个样本点生成附加的片断,系统能够有效地以超采样方式来操作。因此,在一个特别优选的实施例中,一个或多个和优选地,所有上面的采样和/或反锯齿选项,比如采样点的数量或要使用的采样模式,以及在由图元覆盖了采样点集合的一个已上的采样点的情况下是否生成附加的片断,能够有选择地在使用中被启用或禁用。 因此,本发明的方法或设备优选地还包括选择或设置要使用的采样模式和/或反锯齿模式 (并例如用于适当地配置渲染器)的装置或步骤。最优选地,以逐个图元为基础(即对于个别图元或对于图元集合)可选择和设置采样和/或反锯齿模式。实际上本发明的图像处理方案的特殊优点在于,它允许能使用的反锯齿和采样技术中的灵活性,并且进而能允许反锯齿和/或采样模式在使用中被选择和可变化。因此,根据本发明的第十七方面,提供了一种图形渲染模块,包括用于将渲染模块配置成利用多个不同的反锯齿和/或采样模式来渲染显示器的图形图元的装置。根据本发明的第十八方面,提供了一种图形渲染模块,包括用于选择性地改变要用于渲染显示器的图形图元的采样模式和/或反锯齿模式的装置。
根据本发明的第十九方面,提供了一种图形渲染模块,该图形渲染模块能被配置成使用不同的采样和/或反锯齿模式来渲染图形图元并包括用于通过利用不同的反锯齿和/或采样模式来渲染显示器的不同图形图元的装置。根据本发明的第二十方面,提供了一种图形渲染模块,其中显示器的不同图形图元能以多个不同的反锯齿和/或采样模式被渲染,并且该渲染模块包括用于确定在渲染图元时要使用的反锯齿和/或采样模式的装置。根据本发明的第二十一方面,提供了一种操作图形渲染模块的方法,其中显示器的图形图元可用多个不同的反锯齿和/或采样模式而被渲染,该方法包括确定在渲染图元时要使用的反锯齿和/或采样模式;和利用所确定的反锯齿和/或采样模式来渲染图形图元。在本发明的这些方面和方案中,图形图元可优选地如上面讨论的那样以多采样的方式或以超采样的方式,或不启用反交错模式而被被渲染。可按所期望的选择为哪个图元使用哪个反锯齿模式。例如,超采样在3D图形处理中对所谓的“alpha”纹理和“alpha穿通”纹理是特别有用的。(这是因为在这样的纹理中,如本领域已知的,甚至在多采样方案中将遇到可导致锯齿伪像的透明和不透明部分。但是,超采样可帮助减弱这样的锯齿。)但是,对于其它纹理,超采样可不是如此必要的。因此,在一个优选实施例中,渲染过程被设置成对alpha纹理图元执行“超采样”,但不对所有其它图元执行多采样。反锯齿和/或采样模式可在使用中以任何适当的方式被设置。在一个优选实施例中,一个或多个给定的图元可与特殊的反锯齿和/或采样模式关联。最优选地,要使用的反锯齿和/或采样模式被定义为渲染状态中为一个或多个图元所定义的部分。如本领域已知的,为了能够执行正确的渲染操作,渲染操作的每个阶段需要被适当配置,即被设置成正确的所谓“渲染状态”。渲染状态确定渲染过程的各阶段如何对每个片断进行操作,并且通常例如确定要用于渲染图形片断的混和模式、模板缓冲器操作、纹理功能、纹理映射信息、ζ测试模式、RGBa缓冲器写模式等中的一个或多个。它还可以用于例如指明要使用的栅格化模式。在本发明中,其还将用于为所涉及的一个或多个图元设置反锯齿和/或采样模式。在具有给定反锯齿和/或采样模式的图元要被渲染的情况下,则渲染过程的所有阶段可首先被配置成所期望的反锯齿和/或采样状态,并且接着造成图形片断渲染(以类似于如下方式来渲染,该方式是在许多图形处理系统中,在图形片断被发送到渲染器之前整个渲染器将被配置成单个渲染状态)。但是,在一个特别优选的实施例中,要渲染的图形片断与其所期望的反锯齿和/ 或采样模式关联,并且渲染器的渲染单元接着使用该关联性来在渲染单元接收片断时确定它们为渲染片断应使用的反锯齿和/或采样模式。换句话说,当渲染单元接收到用于渲染的片断时,其基于与片断已经关联的采样和/或反锯齿模式来确定要用于该片断的采样和 /或反锯齿模式,并且接着由此渲染片断。这避免了需要在渲染任何片断之前将整个渲染器配置成给定的采样或反锯齿模式。这还意味着,渲染器的渲染单元可有效地都将它们本身配置成它们当前片断所要求的采样或反锯齿模式,其独立于渲染器中剩余渲染单元当前的一个或多个采样或反锯齿模式。因此,根据本发明的第二十二方面,提供了一种图形处理器,包括渲染器,用于渲染图形片断以供显示,并且包括可被配置成不同采样和/或反锯齿模式的一个或多个渲染单元;用于关联要渲染的图形片断和可能的采样和/或反锯齿模式之一的装置;和用于将已经与采样和/或反锯齿模式关联的图形片断发给渲染器的渲染单元以供渲染的装置;其中渲染器的一个或多个渲染单元包括用于确定与要渲染的图形片断关联的采样和/或反锯齿模式的装置;和用于根据所确定的采样和/或反锯齿模式配置渲染单元的装置。因此,根据本发明的第二十三方面,提供了一种操作具有渲染器的图形处理器的方法,所述渲染器包括一个或多个用于渲染图形片断以供显示的渲染单元,该方法包括关联要渲染的每个片断和要用于渲染片断的采样和/或反锯齿模式;和渲染单元,当它接收要渲染的片断时确定与该片断关联的采样和/或反锯齿模式,所述渲染单元根据所确定的采样和/或反锯齿模式被配置,并且对接收的片断执行其渲染操作。图形片断能够以任何适当的方式与给定的反锯齿和/或采样模式关联。最优选地,每个片断被分配一个标志或索引指针,其与片断一起“穿过”渲染器并指明要用于该片断的反锯齿和/或采样模式。渲染单元可接着使用片断的采样和/或反锯齿标志或指针来为片断确定适当的采样和/或反锯齿模式(例如,以从存储该数据的存储器中获取适当的采样和/或反锯齿数据)。采样和/或反锯齿标志或指针优选地与其它用于“穿过”渲染器的片断的数据(比如其RGBa值)关联。标志或指针可识别实际的要使用的反锯齿和/或采样模式,但是在一个优选实施例中,如将在下面讨论的,不这样做,而是简单地指明(指向)存储相关数据集合的存储器单元。这降低了标志或指针的复杂性,因为潜在地其不需要区别可使用的所有可能的采样和/或反锯齿模式。在一个特别优选的这种实施例中,要渲染的图元与要用来渲染该图元的反锯齿和 /或采样模式关联(并用其来标记)(因为通常利用相同的单个反锯齿和/或采样模式来整体渲染给定的图元),并接着,当图元被栅格化成片断时,每个片断被分配有分配给图元的反锯齿和/或采样模式指针或标志。因此优选地,将图元栅格化成片断被用于将片断与其对应的反锯齿和/或采样模式关联。如本领域已知的,所存储的片断数据阵列将需要进一步被处理以供在输出设备上显示,并且特别地,通常将需要“下采样”所存储的片断数据成适当的最终输出的离散数据值的集合,比如显示器的像素阵列的像素数据。该下采样能以任何适当的方式执行,比如通过使用在现有超采样或多采样方法中使用的缩放和下过滤技术。因此,当存储在片断阵列中的数据被回写到显示器的帧缓冲器以准备供其显示时,下采样(将存储的片断数据组合成更小的数据值)优选地在“回写”过程中发生。
在一个特别优选的实施例中,应用于片断数据的下采样水平可在使用中被选择。 最优选地,提供两个连续的下采样阶段,其中之一或两个可被激活。每个下采样阶段优选地将其输入数据下采样相同的量。所应用的下采样的实际水平可按期望被选择。但是,例如在每像素使用四个位置样本点的情况下,则每个连续的下采样阶段优选地以四的因子进行下采样。这将提供4x下采样(如果只有一个阶段被激活)或者如果两个阶段都被激活,则提供16x下采样( 下采样之后接着另一个4x下采样)。为显示改变下采样的数据量的这种能力还增强了采样和反锯齿过程的灵活性,因为其例如允许以不同的速率(取决于例如片断渲染是以多采样还是以超采样的方式来执行)采样边缘和颜色。可优选地以逐帧(就如本领域中已知的,其通常将是用于要下采样的图像的各个帧的数据)的基础来设置和选择下采样的水平。在提供两个连续水平的下采样的情况下, 最优选地,下采样的一个水平总是被激活,而下采样的第二个水平可通过使用为每帧设置的寄存器有选择地被应用。所相信的是,这些方案在其自身方面可以是新的和有利的。因此,根据本发明的第二十四方面,提供了一种处理图像以供在包括多个像素的显示设备上显示的方法,该方法包括渲染表示图像的图形片断,以便为片断生成片断数据;存储渲染的片断数据阵列;下采样存储的片断数据以提供像素数据阵列,用于在显示设备上显示图像;其中下采样水平可改变,并且该方法还包括选择要在渲染的片断数据上使用的下采样水平。根据本发明的第二十五方面,提供了一种处理图像以供在包括多个像素的显示设备上显示的设备,该设备包括用于渲染表示图像的图形片断的装置,用于为片断生成片断数据;用于存储渲染的片断数据阵列的装置;用于下采样存储的片断数据以提供像素数据阵列的装置,用于在显示设备上显示图像;其中下采样水平可改变,并且该设备还包括用于选择要在渲染的片断数据上使用的下采样水平的装置。下采样数据(例如被写到帧缓冲器),还优选地例如在它被写到帧缓冲器之前被 gamma校正。(如本领域中已知的,由于显示屏幕的特性,例如亮度等,要显示的图像的图形颜色数据将通常需要对其进行修改以便在显示屏幕上正确地显示图像。考虑到此而校正所生成数据的过程被称为gamma校正)。该gamma校正能以本领域中已知的任何适当方式来执行。尽管已经主要参考单个图形图元的处理来描述了本发明,但本领域技术人员将理解的,要显示的图像将通常由多个图元组成并因此在实际中,本发明的方法将对组成显示器的每个图元重复,使得最终已经为需要显示整个图像(或图像的相关部分。例如在基于瓦片的渲染系统中)的图像的每个采样点生成适当的片断数据集合,该数据接着可被下采样以供显示。至少在3D图形处理的情况下,还需要确定图元是否实际上在每个样本点被看到 (例如图元重叠之处)。因此,根据本发明的第二十六方面,提供了一种处理要显示的图像的图形图元的方法,该方法包括为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.
^ \\\ 生成用于渲染图元的图形片断集合,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;确定每个所生成的图形片断是否可能或将会在所显示的图像中被看到;渲染为所确定的可能或将会在所显示的图像中被看到的图元生成的图形片断,以为每个这种图形片断确定片断数据集合;和对于与被发现由图元所覆盖的所渲染图形片断对应的采样点集合中的每个采样点,在片断数据阵列中存储渲染的片断数据集合。根据本发明的第二十七方面,提供了一种用于处理要显示的图像的图形图元的设备,该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于生成用于渲染图元的图形片断集合的装置,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;用于确定每个所生成的图形片断是否可能或将会在所显示的图像中被看到的装置;用于渲染为所确定的可能或将会在所显示的图像中被看到的图元生成的图形片断的装置,用于为每个这种图形片断确定片断数据集合;和用于对于与被发现由图元所覆盖的所渲染图形片断对应的采样点集合中的每个采样点,在片断数据阵列中存储渲染的片断数据集合的装置。在本发明的这些方面和实施例中,确定图形片断是否将会或可能在所显示的图像中被看到优选地包括执行适当的深度测试,如本领域已知的,以确定图元(片断)是否实际上将在所涉及的位置上被看到。因此,在一个特别优选的这样的实施例中,当片断阵列的给定样本位置的片断要被渲染时,其深度值优选地与已经存储在片断阵列中的该样本位置的任何片断数据的深度值相比较,并且如果深度值比较指明新的片断将代替现在存储的片断而被看到,则只渲染新的片断(并且将其数据存储在片断阵列中)。根据本发明的第二十八方面,提供了一种处理图像以供显示的方法,其中要显示的图像被划分成用于处理的一个或多个图形图元,并且用于显示图像的片断数据被生成且被存储为对应于图像样本位置阵列的片断数据阵列,该方法包括生成有一个或一个以上的图形片断的集合,用于渲染图像的每个图元,每个片断对应于图像的采样点集合并用于共同渲染由采样点集合的图元所覆盖的一个或一个以上的采样点;
渲染一些或所有生成的图形片断,以便为每个渲染的片断生成渲染的片断数据集合;和对于一些或所有渲染的片断,在片断数据阵列中存储在片断数据阵列的一个或多个位置处的渲染片断的渲染片断数据的副本,所述一个或多个位置对应于片断被共同渲染的一个或多个样本位置。根据本发明的第二十九方面,提供了一种用于处理包括一个或多个图形图元的图像以供显示的设备,该设备包括用于存储与图像的样本位置阵列对应的片断数据阵列的装置,用于生成有一个或一个以上的图形片断的集合的装置,用于渲染图像的每个图元,每个片断对应于图像的采样点集合并用于共同渲染由采样点集合的图元所覆盖的一个或一个以上的采样点;渲染一些或所有生成的图形片断的装置,用于为每个渲染的片断生成渲染的片断数据集合;和用于在片断数据阵列中存储在片断数据阵列的一个或多个位置处的渲染片断的渲染片断数据的副本的装置,所述一个或多个位置对应于片断被共同渲染的一个或多个样本位置。如从上将会理解的,本发明的这些方面可以且优选地包括这里描述的本发明的一个或多个或所有的优选和可选特征。因此,例如,在适当的情况下,将把要渲染的新片断 (来自新的图元)的深度值优选地与已经为所涉及的样本位置存储的片断(如果有的话) 的深度值比较,以确定新的片断是否应当被渲染。类似地,所存储的渲染片断数据阵列优选地被下采样以提供例如像素数据,其可用于显示最终的图像。将从上面理解,在本发明的操作中,取得要显示的图像(或一部分的图像)的多个样本,并且为图像的每个样本存储单独的片断数据集合。但是,尽管为每个样本存储单独的数据集合,但可以(且优选地)共同渲染这些样本。因此,根据本发明的第三十方面,提供了一种处理图像以供显示的方法,包括取得要显示的所有或一部分图像的多个样本;渲染样本以生成渲染的样本数据,其中样本中的至少两个被共同渲染;和为图像或一部分图像所取得的每个样本,存储渲染的样本数据集合。根据本发明的第三十一方面,提供了一种处理图像以供显示的设备,包括用于取得要显示的所有或一部分图像的多个样本的装置;用于渲染样本的装置,用于生成渲染的样本数据;和用于为图像或一部分图像所取得的每个样本,存储渲染的样本数据集合的装置; 其中用于渲染样本的装置包括用于共同渲染图像样本的装置。根据本发明的第三十二方面,提供了一种处理要显示的图像的图形图元的方法, 该方法包括为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样占.
^ \\\ 为被发现包括有由图元所覆盖的采样点的每个采样点集合,生成用于渲染的一个或多个图形片断,每个图形片断对应于由该图元所覆盖的采样点集合的一个或一个以上的采样点;渲染为图元生成的一个或多个图形片断,以便为每个渲染的图形片断确定片断数据集合;和对于片断所对应的每个所覆盖的采样点,在一个或多个渲染的图形片断的片断数据阵列中存储渲染片断的渲染片断数据的副本。根据本发明的第三十三方面,提供了一种处理要显示的图像的图形图元的设备, 该设备包括用于为要显示图像的多个采样点集合的每个采样点确定图形图元是否覆盖了该采样点的装置;用于为被发现包括有由图元所覆盖的采样点的每个采样点集合,生成用于渲染的一个或多个图形片断的装置,每个图形片断对应于由该图元所覆盖的采样点集合的一个或一个以上的采样点;用于渲染为图元生成的图形片断的装置,用于为每个渲染的图形片断确定片断数据集合;和用于对于片断所对应的每个所覆盖的采样点,在片断数据阵列中存储渲染片断的渲染片断数据的副本。在特别优选的实施例中,可在单个图形处理平台上执行本发明的各种功能,该单个图形处理平台生成和输出写到显示设备的帧缓冲器的数据。因此特别地,在该数据被输出到显示设备的帧缓冲器之前,对于下采样所存储的帧数据到“像素数据”来说优选的是在该图形处理平台上被执行,如此降低了必须从图形平台输出的数据容量。实际上,相信在将数据输出到用于显示的显示设备的单独的外部帧缓冲器(即, 其不在图形处理平台上)之前,提供图形处理方案是尤其有利的并且进而在其自身方面是新的和有利的,其中在图形处理平台上执行所有图形处理,包括任何后渲染向下采样。因此,根据本发明的第三十四方面,提供了一种处理图形以供显示的方法,包括在图形处理平台上渲染一个或多个图形片断,以生成供显示的渲染片断数据;在图形处理平台上下采样渲染的片断数据;和将来自图形处理平台的下采样片断数据输出到帧缓冲器以供显示。根据本发明的第三十五方面,提供了一种图形处理平台,包括用于渲染一个或多个图形片断的装置,用于生成供显示的渲染片断数据;用于下采样渲染的片断数据的装置;和用于将下采样的片断数据输出到帧缓冲器以供显示的装置。如本领域技术人员将理解的,本发明的这些方面和实施例能够且优选地适当包括这里所描述的本发明的一个或多个或所有的优选和可选特征。因此例如,渲染片断数据在下采样之前(并且在输出到(远程)帧缓冲器之前)被优选地存储在图形处理平台上的一个或多个中间缓冲器,比如(且优选地)一个或多个瓦片缓冲器。本发明可应用于渲染器的任何形式或构造,比如具有“流水线”方案的渲染器(在该情况下,渲染器将以渲染流水线的形式)。其可应用于所有形式的渲染,比如中间模式渲染、延迟模式渲染、基于瓦片的渲染等,尽管其尤其可应用于使用延迟模式渲染的图形渲染器并特别可应用于基于瓦片的渲染器。如从上理解的,尽管不是专门的,但本发明尤其可应用于3D图形处理器和处理设备,并且由此扩展到3D图形处理器和3D图形处理平台,其包括根据这里描述的本发明的任何一个或多个方面的或据此操作的设备。受执行上述特定功能所需的任何硬件的制约,比如3D图形处理器可另外包括任何一个或多个或所有普通的功能单元等,它们由3D图形处理器包括。本领域技术人员还将理解,本发明的所有描述的方面和实施例能够且优选地适当包括这里所描述的任何一个或多个或所有的优选和可选特征。根据本发明的方法可至少部分地使用软件,例如计算机程序来实现。因此将看到, 当从另外的方面看去时,本发明提供专门适用于当安装在数据处理装置上时执行这里所描述方法的计算机软件,提供包括计算机软件代码部分的计算机程序单元,用于当程序单元在数据处理装置上运行时执行这里所述的方法,和提供包括代码装置的计算机程序,适用于当程序在数据处理系统上运行时执行这里所描述的一个或多个方法的所有步骤。本发明还扩展到计算机软件载体,其包括这种当用于操作包括数据处理装置的图形处理器、渲染器或微处理器系统时引起所述数据处理装置与所述处理器、渲染器或系统结合以执行本发明方法的步骤的软件。这种计算软件载体可以是物理存储介质,比如ROM芯片、CD ROM或盘,或者可以是信号,比如线路上的电信号、光信号或无线电信号,比如到达卫星等的信号。还将理解,不是本发明方法的所有步骤都需要由计算机软件来执行,并因此从更宽的方面,本发明提供计算机软件和这种安装在计算机软件载体上的软件,用于执行这里所述的方法的所有步骤中的至少一个。本发明可由此适合于被体现为与计算机系统一起使用的计算机程序产品。这种实现可包括一系列计算机可读指令,要么固定在有形介质上,比如计算机可读介质,例如磁盘、CD-ROM、ROM或硬盘,要么可经由调制解调器或其它接口设备通过有形介质传输到计算机系统,该有形介质包括但不限于光或模拟通信线路,或通过无形地使用无线技术,包括但不限于微波、红外或其它传输技术。计算机可读指令序列体现了所有或部分的这里之前所描述的功能。本领域技术人员将理解,这种计算机可读指令能够以多种程序设计语言编写,以便与许多计算机架构或操作系统一起使用。此外,这种指令可利用任何当前或将来的存储器技术来存储,包括但不限于半导体、磁、或光,或者利用任何当前或将来的通信技术来传输,包括但不限于光、红外或微波。想得到的是,这种计算机程序产品可作为带有附带的打印或电子文档的可移除介质而被分发,比如收缩包装的软件、与计算机系统一起例如预先装载在系统ROM或固定盘上,或通过网络,例如互联网或万维网从服务器或电子公告牌分发。
将只通过举例的方式且参考附图来描述本发明的多个优选实施例,其中图1示意性示出锯齿的效果;图2示意性示出超采样反锯齿技术;图3示意性示出要显示的图形;
图4示出在本发明的实施例中使用的示例采样模式;图5示出可根据本发明来操作的图形处理平台的实施例;图6示出图3的像素的放大图;图7说明在本发明的实施例中与要渲染的片断关联的数据;图8和9示出在本发明的实施例中使用的示例采样方案;图10示意性示出在本发明的实施例中生成图形片断;和图11示出图形处理平台能够根据本发明操作的部分的扩展示意图。
具体实施例方式现在在用于显示的3D图形处理环境中描述本发明的优选实施例。但是,如本领域技术人员将理解的,本发明不限于3D图形处理且还具有其它的应用。如本领域所知道的,且如上所述,当3D图形图像要被显示时,通常首先将其定义为一系列的图元(多边形),所述图元可接着被划分(栅格化)成图形片断,以供依次图形渲染。在普通3D图形渲染操作期间,渲染器将修改(例如)与每个片断关联的颜色(红、 绿、蓝,RGB)和透明度(alpha,a)数据,使得片断可被正确地显示。一旦片断已经完全穿过渲染器,则它们关联的数据值被存储在存储器中,以准备输出以供显示。本发明尤其考虑了当显示图形图像时便于反锯齿操作。如本领域所知道的,通过取得要显示的图像的多个样本并接着下采样那些样本为显示器的输出分辨率来执行反锯齿。图3示意性示出在本实施例中使用的反锯齿方案。图3示意性示出像素阵列30, 其在本发明中表示要显示的一部分的图像(因为,如下面所要讨论的,本发明是基于瓦片的渲染系统)(尽管同等地,像素集合可以被认为表示图像的整个显示)。如图3所示,每个像素包括四个采样点31的集合,其将用于采样所涉及像素的图像并由此确定如何在最后的显示上显示像素。如图3所示,相同的采样模式31用于像素阵列30中的每个像素。在该实施例中, 采样模式可以是旋转的网格采样模式,尽管任何其它适当的反锯齿采样模式可以使用,如果想的话。图4示出了单个像素的扩展图,示出了采样点在像素内的采样模式中的位置。图3还示出了在像素阵列30上以单个图元32的形式重叠的图像。(这里将会理解,为了简化已经在图3中示出,图像包括单个图元,并且实际中图像可以且通常包括多个重叠的图元,如本领域中已知的。)如图3所示,图元32完全重叠像素阵列30中的一些像素,但是只穿过一些其它像素的一部分。为了处理图像的图元32,渲染系统将实际上确定每个像素的每个采样点集合中的哪些样本点由图元32覆盖,并且接着渲染和存储那些所覆盖的样本点的数据,使得图元32 的图像可正确地显示在显示设备上。现在将参考图5来描述在本实施例中以这种方式处理图元32的图像以供显示,图 5示意性示出可根据本发明操作的3D图形处理平台的实施例。图5中示出的3D图形处理平台是基于瓦片的渲染器,尽管将由本领域技术人员所理解的,其它渲染方案可使用(并实际上,本发明也可等效地应用于二维图形处理)。图5所示的图形处理平台包括栅格化器50,栅格化器50接收用于渲染的图形图元并将图元数据转换成具有适当部分的图形片断,以渲染图元。那么存在以渲染流水线形式的渲染器51,其从栅格化器50接收用于渲染的图形片断,并将多个渲染选项,比如纹理映射、雾化和混和等应用到那些图形片断,以生成适当的片断数据以供显示片断。来自渲染器51的渲染片断数据存储在渲染流水线的瓦片缓冲器52中以用于随后的处理。如本领域所知的,瓦片缓冲器52存储表示要显示的部分图像的片断数据阵列。一旦每个瓦片已经被处理,则其数据被输出到适当的存储器,并且接着处理下一个瓦片,等等,直到已经处理了足够的瓦片来显示整个图像。在本实施例中,提供了四个瓦片缓冲器52。每个瓦片缓冲器存储其片断数据到一个32X32阵列(即,对应于要显示的图像中的样本位置的32X32阵列)。这些瓦片缓冲器可作为单独的缓冲器提供,或可以实际上都是同一更大的缓冲器的一部分。它们位于(本地于)图形处理平台(芯片)。来自瓦片缓冲器52的数据被输入到下采样单元53,并接着被输出到显示设备55 的帧缓冲器M (其可不在图形处理平台本身上)以便在显示设备55上显示,如本领域已知的。显示设备55可以例如包括显示器,该显示器包括像素阵列,比如计算机监视器。下采样单元53下采样存储在瓦片缓冲器中的片断数据到显示设备55的适当分辨率(即使得生成对应于显示设备像素的像素数据阵列)。在本实施例中,根据本发明,图像的采样点在瓦片缓冲器32中具有它们自己各自的片断数据条目。因此,每个32X32数据位置瓦片缓冲器例如将对应于要显示的图像中的 16X16像素阵列,其中虹下采样用在瓦片缓冲器和显示器帧缓冲器之间(因为,在该情况下,每个像素将有效地具有与其关联的四个采样点)。在本实施例中,四个瓦片缓冲器中的两个用于为每个采样点存储颜色(红、绿、 篮)值(可能的是,为此目的使用一个瓦片缓冲器,但两个是优选的),一个瓦片缓冲器用于为每个采样点存储Z (深度)值,并且一个用于为每个采样点存储模板值。其它方案当然是可能的。尽管每个采样点都在瓦片缓冲器52中具有它们自己各自的片断数据条目,但在本实施例中,也根据本发明,不是去渲染瓦片缓冲器52中的每个各自样本(数据)位置(即每个各自样本点)的单独片断,而是为与图像中的给定像素对应的每个有四个样本点的集合渲染一个片断。换句话说,单个片断用于一下子一起渲染样本点集合的(以及由此图像中的像素的)所有四个样本点,即使得给定像素的样本点都被共同渲染。接着,一旦已经渲染了片断,则渲染的片断数据在瓦片缓冲器52的适当样本位置中存储为多个副本,以便为图像所取得的每个各自的样本位置提供单独的片断数据集合。因此,在本例子中,考虑到图像包括如图3所示的图元32,栅格化器50将从图像处理系统接收图元,并接着确定哪些图像的采样点集合(即实际上是像素阵列30中的哪些像素)包括由图元32覆盖的采样点。(这可用本领域已知的任何适当方式来执行。)栅格化器50将接着为被发现包括有由图元32所覆盖的采样点的每个采样点集合生成片断。它接着还将那些片断传递到渲染器51以供渲染。图7示意性示出在每个片断被渲染之前为它生成且穿过渲染器51的数据70。如图7所示,与每个片断关联的数据尤其包括片断的X,y位置71 (其表示片断所对应的采样
25点集合在图像中的x,y位置(实际上在图像的有关像素的本实施例中)),以及必要的每片断数据72,比如片断的颜色(RGB)、透明度(alpha)、深度(ζ)和模板值。如本领域已知的, 该每片断数据72通过渲染器51的渲染单元被使用和适当修改,以便为之后存储在瓦片缓冲器52中的片断提供输出的瓦片数据集合。与片断关联的数据70还包括覆盖掩码73,其以比特阵列的形式,表示样本点集合内片断所对应的每个样本位置。如果对应的样本位置由所涉及的图元覆盖,则比特阵列覆盖掩码73中的每个位置被设置为“ 1”,且如果样本位置不由所涉及的图元覆盖,则设置为 “0”。这允许渲染过程知道与给定片断关联的哪些样本点实际上由所涉及的图元32覆盖, 使得渲染过程能确保只为由图元覆盖的样本点存储片断的渲染片断数据。这是必须的,因为可以从图3看出,对于像素不是所有的样本点集合的样本点将必须由图元覆盖。例如,如图6所示,图6示出与要渲染的图元32有关的图3中的像素33 的采样点集合的放大图,可以查看像素33的采样点集合,采样点43和44由图元32覆盖, 但是采样点45和46不由该图元覆盖。栅格化器50将因此为像素33的样本位置集合生成用于渲染的片断,因为该样本位置集合包括两个由图元32覆盖的样本位置43、44。但是,由于图元32只覆盖样本位置43、44,所以只对于那些样本位置而不对于样本位置45、46将渲染的片断数据应当存储在瓦片缓冲器52中。因此,对于图6所示的像素33的样本位置集合,栅格化器将生成形式“1100”的覆盖掩码73(如图7所示)以指明样本位置43、44正在由片断70渲染,但是样本位置45、46 没有被该片断渲染(因为它们没有被图元32覆盖)。因此,当栅格化器50接收用于渲染的图元32时,其首先确定阵列30的哪些采样点(像素)集合包括由图元32覆盖的采样点,并对于那些采样点集合的每一个生成一个片断,该片断与图7所示形式的其数据关联。将接着把每个片断依次传递到渲染器51以供渲染。如本领域已知的,渲染器51对其接收的片断执行渲染操作。这些渲染操作将例如包括修改片断的颜色(RGB)和透明度㈧值,以便为每个片断提供最后的渲染片断数据。在本实施例中,渲染器51包括纹理映射级,其基于与每个片断关联的纹理位置数据(s,t)执行纹理映射过程(这没有在图7中示出)。在本实施例中,根据用片断共同渲染的所覆盖采样点的图像中的地方(位置),来选择纹理映射过程使用的用来确定将应用于片断的纹理(颜色)的图像内的位置,即使用 “加权的”纹理样本位置。例如,如果样本覆盖掩码是“1111”(即所有样本点都被覆盖),则从样本模式的中心取得纹理样本(就如在那些情况下取得它的最好位置)。类似地,如果样本覆盖掩码是 “ 1000”,则取得纹理样本的最好位置是图像中对应于单个所覆盖采样点的位置,等等。如在本实施例中那样,每个片断与四个可能的样本位置关联(在与每个片断关联的样本覆盖掩码中有四个比特),由此存在16个优选的(加权的)纹理采样位置(对应于与每个片断关联的覆盖掩码的16个可能组合)。这些优选的纹理样本位置根据它们相应的对应样本覆盖掩码而被存储在(16条目)的表中。纹理映射级接着使用该表来基于与片断关联的覆盖掩码来查找和确定在什么地方为任何给定的片断取得纹理样本。
其它纹理样本位置方案当然是可能的。例如,纹理样本位置可以在使用中被计算, 而不是从查找表中获取。例如在每片断四个以上的采样点是可能的情况,这是所期望的和实际需要的。等同地,如果需要,也可使用没那么复杂的文本采样过程。例如,可简单地在所涉及的采样模式的中心进行所有纹理查找。这里将理解的是,由于每个片断进行了单个纹理查找,所以每个片断对应的采样点集合共同进行了单个纹理查找(即,纹理操作被用于与片断关联的采样点集合的所有采样点),即以多采样的方式来有效地处理采样点集合。一旦片断已经被渲染,则它们的数据需要被适当地存储在瓦片缓冲器52中。根据本发明,用于每个渲染片断的数据被存储在瓦片缓冲器阵列的适当相同位置中,如与每个片断关联的覆盖掩码73所指明的。因此例如,在图7中示例的片断70的情况下,该片断的渲染数据将存储在瓦片缓冲器52的样本位置的两个中,但是不存储在与片断70关联的另外两个样本位置中。如上所述,存储在瓦片缓冲器52中的片断数据包括每个采样位置的颜色(RGB)、 透明度(A)、深度(Z)和模板值。该数据能以任何适当的形式存储。如本领域技术人员将理解的,在瓦片缓冲器中要存储的新渲染的片断数据可能且通常将需要与已经存储在瓦片缓冲器中的数据混和,如本领域已知的。因此,在给定片断正用于共同渲染一个以上的样本位置时(即,使得来自片断的数据将存储在瓦片缓冲器的多个片断位置中),那么该混和操作应以适当的方式执行以实现此,即将新渲染的片断数据适当地混和到瓦片缓冲器的每个适当样本位置中。因此例如,混和操作例如能够以适当的“并行”方式来执行,以将渲染的片断数据混和到多个并行的瓦片缓冲器中。一旦已经对与图元32有关的所有片断完成了该过程,则可以为图像的后续图元重复该过程(因为如上所述,图像将通常由多个图元组成,而不仅仅是单个图元3 。为图像的所有图元重复该过程,直到瓦片缓冲器52在其每个样本位置中存储有适当的数据。如本领域已知的,在瓦片缓冲器中存储的数据可接着被输出到下采样单元53,以便下采样并随后输出到帧缓冲器讨以供显示。该下采样能以任何适当的方式实现。在本实施例中,数据的线性混和用于下采样数据。但是,如果期望,其它方案也是可能的。在要显示的图像包括多个重叠的图元时,如本领域已知的,对于渲染过程来说还将需要确定在给定的采样点是否实际上看到任何给定的图元。在本实施例中,如本领域已知的,这是通过在片断被渲染时比较片断的深度(ζ)值来执行的。特别地,当新片断要被渲染时,将该片断关联的深度(ζ)值与为样本位置已存储在该片断所对应的瓦片缓冲器52中的片断数据的深度值比较,并且如果该比较指明将看不到新的片断,则不再处理新的片断。 另一方面,如果深度值比较指明事实上新的片断将代替当前存储在瓦片缓冲器52中的片断而被看到,则新的片断被渲染且其渲染的片断数据被存储以代替在瓦片缓冲器52中存储的适当样本位置的现有数据。在本实施例中,下采样单元53被如此设置使得其能有选择地对存储在瓦片缓冲器52中的数据应用两个不同水平的下采样。特别地,下采样单元能首先提供四倍的下采样操作,即使得存储在瓦片缓冲器52 中的有四个数据条目的阵列(即2X2样本位置)会被下采样成帧缓冲器M的单个输出数据值。该方案是下采样单元53的普通操作模式,因为它会取得四个样本值并且将它们下采样成单个值,对应于为如图3所示的图像中每个像素所取得的四个样本。在该方案中, 32X32阵列的瓦片缓冲器52将被下采样成(并对应于)在帧缓冲器M中的16 X 16像素阵列。但是,下采样单元53还能选择性地应用附加的虹下采样操作,该操作因此将有效地为图像的位置样本提供16x下采样方案(即,使得瓦片缓冲器52中的8 X 8样本位置阵列将合并成帧缓冲器M的单个值)。其效果是,可能存在有效地16x位置(边缘)采样(由于在图3中所示的原始图像中的16个样本位置将被下采样为单个值),以及虹纹理(颜色)采样(由于,如上所述,在本实施例中,为每四个位置样本取得单个纹理样本(即,每个有四个采样点的集合))。图8说明了此,并且示出了四个有四个采样点81的集合,每个集合在16x方案中将被下采样成单个值以供输出。图8还示出了四个颜色(纹理)样本82的位置,这些样本将被取得并还被下采样成单个颜色值作为过程的一部分。在该方案中,32X32阵列的瓦片缓冲器将被下采样成(并对应于)帧缓冲器M中的8X8像素阵列。在本实施例中,下采样水平以每帧为基础来设置,并存储在适当的寄存器中,当寄存器接收到用于渲染的帧时,渲染过程就查找该寄存器。图8所示的方案在每个各自的那些样本的集合中,为位置样本81使用相同的采样模式和为颜色样本82使用相同的位置。这意味着下采样操作是有效的排序网格方案,因为样本中的一些在图像中具有相同的X或y坐标。如本领域已知的,这将降低所执行的有效的下采样水平。因此在该方案中对于在将组合的四个样本集合的每一个中的位置以及颜色采样位置来说,优选地是使最终的输出值稍微彼此相关地变化如在它们的X,y坐标之间变化, 以便确保实际中取得十六个唯一的位置样本和四个唯一的颜色样本。这优选地是通过稍微移动四个样本集合的每个样本的位置来实现的,所述四个样本集合将最终被下采样成最终的输出数据值。这优选地是通过为所有的样本位置集合设置基础的样本位置集合并接着为样本集合中的三个将该基础的集合的位置在每个集合的不同方向上相对地移动一个给定量来完成。图9在位置样本81的集合方面说明了此。图9中的箭头91示出了不同样本集合(本实施例中的像素)中的每一个的样本位置的相对移动方向,当数据被16x下采样时, 不同的样本集合最终被组合。这种方案将确保所使用的每个样本将具有唯一的χ和y坐标。(这种方案优选地只当在下采样单元53中启用附加的下采样水平(即到16x下采样)时才被启用)。下采样单元53还将适当的gamma校正应用于其输出到帧缓冲器M的数据。尽管已经在使用单个片断来渲染每个采样点集合的上下文中描述了上面实施例的操作,但是在优选的实施例中,如果期望,对于栅格化器和渲染过程还可能为每个采样点集合生成和渲染多个片断以供渲染。特别地,还可能在图元覆盖给定片断所对应的采样点集合中的一个以上的采样点的情况下,优选地将渲染过程设置成生成多个片断以供渲染。因此,在另一个实施例中,栅格化器为片断确定图元是否覆盖了采样点集合中的一个以上的采样点,并且如果是这样,则能(并优选地)为由图元所覆盖的采样点集合中的每个采样点生成(单独的)片断以供渲染。所生成的片断接着优选地与采样点集合中的不同采样点关联(通过适当地设置其覆盖掩码73),使得不同的片断将例如用于渲染每个所覆盖的采样点。这具有为由图元覆盖的采样点生成附加的纹理查找(颜色样本)的效果,即使得实际中不是单个颜色样本用于共同渲染采样点集合中所覆盖的采样点,而是一个以上的颜色样本将被使用(因为将为采样点集合渲染一个以上的片断)。这将允许渲染过程更加以超采样的方式操作。图10说明了该过程。在图10中,示出了已经生成的示例片断92,对于该片断已经确定了片断所对应的有四个采样点的集合中的三个采样点由所涉及的图元覆盖。因此,片断92的覆盖掩码93的形式如图10中所示的“1101”。根据本发明的该实施例,系统接着生成与片断92对应的三个片断94、95、96 (因为片断92对应的采样点中的三个由图元覆盖),如图10所示,每个这样的片断具有相同的基本片断数据(即至少初始的颜色(红、绿、蓝)和深度(ζ)值)作为片断92,但是相应片断的覆盖掩码97、98和99被如此设置使得每个片断有效地被指明为只对应于单个覆盖的采样点。三个片断94、95和96的每个将依次被渲染,并且如由其覆盖掩码所指明的那样,为每个片断对应的采样位置存储它们的渲染数据。以该方式,不是单个片断92用于渲染所有由图元覆盖的三个采样点,而是三个不同的片断用于渲染那些采样点,因此将为瓦片缓冲器52中的三个采样点存储所渲染片断数据的三个不同集合。渲染过程因此能够看作为被有效地超采样。该方案因此允许渲染过程以更加超采样的方式操作,但例如不要求控制图形处理器的驱动程序或应用软件知道该操作的任何知识,因为对渲染方案的改变不是由图形处理器本身执行的。本领域已知的,这种“超采样”操作可尤其对于所谓alpha纹理的图形有用。图11示意性示出能根据以上实施例操作的图形处理平台的方案。如从图11中看到的,对于图5所示的图形处理平台,图11所示的图形处理平台有类似的结构并具有类似的部件,并由此相同的附图标记已经用于相同的部件。等效地,除非另外声明,图11的图形处理平台以与上述有关图5和本申请剩余附图的图形处理平台相类似的方式操作。因此,图11所示的图形处理平台包括栅格化器50,栅格化器50为被发现包括有由所涉及的图元覆盖的采样点的图像的每个采样点集合生成片断100。但是,如图11所示,则存在附加的片断生成器级101,当附加的片断生成器级101被激活时其将以上面讨论的方式为被发现包括有由给定图元覆盖的一个以上采样点的采样点集合生成多个片断102。这里应注意到,如在图11中的通路105所示,如果期望可旁路片断生成器级 101 (即使得将利用单个片断100来渲染采样点集合)。如此旁路片断生成器级101能优选地在使用中有选择地被激活和设置(或不这样),优选地基于每个片断、每个图元、每个瓦片和/或每个景物,或这些的所期望的任意组合按期望来在使用中有选择地被激活和设置 (或不这样)。这允许片断生成器级101在使用中例如对于给定图元或片断等,有选择地被激活(并因此使渲染器能够被配置成操作用于为给定的采样点集合产生多个片断,或不产生)。如果片断生成器级101被旁路,则片断100仅仅被直接发送到渲染和纹理单元51以供渲染,如图11中的通路105所示。片断生成器101是否被旁路被优选地设置为景物和/或图元的渲染状态的一部分,尽管其它方案当然也是可能的。在片断生成器101不被旁路但被激活(即被包括在渲染过程(流水线)中)的情况下,则它将由栅格化器50生成的片断100作为其输入。片断生成器101将接着分析与片断100关联的覆盖掩码,以确定有多少与片断100对应的所覆盖的采样点。如果片断生成器101确定片断100只对应于单个覆盖的采样点,则其仅仅将片断 100传递给剩下的渲染单元51以便以不变的形式渲染(即不执行片断100的任何处理等), 因为单个片断100将足以渲染片断100所对应的单个覆盖的采样点。(可替换地,如果期望,对于片断生成器101实际上还可能生成片断100的重复副本并发送该副本以供渲染。)另一方面,如果片断生成器101确定片断100对应于一个以上的被覆盖的采样点 (即与片断100关联的信息,即覆盖掩码指明片断100正用于共同渲染一个以上的样本位置),则片断生成器101以上述参考图10的方式生成新的片断集合102,以为片断100所对应的每个(且对应于每个)覆盖的采样点提供新的片断以供渲染。换句话说,新的为每个所覆盖的采样点包括一个片断的片断集合102由片断生成器101生成并被发送以供渲染。如参考图10如上所述,新的片断集合102的每个片断具有与片断100相同的基本片断数据,但是每个片断都具有新的(和不同的)覆盖掩码,指明渲染相应片断所针对的各个采样点。图11示出了新的片断集合102,包括由片断生成器101生成的四个片断。这就是片断100对应于四个覆盖的采样位置的情况。如果片断100只对应于三个覆盖的采样点, 则片断生成器101将生成三个片断的新集合102 (每个覆盖的采样位置一个),等等。由片断生成器101发出的一个或多个片断(即由栅格化器50生成的单个片断100 或由片断生成器101生成的多个片断102)由片断生成器101传递到渲染和纹理单元51以供渲染,如前面那样(并且如以上讨论的当片断生成器101不被使用且被旁路时的情况) 并如本领域中已知的。一旦片断已经由渲染和纹理单元51处理,渲染片断数据如前面那样被存储在四个并行的瓦片缓冲器52中。在此方面,图11明确示出了渲染过程的混和阶段103,在该实施例中,该混和阶段是通过并行使用四个混和器103来执行的,一个混和器对应于瓦片缓冲器52的每一个。在该情况下,离开渲染和纹理单元51的所渲染片断的数据被适当地发送到对应于一个或多个瓦片缓冲器52的一个或多个混和器103,其中数据要被存储。其它方案当然将是可能的。再次如前面那样,在瓦片缓冲器52中存储的数据接着通过下采样单元53被下采样并被传递到帧缓冲器M以供显示。在图11中,下采样单元53被示出包括两个级,如上所讨论的,数据能够在第一下采样级之后或在第二下采样级之后被输出(即使得两个下采样操作将按如上所述那样被执行)。本发明的渲染过程和本发明的优选实施例的操作的其它变化是可能的。例如,每个采样点集合中的采样点数量可变化。特别地,将可能设置采样点集合,使得它们只包括单个采样点。在该情况下,每个片断将有效地用于渲染图像中的单个像素,即使得实际不执行反锯齿。(在该情况下,片断的覆盖掩码例如被设置为“1111”(即使得如上所述,在采样模式的中间(例如像素),所有样本被“覆盖”并且例如在单个样本点进行纹理查找)。渲染的片断数据将接着存储在与覆盖掩码样本位置对应的瓦片缓冲器52 (例如片断所对应的像素)中的所有四个采样位置中,使得当为那些样本位置存储的数据由下采样单元53下采样时,输出相同的数据值)。在一个优选的实施例中,渲染过程的上述可能的可替换操作,例如它是以多采样、 超采样还是非反锯齿方式来操作,被设置为渲染状态的一部分,当每个图元被渲染时为该图元设置渲染状态。(如本领域已知的,给定图元的渲染状态有效地提供信息来将渲染过程配置成适当的设置,以便渲染所涉及的图元。因此,对于该图元以类似于剩余渲染状态条件类似的方式,将要使用的反锯齿模式能方便地设置为渲染状态的一部分。)可以从以上看出,本发明至少在其优选的实施例中提供了一种渲染方案,其中每个片断的渲染可有效地并行处理图像的多个位置样本,但是渲染的片断数据被如此存储使得为每个样本位置存储单独的颜色值。此外,该方案还可操作来例如在每图元的基础上,在相同的帧中使用多个不同的反锯齿技术。尤其,图元能有效地有选择地被有效地超采样或多采样,并且下采样的量也可在使用中选择。因此,本发明提供尤其灵活的渲染和反锯齿方案,该方案能够按照任何给定图像或一部分的图像的特定要求被修改。本发明至少在其优选的实施例中能够提供虹和16x的全景反锯齿。此外,4x的全景反锯齿可被执行而没有任何性能、功率或带宽损失。这使得本发明的处理器尤其适用于在便携式和手持设备中使用,比如移动电话或个人数字助理(PDA)。
权利要求
1.一种处理要显示的图像的图形图元的方法,该方法包括为要显示图像的采样点集合的每个采样点确定图元是否覆盖了该采样点;生成用于渲染图元的图形片断集合,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;关联每个图形片断信息,以指明片断对应的采样点集合中的哪些采样点由该片断共同渲染;渲染一些或所有图形片断,以便为每个渲染的片断确定片断数据集合;和对于一个或多个渲染的片断,存储每个采样点的渲染片断的渲染片断数据集合,与该片断关联的信息指明的所述每个采样点由该片断共同渲染。
2.根据权利要求1所述的处理要显示的图像的图形图元的方法,包括关联被渲染的每个片断的片断数据或作为覆盖掩码的部分提供被渲染的每个片断的片断数据,覆盖掩码为与片断关联的样本位置集合的每个样本位置指明该片断是否正被用于渲染该样本点。
3.根据权利要求1所述的处理要显示的图像的图形图元的方法,包括将所述片段组成多个片段集合,并且对多个片段集合中的每个片段使用不同的采样模式,但是对于每个片段集合的相应的片段采用相同的采样模式。
4.根据权利要求1所述的处理要显示的图像的图形图元的方法,包括当片断被渲染时采样该片断的颜色。
5.根据权利要求4所述的处理要显示的图像的图形图元的方法,包括根据片断正用于渲染的所覆盖的采样点来确定颜色样本的位置。
6.根据权利要求1所述的处理要显示的图像的图形图元的方法,还包括下采样所存储的片断数据,以便为显示器的像素阵列提供数据值的输出集合。
7.根据权利要求6所述的处理要显示的图像的图形图元的方法,其中应用在片段数据上的下采样的水平能够在使用时选择。
8.根据权利要求6所述的处理要显示的图像的图形图元的方法,其中在将存储的片断数据输出到显示设备的帧缓冲器之前,在图形处理平台上执行存储的片断数据到像素数据的下采样。
9.根据权利要求1所述的处理要显示的图像的图形图元的方法,包括关联要渲染的每个片断和要用于渲染该片断的采样和/或反锯齿模式;和渲染单元当接收要渲染的片断时确定与该片断关联的采样和/或反锯齿模式,所述渲染单元根据所确定的采样和/或反锯齿模式被配置,并且对接收的片断执行其渲染操作。
10.根据权利要求1所述的处理要显示的图像的图形图元的方法,其中,所述信息指示片断正用于渲染哪些采样点与穿过渲染器的片断的片段数据关联或是其一部分的片断的片段数据关联。
11.一种处理要显示的图像的图形图元的设备,该设备包括用于为要显示的图像的采样点集合的每个采样点确定图元是否覆盖了该采样点的装置;用于生成用于渲染图元的图形片断集合的装置,每个图形片断对应于被发现包括有由图元所覆盖的采样点的采样点集合;用于关联每个图形片断信息,以指明片断对应的采样点集合中的哪些采样点由该片断共同渲染的装置;用于渲染一些或所有图形片断的装置,用于为每个渲染的片断确定片断数据集合;和用于存储每个采样点的渲染片断的渲染片断数据集合的装置,与该片断关联的信息指明所述每个采样点由该片断共同渲染。
12.根据权利要求11所述的处理要显示的图像的图形图元的设备,包括用于关联被渲染的每个片断的片断数据或作为覆盖掩码的部分提供被渲染的每个片断的片断数据,覆盖掩码为与片断关联的样本位置集合的每个样本位置指明该片断是否正被用于渲染该样本点的装置。
13.根据权利要求11所述的处理要显示的图像的图形图元的设备,包括用于当片断被渲染时采样该片断的颜色的装置。
14.根据权利要求13所述的处理要显示的图像的图形图元的设备,包括用于根据片断正用于渲染的所覆盖的采样点来确定颜色样本的位置的装置。
15.根据权利要求11所述的处理要显示的图像的图形图元的设备,还包括用于下采样所存储的片断数据的装置,用于为显示器的像素阵列提供数据值的输出集合。
16.根据权利要求15所述的处理要显示的图像的图形图元的设备,包括用于选择应用于片断数据的下采样水平的装置。
17.根据权利要求15所述的处理要显示的图像的图形图元的设备,包括用于将下采样的片断数据输出到帧缓冲器以供显示的装置。
18.根据权利要求11所述的处理要显示的图像的图形图元的设备,包括用于关联要渲染的每个片断和要用于渲染该片断的采样和/或反锯齿模式的装置;和一个或多个渲染单元,包括用于当接收要渲染的片断时确定与该片断关联的采样和/ 或反锯齿模式的装置,和用于根据所确定的采样和/或反锯齿模式配置渲染单元的装置, 以及用于对接收的片断执行渲染操作的装置。
19.根据权利要求11所述的处理要显示的图像的图形图元的方法,其中,所述信息指示片断正用于渲染哪些采样点与穿过渲染器的片断的片段数据关联或是其一部分的片断的片段数据关联。
20.一种3D图形处理器或3D图形处理平台,包括根据权利要求11-19中任何一个的处理要显示的图像的图形图元的设备。
21.一种计算机程序单元,包括计算机软件代码部分,用于当程序单元在数据处理装置上运行时执行根据权利要求1-10中任何一个的处理要显示的图像的图形图元的方法。
全文摘要
一种图形处理平台包括接收表示要显示图像的图元以供处理的栅格化器(50)。栅格化器(50)确定图像的哪些采样点集合包括由给定图元覆盖的采样点,并接着为被发现包括有由图元所覆盖的采样点的每个采样点集合生成用于渲染的片断,并将那些片断传递给渲染器(51)以供渲染。渲染器(51)对其所接收的片断执行渲染操作,并将渲染的片断数据存储在瓦片缓冲器(52)中。渲染的片断数据被存储在瓦片缓冲器(52)的适当样本位置中的多个副本中,以便为图像的所取得的每个单独样本位置提供单独的片断数据集合。来自瓦片缓冲器(52)的数据被输入到下采样单元(53),并且从这里输出到显示设备(55)的帧缓冲器(54)中以供显示。
文档编号G06T15/50GK102402794SQ20111029164
公开日2012年4月4日 申请日期2005年11月29日 优先权日2004年11月29日
发明者B·约斯兰德, E·索尔加德, J·尼斯塔德, M·布拉策维克 申请人:Arm挪威股份有限公司