CN105023233B - 图形处理系统及其操作方法、计算机存储介质 - Google Patents
图形处理系统及其操作方法、计算机存储介质 Download PDFInfo
- Publication number
- CN105023233B CN105023233B CN201510179864.9A CN201510179864A CN105023233B CN 105023233 B CN105023233 B CN 105023233B CN 201510179864 A CN201510179864 A CN 201510179864A CN 105023233 B CN105023233 B CN 105023233B
- Authority
- CN
- China
- Prior art keywords
- data
- graphics
- array
- data array
- graphics data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000012545 processing Methods 0.000 title claims abstract description 96
- 238000000034 method Methods 0.000 title claims abstract description 66
- 238000009877 rendering Methods 0.000 claims abstract description 237
- 238000004590 computer program Methods 0.000 claims description 8
- 239000012634 fragment Substances 0.000 description 34
- 230000008569 process Effects 0.000 description 23
- 230000000694 effects Effects 0.000 description 12
- 239000000872 buffer Substances 0.000 description 8
- 230000006870 function Effects 0.000 description 8
- 230000003287 optical effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 238000013459 approach Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000002156 mixing Methods 0.000 description 2
- 238000007792 addition Methods 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 239000003086 colorant Substances 0.000 description 1
- 238000006073 displacement reaction Methods 0.000 description 1
- 230000003370 grooming effect Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 238000003672 processing method Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2215/00—Indexing scheme for image rendering
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Image Generation (AREA)
Abstract
图形处理系统及其操作方法、计算机存储介质。一种图形处理系统包括图形处理器以及用于存储将由图形处理器使用和生成的数据的存储器。在第一渲染流程中,图形处理器生成图形数据阵列,并且将所生成的图形数据阵列存储在存储器中。在后续渲染流程中,使用在第一渲染流程中生成的图形数据阵列。在第一渲染流程中,图形处理器确定图形数据阵列的具有特定特征的一个或更多个区域,并且生成指示所述一个或更多个区域的信息。在后续渲染流程中,在所述后续渲染流程中使用图形数据阵列时,图形处理器使用指示所述一个或更多个区域的信息来控制图形数据阵列的读取。
Description
技术领域
本发明涉及图形的处理,并且具体涉及用于例如在显示屏上显示的三维(3D)图形的处理。
背景技术
如本领域中已知的,图形处理通常涉及对图形数据执行一系列操作以生成被显示的最终图像。通常以流水线(pipeline)方式执行那些操作。例如,图形处理流水线的两个常见阶段是所谓的顶点着色(vertex shading)操作以及随后的片段(像素)着色操作,顶点着色操作针对表示待显示的图像的图元(primitive)(多边形)的顶点执行,而片段(像素)着色操作对组成待显示的图像的各个片段(像素)着色(上色)。
通常,在这些处理中,在输入的用于场景的数据值被顶点“着色”后,通常接着对表示该场景的图元进行光栅化以生成针对该场景的待处理的“片段”的阵列。(如本领域中已知的,“片段”是离散的图形实体,针对这些图形实体执行图形处理操作(诸如渲染)。每个片段将对应于场景的采样点或多个采样点,并且与必要的数据(诸如红、绿、蓝(RGB)颜色值、阿尔法(透明度)值和深度值)相关联,以使得能够显示所述采样点(多个)。(片段也可以被称为像素,尽管并非必须是一个特定片段将正好对应于最终显示中的单个像素(像素元素)的情况,因为张拉(overdraw)、混合、多样本抗混叠或后处理(诸如缩小尺寸(downscaling))可意味着在图形处理操作所针对的实体(片段)与显示像素之间不存在一一对应。))
图形片段在生成后经受许多“渲染”处理以对它们进行着色来生成它们的最终输出颜色等值。用于导出输出数据值的这些处理可被称为“片段着色”或“像素着色”,并且在处理流水线的片段着色(也称为像素着色)阶段执行。
如本领域中已知的,一种普通技术涉及控制图形处理系统以在第一渲染流程(pass)中生成并存储图形数据阵列。然后,在随后的渲染流程(例如,为了最终显示而对场景进行处理的随后渲染流程)中,图形数据阵列例如被用作纹理以例如生成用于显示的最终输出颜色值。可以以这种方式使用纹理以例如提供涉及场景从不同角度的视图(诸如阴影图(shadow map))的数据。
图1示出了示例性的图形数据生成处理。在图1中,从视点2观看待渲染的场景1。然而,该场景还由两个光源3和4进行照明。
如本领域中已知的,为了在场景被显示时在场景上应用光源3和4的效果,将向被渲染的图像应用每个光源的所谓的“阴影图”(纹理图的一种形式)。
为了生成阴影图,通常将在第一流程中渲染场景,使得好像从阴影图对应的光源的位置观看到的那样,以便生成然后可被应用到该场景的纹理图以实际上表示当从该场景的视点观看时由该光源投射的阴影的效果。
因此,在图1所示的场景的情况下,图形处理器将首先被控制为与光源4有关地渲染场景以便生成表示该光源在场景上的效果的阴影图5,并且将该阴影图5存储在存储器中。然后,图形处理器将同样地被控制为与光源3有关地渲染场景以便生成表示该光源在场景上的效果的阴影图6,并且将该阴影图6存储在存储器中。
然后,将针对最终显示来渲染所述场景,渲染处理将从存储器读取所生成的阴影图5和6,并且在场景被渲染时将阴影图5和6用于场景,以便反映光源3和4的效果,如从视点2观看的。
换句话说,对要显示的场景的渲染将使用以前生成的阴影图5和6,以便在场景被显示时在场景上应用光源3和4的效果。
在这些方法中,提供和分配足够的存储器来存储渲染场景时生成的所有中间图形数据(例如,纹理图等)是必须的。这可在存储对于场景需要的所有数据所需的内存占用方面造成相对大的开销。同样,向存储器写入中间数据并且在随后需要时(例如,处理场景进行最终显示时)从存储器中读取所述中间数据的处理可能在带宽和功耗方面是昂贵的。
发明内容
因此,申请人认为,处理图形数据的技术存在改进的空间,特别是在当渲染用于输出的帧时要生成并使用的中间图形数据(诸如纹理)的安排方面。
根据本发明的第一方面,提供一种用于在处理用于输出的图形数据时操作图形处理系统的方法,该方法包括以下步骤:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,并且生成指示所述一个或更多个区域的信息;
在后续渲染流程中,使用在所述第一渲染流程中生成的所述图形数据阵列;以及
在所述后续渲染流程中,当要在所述后续渲染流程中使用所述图形数据阵列时,使用指示所述一个或更多个区域的所述信息来控制所述图形数据阵列的读取。
根据本发明的第二方面,提供一种图形处理系统,该图形处理系统包括:
图形处理器;以及
存储器,其用于存储将由所述图形处理器使用和生成的数据;并且其中:
所述图形处理器被配置为:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列,并且将所生成的图形数据阵列存储在所述存储器中;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,并且生成指示所述一个或更多个区域的信息;
在后续渲染流程中,使用在所述第一渲染流程中生成的所述图形数据阵列;以及
在所述后续渲染流程中,当要在所述后续渲染流程中使用所述图形数据阵列时,使用指示所述一个或更多个区域的所述信息来控制所述图形数据阵列的读取。
本发明涉及图形处理方法和系统,其中,在第一渲染流程中生成图形数据阵列以在后续渲染流程中使用(例如,作为纹理)。然而,与在传统的图形处理系统中不同,在本发明中,在第一渲染流程中,识别了图形数据阵列的具有特定特征(诸如,并且优选地,并且如将在下面进一步讨论的,即包括或可包括“非缺省”数据(例如,颜色)值)的区域(多个)。
指示所识别的区域的信息然后在后续渲染流程中被用于控制图形数据阵列的读取(例如,当读取图形数据阵列以在后续渲染流程中用作纹理时)。
例如,并且优选地(并且如将在下面进一步讨论的),如果阵列的需要的区域落入具有所述特定特征的指示区域(多个)内,则图形处理器可以(并且优选地)被控制为仅在后续渲染流程中从存储的图形数据阵列读取数据(当使用图形数据阵列时)(或者反之亦然)。相反,如果阵列的需要的区域落在具有所述特定特征的指示区域(多个)之外,则图形处理器被优选控制为不从所存储的数据阵列读取数据,而是执行某些其它操作,诸如(并且优选地)应用“缺省”数据值(例如,颜色)(如将在下面进一步讨论)(或者反之亦然)。当在后续渲染流程中使用数据阵列时,这有利于减少读取操作的数量,从而在与简单地读取整个图形数据阵列的传统方案相比时造成在存储器带宽、电力方面的节省并且提高了性能。
在这方面,申请人已经认识到,经常会出现这种情况,即,在第一渲染流程中生成的用于在后续渲染流程中使用的图形数据阵列的某些区域将由相同的数据(例如,颜色)值(或者少量的相似数据(例如,颜色)值)组成。例如,在其中图形数据阵列是阴影图的实施方式中,图形数据阵列通常将包括存在阴影的某些区域以及不存在阴影的其它区域。“无阴影”区域在图形数据阵列中的数据位置将采用适于指示不存在阴影的相同数据值(或者少量的相似的数据值),而阴影区域在图形数据阵列中的数据位置可以采用适于指示可存在阴影的(更广泛)种类的其它数据值。
申请人已经进一步认识到,相应地,可不需要图形处理器从数据阵列的由相同(或者足够相似)的数据值组成的那些区域中的存储的数据阵列读取数据值,而是可以例如简单地通过使用针对这些区域的预定默认数据(例如,颜色)值在后续渲染流程中“应用”数据阵列的那些区域(如将在下面进一步讨论的)。这有利于不必须从存储器中读取图形数据阵列的已被确定由相同的数据值组成的那些区域,使得可以减少后续渲染流程中使用图形数据阵列时所需的读取操作的数量(例如,当在后续渲染流程中应用数据阵列作为纹理时)。
本发明利用该认识来避免例如读取图形数据阵列的已知包括相同的数据值的区域(地区),从而节省了电力并提高了性能。
在第一渲染流程中生成的图形数据阵列可以包括要在后续渲染流程中使用的任何适当且期望的图形数据阵列。它优选是要在后续渲染流程中作为纹理(作为纹理图)使用的图形数据阵列。图形数据阵列将优选地包括多个数据位置的阵列,每个数据位置都取特定数据(例如,颜色)值。在各种实施方式中,图形数据阵列可以被用来产生诸如阴影这样的效果和更复杂的光量和照明效果。所述阵列可以包括例如颜色缓冲区、深度缓冲区、模板缓冲区、图像、法线图(normal map)、凹凸(bump)图、阴影图、位移图等。
生成图形数据阵列的第一渲染流程和使用图形数据阵列的后续渲染流程优选地是正在使用以生成图形处理器的特定最终输出(例如,输出帧)的一系列渲染流程的一部分(或全部)。在这种情况下,第一渲染流程将因此是整个图形处理操作的初始或中间的渲染流程,并且图形数据阵列将是在所讨论的图形处理操作中使用的一组中间数据。后续渲染流程可以例如是所讨论的图形处理操作(例如,输出帧的生成)的最后渲染流程(然而,如将在下面所讨论的,并不必须是这种情况,并且如果需要,后续渲染流程可以是在“最后的”渲染流程之前执行的进一步的中间渲染流程)。
如果需要,后续渲染流程是作为不同的图形处理操作的一部分(例如,用于稍后的输出帧的生成)而执行的流程也是可能的。
在一个实施方式中,第一渲染流程是特定图形处理操作(例如,输出帧的生成)中的真正的第一渲染流程。然而,并不必须是这种情况,第一渲染流程也可以是在所讨论的特定图形处理操作中的稍后的(但仍然中间的)渲染流程。
另外,如本领域中已知的,在后续(例如,最后的)渲染流程中使用图形数据阵列(应用它们)之前,某些图形处理技术生成多个图形数据阵列(例如,多个纹理)。例如,在阴影图的情况下,通常通过生成多个阴影图(然后将它们应用到最后的渲染流程中)来处理多个光源。
因此,在一个实施方式中,第一渲染流程是多个第一渲染流程中的一个。优选地,所述多个第一渲染流程中的每个都生成优选用于后续渲染流程或在多个后续渲染流程中使用的图形数据阵列。在这种情况下,优选以本发明的方式来处理多个第一渲染流程中的每一个。
在所述(或者在每个)第一渲染流程中生成的图形数据阵列可以按照任何期望且适当的方式来生成。优选地通过执行通常处理和例如计算(生成图形数据阵列所需要和执行的)来生成。
生成的图形数据阵列应当并且优选地存储在存储器中,使得图形数据阵列可以从存储器中被取回并且在后续渲染流程中由图形处理和/或图形处理单元和/或在其它后续图形处理步骤中使用。
本发明操作以在第一渲染流程中确定图形数据阵列的具有特定特征的一个或更多个区域。
在第一渲染流程中识别的特定特征可以是任何适当且期望的特征,但是在特别优选的实施方式中,所述特定特征涉及在数据阵列的区域中的数据位置将具有或将可能具有的数据值。最优选地,识别图形数据阵列的其中所有数据位置具有或者能够被(安全地)假定为具有相同的数据值的区域和/或图形数据阵列的其中所有的数据位置不具有或者不能被(安全地)假定为具有相同的数据值的区域。
在这方面,所述系统可以操作以识别并指示例如图形数据阵列的其中数据位置将具有或者应该具有相同的(或足够相似的)数据值的区域或多个区域,或者,相反地,所述系统可以操作以识别并指示图形数据阵列的其中数据位置将不具有或不具有,或者不能被安全地假定为全部具有相同的(或足够相似的)数据值的区域或多个区域。
因此,在特别优选的实施方式中,图形数据阵列中的具有被识别的特定特征的每个区域是被确定了所有的数据位置可能没有(安全地)被设置成共同的数据值的区域(当要使用(读取)该区域时),或者相反地,图形数据阵列中的具有被识别的特定特征的每个区域是被确定了所有的数据位置可以(安全地)被设置成共同的数据值的区域(当要使用(读取)该区域时)。
在特别优选的实施方式中,通过识别图形数据阵列的其中数据位置可包括不同的数据值的一个或多个区域(例如,生成所述图形数据阵列时可包括不同的数据值)来进行具有特定特征的区域的识别。在这种情况下,当生成图形数据阵列时,图形数据阵列中具有被识别的特定特征的每个区域将是被确定了包括或者可包括具有不同的数据值的数据位置的区域。
相反,当生成图形数据阵列时,所述系统可以操作以识别图形数据阵列的其中数据位置不包括不同的数据值或将不包括不同的数据值的区域。
可以按照任何期望且适当的方式来完成图形数据阵列的具有特定特征的区域的确定。
在一个优选的实施方式中,通过评估图形数据阵列中的数据值来确定所述图形数据阵列的区域,以识别所述图形数据阵列的不包括相同的(或足够相似的)数据值的区域,和/或识别所述图形数据阵列的所有包括相同的(或足够相似的)数据值的区域。
例如,可以在生成图形数据阵列之后评估图形数据阵列以识别(确定)阵列的包括相同的或不包括相同的数据值的一个或更多个区域。这可以例如通过控制图形处理器(或另一处理器)评估(扫描)图形数据阵列以确定图形数据阵列的包括(和/或不包括)相同的数据值的一个或更多个区域来完成。
在另一优选的实施方式中,当生成图形数据阵列时,所述方法并不评估生成的图形数据阵列本身的实际数据值,而是操作以确定图形数据阵列的不能被假定将全部具有相同的数据值的区域或多个区域(或者,相反地,可被安全地假定将全部具有相同的数据值)(即,可包括不同的数据值(或者,相反地,将不包括不同的数据值))。这优选地基于生成图形数据阵列时要执行的处理。
如在下面将更充分解释的,本实施方式提供了一种特别有用且有利的方案,因为适当的信息对于可以进行确定的图形处理器来说可能已经是可用的(例如,从处理中的较早的阶段)。因此,在这些实施方式中,相对于其中例如在生成图形阵列之后对图形阵列进行评价的实施方式,可以减少图形处理器的总负担。
另外,在本实施方式中,在实际生成图形数据阵列之前,可以能够做出确定(并且在一个优选的实施方式中是这样完成的)。如将在下面更充分解释的,这可以导致在对完成所讨论的操作(例如,以生成用于显示的最终图像)所需的处理的量、电力和带宽方面的进一步节省。
在这方面,申请人已经认识到,在实际生成图形数据阵列之前,在某些情况下能够预测(待生成的)图形数据阵列的哪些区域可包括不同的数据值(并且相反地,哪些区域将包括相同或相似的数据值)。
例如,在图形数据阵列是阴影图的实施方式中,对于图形数据阵列的其中不存在几何结构(图元)的区域,将不存在阴影,并且(待生成的)阵列的这些区域将一定取相同或相似的数据值(例如,对应于“无阴影”存在)。因此,在实际生成图形数据阵列(阴影图)之前,可以预测(确定)这些区域将包括相同或相似的数据值。
另一方面,对于阵列的其中存在几何结构(图元)的区域,可能(或可能不)存在阴影,并且(待生成的)阵列的这些区域可以取“阴影”和/或“非阴影”数据值。因此,在实际生成图形数据阵列之前,可以预测(确定)这些区域可以包含不同的数据值(并且相反地,不能安全地假定这些区域将包含相同的数据值)。
因此,在优选的实施方式中,在生成图形数据阵列之前,优选通过考虑待执行以生成图形数据阵列的处理并且优选通过针对所述图形数据阵列考虑待处理的几何结构(例如,图元)的分布来做出所述图形数据阵列的具有特定特征的区域或多个区域的确定。
因此,在特别优选的实施方式中,确定图形数据阵列的具有特定特征的一个或更多个区域包括:在生成图形数据阵列时,确定图形数据阵列的包含待处理的几何结构的一个或更多个区域。
在这些实施方式中,可以按照任何适当或期望的方式做出图形数据阵列的“包含”待执行的处理(例如,待处理的几何结构)的一个区域或多个区域以生成所述图形数据阵列。
例如,在所述系统已经确定了数据阵列的哪些区域包括几何结构的情况下,可以并且优选地在确定中使用该信息。例如,在其中使用“拼接(tiling)”的实施方式中,可以并且优选地在确定中使用通过拼接处理生成的拼贴(tile)列表或从所述拼贴列表得到的信息。
因此,在优选实施方式中,确定图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:评估指示所述图形数据阵列的包括(包含)的要针对所述图形数据阵列处理的几何结构(诸如图元)的一个或更多个区域的信息。同样地,可以从指示图形数据阵列的包括(包含)的要针对所述图形数据阵列处理的几何结构(诸如图元)的一个或更多个区域的信息中获得指示所述一个或更多个区域的信息。
因此,在一个优选的实施方式中,通过例如对要被用于图形数据阵列的生成的数据进行整理(sorting)(例如并且优选地,几何结构和/或图形实体)并优选地按照地点(location)或位置,并且最优选通过拼接要被用于图形数据阵列的生成的数据(例如,几何结构)来识别(确定)图形数据阵列的具有特定特征的区域。
在这些方案中,对要由数据生成处理使用的数据(例如,几何结构)进行整理(例如,拼接)等将通常在数据阵列的生成之前就已经执行。因此,本发明的处理可以使用并利用这个已经执行的数据整理(例如,拼接)等。
因此,在优选的实施方式中,本发明可以并且优选包括:优选地基于阵列中的与数据(例如,几何结构)关联的位置或地点和/或数据(例如,几何结构)已知会影响的位置或地点,对将在图形数据阵列的生成中使用的数据(并且优选为几何结构)进行整理(优选拼接)。来自该整理处理的信息然后被优选地用于识别和/或指示具有特定特征的(多个)区域。
在对数据进行了整理(例如,拼接)的情况下,如本领域技术人员将领会的,可以根据需要来执行整理(例如,“拼接”)处理,例如根据需要在使用任何期望的拼贴大小和形状的拼接以及精确合并(binning)或边界框合并(或任何其它整理技术)等的情况下。
针对数据阵列确定具有特定特征(例如,(可能)不同的数据值)的多个独立区域将是可能的,但是在特别优选的实施方式中,针对正被考虑的数据阵列,确定并指示具有特定特征的单个区域。
图形数据阵列的区域(或多个区域)可以采取任何适当且期望的形式,并且以任何期望且适当的方式来表示。
每个区域优选地具有边界框的形式,边界框包围数据阵列的区域(相关区域)(并且因此将包括图形数据阵列的一个或更多个(并且优选为多个)独立的数据位置)。
可以根据需要获得边界框。例如,它可以基于区域覆盖的实际数据位置本身(例如,对数据阵列中的实际数据值进行评估以识别具有特定特征的区域),或者,例如,可以例如通过考虑例如已经被确定包含要针对数据阵列处理的几何结构的拼贴的位置来获得边界框。
被生成并且然后在后续渲染流程中使用的、指示具有特定特征的区域或多个区域的信息可以采取任何适当且期望的形式。该信息优选指示阵列内的所述区域包含(覆盖)的数据位置。
在一个实施方式中,该信息可以包括指示数据阵列的所述区域占据的数据位置的位图。
在更优选的实施方式中,数据阵列的具有特定特征的所述区域(或每个区域)的范围被指示为数据位置沿该数据阵列内的各个方向的范围。这可以减少需要由图形处理器存储的“区域指示信息”的量。优选地,指示了轴对齐的边界框(因此,例如,在沿(例如)x轴和y轴中的每个的最小值和最大值方面限定区域)。
在另一实施方式中,所述区域(或每个区域)被表示为(指示为)图形数据阵列被划分或分割成的子区域的集合中的一个或更多个子区域的集合。在这种情况下,指示区域的信息可以例如指示图形数据阵列被划分成的子区域的集合中的哪些子区域是所述区域的一部分(例如,指示所讨论的子区域的位图的形式),或者,例如,可以指示子区域位置沿数据阵列内的各个方向(例如,沿x轴和y轴中的每个)的范围。
在这些方案中,根据需要,图形数据阵列可以被划分或分割为多个可识别的较小子区域,每个子区域都表示整个图形数据阵列的一部分。每个子区域优选地表示图形数据阵列的不同部分,并且应当包括所述数据阵列的多个数据位置的集合。每个子区域优选地具有相同的大小和形状,尽管这不是必需的。在优选的实施方式中,每个子区域都为矩形(并且在一个实施方式中为正方形)。子区域的适当大小将是例如图形数据阵列中的8×8、8×16、16×8、16×16或32×32个数据位置。
在特别优选的这种实施方式中,图形处理系统是基于拼贴的图形处理系统,并且子区域对应于数据阵列被划分成的用于渲染处理(作为渲染输出而由图形处理器产生的)的拼贴。
在另一优选的实施方式中,在本发明的这些实施方式中考虑的数据阵列子区域中的每一个都对应于多个“渲染”拼贴的集合,优选为拼贴的整数集合。这可以减少需要由图形处理器存储的“子区域指示信息”的量,虽然以数据阵列的较低分辨率(更粗粒)划分为代价。
因此,在一个实施方式中,一个或更多个区域包括图形数据阵列的被划分或分割成的多个拼贴的多个、或者一个或更多个子范围。
指示数据阵列的被标识的具有特定特征的一个或更多个区域的信息应当且优选以适当的方式存储以在后续渲染流程中使用。该信息可以根据需要来进行存储。优选地本地存储到图形处理器(例如,在适当的片上存储器中)。
指示数据阵列的被标识的具有特定特征的一个或更多个区域的信息优选地与数据阵列相关地存储,例如作为例如在最小和最大x位置值以及最小和最大y位置值方面和/或以指示区域所占据的数据阵列的数据位置的位图和/或以指示区域占用的数据阵列的拼贴的拼贴位图的形式来与指示例如并优选的所识别的区域的边界框的数据阵列相关联的区域描述符。
后续渲染流程可以是使用在较早的(第一)渲染流程中生成的图形数据阵列的任何适当且期望的渲染流程。后续渲染流程可以是第一渲染流程之后进行的任何渲染流程。在一个实施方式中,后续渲染流程是图形处理器在第一渲染流程之后紧接着执行的下一个渲染流程,但是在其它实施方式中可以在第一渲染流程与后续渲染流程之间执行其它渲染流程(例如,一个或更多个其它第一渲染流程)。
在一个实施方式中,后续渲染流程是中间的渲染流程,并且图形处理器可以在后续渲染流程之后执行一个或更多个另外的渲染流程(并且,如果需要,这些另外的渲染流程可以例如使用来自所述后续渲染流程的输出(图形数据阵列)例如作为纹理)。
在优选的实施方式中,后续渲染流程是“最终”渲染流程,其中,生成一系列渲染流程(所讨论的图形处理操作)的最终输出,例如用于显示的输出帧。
所讨论的图形处理操作(一系列渲染流程)的最终输出(例如,作为“最终”渲染流程的后续渲染流程的输出)可以是可以使用图形处理器生成的任何适当且期望的输出。在一个特别优选的实施方式中,最终输出包括用于显示的输出帧,但是也可以或者另外地包括图形处理器的诸如图形纹理这样的其它输出(其中,例如,渲染目标是正在使用图形处理器生成的纹理(例如,在“渲染到纹理”操作))或者图形处理器的输出要被写入的其它表面。
同样,虽然已经主要参照一个特定顺序的渲染流程(图形处理操作)来描述上述操作,但是将要理解的是,本发明可以且优选地用于多个图形处理操作,例如用于正在生成的一系列输出帧中的每一个输出帧(在这样做是适当的情况下)。(因此,将通常执行一个或更多个另外的“第一”、“中间”和/或“最终”渲染流程以生成后续的图形输出,例如帧)。
后续渲染流程可以以任何适当且期望的方式使用在较早的(第一)渲染流程中生成的图形数据阵列(例如,取决于所述图形数据阵列表示什么信息)。因此,在图形数据阵列包括纹理的情况下,优选地在后续渲染流程中通过将纹理应用到正在所述后续渲染流程中渲染的几何结构的片段(例如,图元)来使用所述纹理。
优选地在后续渲染流程中使用图形处理流水线的纹理映射处理来使用和应用数据阵列。
当要在后续渲染流程中以任何适当且期望的方式使用图形数据阵列时,可以使用指示所述图形数据阵列的具有特定特征的一个或更多个区域的信息来控制图形数据阵列的读取。在特别优选的实施方式中,所述信息被用来控制从存储器读取图形数据阵列的哪些数据位置。
最优选地,如果图形数据阵列的数据位置(该数据位置的值是在后续渲染流程中所需的)落入指示的所述阵列的具有特定特征的区域内,则通过从存储器中存储的图形数据阵列读取一个或更多个的数据值来确定所讨论的位置的数据值,但如果所需的数据位置落在所指示的数据阵列的区域或多个区域之外,则不从图形数据阵列读取所述数据位置的数据值(或反之亦然)。
因此,在优选的实施方式中,仅从存储器读取由信息指示的图形数据阵列的那些数据位置(或反之亦然)。如上所讨论的,当与从存储器读取整个图形数据阵列相比,这带来了电力方面的节省并且提高了性能。
此外,在数据位置被确定为是不应当读取图形数据阵列的数据位置的情况下,在特别优选的实施方式中,图形处理器执行关于这些数据位置的某些其它操作。最优选地,图形处理器操作以针对这些数据位置使用或应用所限定的、“缺省的”或“透明(clear)”数据值。
因此,在优选的实施方式中,优选地在后续渲染流程中针对图形数据阵列的不从存储器读取的那些数据位置(即,所述图形数据阵列的不形成一个或更多个区域的一部分的那些数据位置)使用一个或更多个特定的、选择的(缺省的)数据值(或反之亦然))。
在这种情况下,所使用的“缺省的”数据值可以简单是例如针对作为一个整体的图形处理操作而设置的预先限定的缺省数据值。
然而,在特别优选的实施方式中,所生成的每个数据阵列都具有其自己的、各自的、限定的“缺省的”数据值,当正在后续渲染流程中使用阵列时,所述数据值将被用于图形数据阵列的不从所生成的图形数据阵列读取的这些数据位置。因此,在这种情况下,在特别优选的实施方式中,在第一渲染流程中存储(并且还优选地确定)要用于图形数据阵列的“默认”数据值,以在要在后续渲染流程中使用所述图形数据阵列时使用。
因此,在特别优选的实施方式中,除了指示数据阵列的具有特定特征的区域的数据以外,图形处理器还在第一渲染流程中确定要用于所述数据阵列中的落在所指示的区域或多个区域(其中,所指示的区域或多个区域是已被确定将(可能)包含不同的数据值的区域)之外的任何数据位置的数据值,或者相反,是要用于所指示的区域或多个区域(其中,所指示的区域或多个区域指示数据阵列的已被确定为具有相同的、共同的数据值的区域)内的所有数据位置的数据值,并且与所述数据值与数据阵列相关地存储。因此,该数据值将基本上是将被用于数据阵列中的已在第一渲染流程中确定所述数据阵列将包含(可以安全使用)相同的数据值的那些位置的“缺省的”或“透明的”数据值。
例如,如上面所讨论的,在图形数据阵列包括阴影图的实施方式中,图形数据阵列中的用于“无阴影的”区域的数据位置将具有指示不存在阴影的一个或更多个“缺省”或“标准”数据值。相反,阴影区域的数据位置将具有与适于指示可能存在阴影的一个或更多个“无阴影”值不同的数据值。
“缺省的”数据值可以通过任何适当且期望的方式来确定,例如基于针对正在被生成并使用的图形数据阵列的特定图形处理操作或者从所述特定图形处理操作获得,例如从图形处理器正在执行的特定指令获取。
如果需要,也可以与数据阵列相关地存储其它数据。例如,数据阵列可以具有并且优选具有与之相关联的数据阵列描述符,例如,所述数据阵列描述符指示所述数据阵列存储在何处以及如何存储,并且包括指向指示所确定的区域或多个区域的数据以及指示待用于所述数据阵列的“缺省”数据值的数据的指针(pointer)。
因此,在特别优选的实施方式中,使用图形数据阵列时在后续渲染流程中的操作包括:针对图形数据阵列内的值在所述后续渲染流程中使用所述图形数据阵列时被需要的数据位置:
使用指示所述图形数据阵列的具有特定特征的所述一个或更多个区域的所述信息来确定所述图形数据阵列内的所述数据位置是否落入所述图形数据阵列的具有所述特定特征的区域内;以及
如果确定所述数据位置落入所述图形数据阵列的具有所述特定特征的指示区域内,则读取所存储的图形数据阵列以确定要用于所述数据位置的数据值,但是如果确定所述数据位置未落入所述图形数据阵列的具有所述特定特征的区域内,则不读取所存储的图形数据阵列来确定要用于所述数据位置的数据值,而是针对所述数据位置的所述数据值使用所限定的数据值。
如果需要,则相反的操作将同样是可能的(例如,取决于如何确定所述区域和/或所述区域表示什么),也就是说,如果确定数据位置未落入图形数据阵列的具有特定特征的指示区域内,则读取所存储的图形数据阵列以确定要用于所述数据位置的数据值,但如果确定数据位置落入图形数据阵列的具有特定特征的区域内,则不读取所存储的图形数据阵列以确定要用于所述数据位置的数据值,而是将限定的数据值用于所述数据位置的数据值。
可以在后续渲染流程中使用指示图形数据阵列的具有特定特征的一个或更多个区域的信息,以任何适当且期望的方式来识别落入所指示的区域内的数据位置(或未落入所指示的区域内的数据位置)。例如,在以图形数据阵列内的范围和位置的方式来指示区域的情况下,那些范围可以例如用于确定和限定纹理坐标的适当的范围或多个范围,在纹理映射处理中,针对所述纹理坐标,应当读取实际的数据阵列。
另选地,在例如以拼贴位图的形式来指示具有特定特征的区域或多个区域的情况下,例如,图形处理流水线(例如,纹理映射器)可以被配置为使用该位图来确定数据阵列中的其数据值被需要的数据位置是否落入指示为具有特定特征的区域内。
在这方面应当注意的是,至少在每个确定的具有特定特征的区域是具有(可能)不同的数据值的情况下,确定的区域可以包括图形数据阵列的具有所识别的区域或多个区域外的数据阵列将取的“缺省”数据值的数据位置,以及具有其它“非缺省”数据值的数据位置(即,所识别并指示的具有特定特征的区域或多个区域不需要(并且通常不会)包含专用“非缺省”数据值)。
申请人还已经认识到,本发明中对图形数据阵列的具有特定特征的一个或更多个区域的确定不仅可以在通过以上面讨论的方式“消耗”图形数据阵列时使用,而且还可以首先在生成图形数据阵列时有利地使用。这是可能的,因为如上所述,在优选的实施方式中,在生成图形数据阵列之前进行所述确定。
因此,在特别优选的实施方式中,本发明的操作还包括:在第一渲染流程中基于对图形数据阵列的具有特定特征的所述一个或更多个区域的确定来控制所述图形数据阵列的生成。这可以通过任何适当且期望的方式来完成,但是优选地所述确定被用于控制在第一个渲染流程中生成图形数据阵列的哪个区域或哪些区域(例如,哪个或哪些区域被处理、渲染并写入存储器)。
例如,在一个实施方式中,仅生成图形数据阵列的被确定为具有特定特征的那些区域,并且不生成任何其它区域(或反之亦然)。这是可能的,因为如上所述,当在后续渲染流程中使用图形数据阵列时,将仅需要读取被确定为具有(或者不具有)特定特征的区域。因此,仅需要首先生成那些区域。
因此,例如,在其中图形数据阵列是阴影图的实施方式中,如以上所讨论的,所述图形数据阵列将通常包括其中存在阴影的某些区域以及其中不存在阴影的其它区域。在这些实施方式中,将仅需要生成图形数据阵列的其中存在(或者不能安全地假定不存在)阴影的那些区域,因为仅这些区域将在后续渲染流程中被读取。
因此,在优选的实施方式中,本发明的操作还包括:针对数据阵列的被确定为具有特定特征的区域,生成数据阵列的该区域,并且针对所述数据阵列的未被确定为具有所述特定特征的部分,不生成所述图形数据阵列的那些部分(或者反之亦然)。
在这些实施方式中,对图形数据阵列的具有特定特征的一个或更多个区域的确定被用于控制所述图形数据阵列的生成本身。则这意味着,实际上,可以控制图形处理器仅处理图形数据阵列的被确定为具有(或者不具有)特定特征的区域,使得不需要生成(即,处理、渲染或写回到存储器)这些区域外的任何区域,从而在与生成整个图形数据阵列相比时,导致了电力方面的节省并且提高了性能。这还可以减小用于存储图形数据阵列所需的内存占用。
如以上所讨论的,缺省的数据值优选地与数据阵列有关地存储以用于在第一渲染流程中未生成的所述数据阵列的那些部分。
可相信的是,使用对图形数据阵列的具有特定特征的一个或更多个区域的确定来控制所述图形数据阵列的生成本身就是新的和有利的,而不是仅仅在于对图形数据阵列在后续渲染流程中的读取进行控制。
因此,根据本发明的第三方面,提供了一种在处理用于输出的图形数据时操作图形处理系统的方法,该方法包括以下步骤:当要在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列时:
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域;以及
基于所述确定来控制所述图形数据阵列的所述生成。
根据本发明的第四方面,提供了一种图形处理系统,该图形处理系统包括:
图形处理器;以及
存储器,其用于存储将由所述图形处理器使用和生成的数据,并且其中,
所述图形处理器被配置为:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列,并且将所生成的图形数据阵列存储在所述存储器中;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域;以及
基于所述确定来控制所述图形数据阵列的所述生成。
如本领域技术人员将领会的,本发明的这些方面可以并且优选地包括本文中描述的本发明的优选和可选的特征中的任一个或更多个或全部。
因此,例如,优选地按照上面讨论的方式中的一个来对执行图形数据阵列的具有特定特征的一个或更多个区域的确定。最优选地,用于上述讨论的这种确定的、能够在必须实际生成图形数据阵列之前就识别图形数据阵列的区域的方法中的一种方法被用于该目的。
同样地,所述确定被优选用于控制在第一渲染流程中产生图形数据阵列的哪个区域或哪些区域,使得在所述第一渲染流程中生成所述图形数据阵列的被确定为具有特定特征的区域,而不生成数据阵列的被确定为不具有所述特定特征的部分(或反之亦然)。
在第一渲染流程中生成的图形数据阵列优选地在后续渲染流程中使用,并且,在一个实施方式中,在所述第一渲染流程中生成指示所述一个或更多个区域的信息,并且优选在所述后续渲染流程中使用该信息来例如按照上面讨论的方式控制所述图形数据阵列的读取。
此外,优选与数据阵列相关地存储缺省的数据值作为第一渲染流程的一部分以用于图形数据阵列的未在第一渲染流程中生成的那些部分。
本发明的图形处理系统或者用于与本发明一起使用的图形处理系统可以采取任何适当的形式。如本领域技术人员将领会的,除对于根据本发明操作所必需的特定组件或功能以外,所述图形处理系统还可以并且应当包括对于允许其处理用于显示的图形数据所必需的其它特征和组件。因此,如本领域中已知的,所述图形处理系统优选包括例如(多个)(可编程的)顶点着色器单元、(多个)(可编程的)片段着色器单元、(多个)光栅化单元、(多个)渲染单元(包括例如纹理映射、不同的内插器和/或混合单元等)等中的一个或更多个。
在要存储所生成的数据(例如,图形数据阵列、指示一个或更多个区域的信息、指示缺省数据值的信息等)的情况下,可以通过任何期望且适当的方式来存储所述数据。在优选的实施方式中,所产生的数据被存储在图形处理器或系统的一个或多个高速缓冲存储器或者可接入到图形处理器或系统的一个或多个高速缓冲存储器等。当然,如果需要,还能够或者而是将数据存储在非高速缓冲存储器(例如,主存储器)中。此外,根据需要,可以使用任何适当且期望的存储器方案用于数据。
可以通过图形处理系统的任何适当的组件或多个组件来执行对具有特定特征的区域的确定和与所述特定特征有关的信息(诸如以上讨论的数据阵列描述符)的生成。因此,例如,图形处理系统的拼接器(tiler)能够确定数据阵列的具有特定特征的区域或多个区域,并且然后直接写出适当的信息(例如,数据阵列描述符)。另选地,可以经由适当的软件处理来生成信息(例如,描述符)。同样地,如果需要,则能够使用硬件来生成所述区域,执行软件流程(例如,基于边界体(bounding volume)执行投影)来做到这一点。
可以在任何适当的系统(诸如基于适当配置的微处理器的系统)中实现本发明。在优选的实施方式中,在计算机和/或基于微处理器的系统中实现本发明。
本发明特别适合于在低功率和便携式装置中使用,但不限于此。因此,在优选的实施方式中,在诸如移动电话或PDA这样的便携式装置中实现本发明。
本发明可应用于任何适当的形式或配置的图形处理器。本发明特别适用于基于拼贴的图形处理器和图形处理系统。因此在优选的实施方式中,图形处理器是基于拼贴的处理器。
本发明还相应地扩展到图形处理器和/或图形处理系统或平台,其包括本发明的系统或设备,和/或其可以根据本发明的方法中的一种或更多种来操作。除用于执行以上讨论的特定功能所必需的任何硬件以外,这种图形处理器等可以另外包括图形处理器包括的常用功能/单元等中的任一个或更多个或全部。
可以通过任何期望且适当的方式来执行本发明的各种功能。例如,根据需要,可以通过硬件或软件来实现本发明的功能。因此,例如,除非另外说明,否则本发明的各种功能元件和“装置”可以包括可操作以执行各种功能等的适当的处理器或多个处理器、控制器或多个控制器、功能单元、电路、处理逻辑、微处理器布置等(诸如可以被编程以通过期望的方式来操作的适当的专用硬件元件和/或可编程硬件元件)。
在这里,还应当指出的是,如本领域技术人员将领会的,本发明的各种功能等可以在特定处理器上复制和/或并行执行。同样地,如果需要,各个处理阶段可以共享处理电路等。
除用于执行以上讨论的特定功能所必需的任何硬件以外,所述图形处理系统和流水线还可以包括图形处理流水线包括的常用功能单元等中的任一个或更多个或全部。
本领域技术人员还将要领会的是,本发明的所描述的方面和实施方式的全部可以并且优选地适当地包括本文中描述的优选和可选的特征中的任一个或更多个或全部。
可以至少部分地使用软件(例如计算机程序)来实现根据本发明的方法。因此将看到的是,当从进一步的方面观看时,本发明提供了:计算机软件,在所述计算机软件被安装在数据处理装置时特别适合于执行本文中描述的方法;计算机程序元素,其包括在所述计算机程序元素在数据处理装置上运行时用于执行本文中描述的方法的计算机软件代码部分;以及计算机程序,其包括在所述计算机程序在数据处理系统上运行时适合于执行本文中描述的方法或多个方法的所有步骤的代码手段。所述数据处理器可以是微处理器系统、可编程FPGA(现场可编程门阵列)等。
本发明还扩展到包括这种软件的计算机软件载体,当被用于操作包括数据处理装置的图形处理器、渲染器或图形处理系统时,这种软件结合所述数据处理装置使所述处理器、渲染器或系统执行本发明的方法的步骤。这种计算机软件载体可以诸如ROM芯片、CDROM、RAM、闪存存储器或磁盘这样的物理存储介质,或者可以是诸如通过电线的电信号、光信号或诸如到卫星的无线电信号等这样的信号。
将进一步领会的是,并不是本发明的方法的所有步骤都需要由计算机软件来执行,并且因此从更广泛的方面来看,本发明提供了计算机软件,并且这种计算机软件被安装在计算机软件载体上以执行本文中阐述的方法的步骤中的至少一个。
本发明可以因此适当地被体现为用于与计算机系统一起使用的计算机程序产品。这样的实现可以包括固定在有形的、非暂时性介质(诸如计算机可读介质,例如,软盘、CD-ROM、ROM、RAM、闪存存储器或硬盘)上的一系列计算机可读指令。它还可以包括可通过包括但不限于光学或模拟通信线路的有形介质或者使用包括但不限于微波、红外线或其它传输技术的无线技术的无形介质经由调制解调器或其它接口装置发送到计算机系统的一系列计算机可读指令。所述一系列计算机可读指令包含本文中以前描述的功能的全部或一部分。
本领域技术人员将要领会的是,这些计算机可读指令可以用许多编程语言来书写以便与许多计算机架构或操作系统一起使用。另外,这些指令可以使用任何现在或未来的存储器技术(包括被但不限于半导体、磁或光学)来存储或者使用任何现在或未来的通信技术(包括但不局限于光学、红外线或微波)来传输。可预期的是,这种计算机程序产品可以作为具有伴随的打印或电子文档(例如,收缩包装软件)的可移动介质来分发,使用计算机系统预加载到例如系统ROM或固定磁盘上,或者通过网络(例如,因特网或万维网)从服务器或电子公告板分发。
附图说明
现在将仅通过示例的方式并参照附图来描述本发明的若干优选实施方式,其中:
图1示意性地示出了根据本发明的实施方式的用于生成纹理数据的技术;
图2示意性地示出了现有技术的渲染流水线的操作;
图3示意性地示出了现有技术的渲染流水线的操作,通过该操作,在第一渲染流程中生成纹理并且然后在第二渲染流程中使用所述纹理;
图4示意性地示出了根据本发明的实施方式的渲染流水线的操作;
图5示意性地示出了根据本发明的实施方式的边界体的生成;
图6示意性地示出了本发明的实施方式的操作;以及
图7示意性地示出根据本发明的实施方式提供的信息。
具体实施方式
在适当的情况下,在附图中对于相同的组件使用相同的附图标记。
现在将描述本发明的若干优选实施方式。所述优选实施方式涉及一种图形处理系统,其中,在第一渲染流程中生成纹理以在后续渲染流程中使用。
图2示意性地示出了传统基于拼贴的图形处理系统。该图显示了与本发明的操作相关的图形处理流水线的主要元件。如本领域技术人员将领会的,可以存在未在图2中例示的图形处理系统的其它元件。
如图2所示,图形处理流水线包括三个主要功能单元(处理级),即,顶点着色器10、拼接器11和片段着色器13。这些处理级使用并处理存储在各种数据阵列和缓冲区(包括多边形列表阵列12和帧存储器14)的数据。在图2中,透明框表示图形处理系统的硬件单元(处理级),并且阴影框是存储器缓冲区或数据结构。实线箭头示出了各个级之间的数据流。
这里应当注意的是,图2仅是示意性的,即,例如,在实践中,示出的功能单元(诸如顶点着色器10、拼接器11和片段着色器13)可以(并且优选)共享显著或相同的硬件电路,即使它们在图2中被示意性地显示为是独立的。
如本领域中已知的,顶点着色器10取与针对要显示的图像限定的顶点等关联的输入数据值,并且处理这些数据值以生成一组相应的“顶点着色的”输出数据值以由图形处理系统的后面的级使用。
如本领域中已知的,拼接器11操作以将正在显示的图像的多边形(图元)整理成场景(“拼贴列表”)的各个拼贴的适当多边形列表,使得片段着色器13知道对于目前正在工作的拼贴,它要处理哪些多边形。拼接器11将多边形列表(拼贴列表)的集合存储到多边形列表阵列12中,这使得能够检索与该列表中的多边形的顶点关联的相关数据。
如本领域中已知的,片段着色器13操作以首先将要显示的图像中的多边形光栅化成为单个的图形片段,这些单个的图形片段随后被着色以便显示所述图像,然后片段着色器13操作以对经光栅化的片段执行各种片段着色操作以生成所述片段的最终版本(片段着色器13然后将所述最终版本例如存储到适当的拼贴缓冲区,并且例如然后到帧存储器14)。
图2还示出了一简单示例的多边形列表阵列12和帧存储器14的内容的表示,其中,通过流水线处理两个多边形(图元)以生成纹理16。在本示例中,拼接器11将这两个多边形(图元)整理到列表15中,并且将该列表存储在多边形列表阵列12中。然后,由片段着色器13处理所述多边形以生成纹理16,纹理16被存储到帧存储器14中。
图3示意性地示出了使用多个渲染流程的传统的基于拼贴的图形处理系统。因此,在图3中示意性地示出了两个渲染流程20和21。
在本示例中,按照与以上关于在图2中讨论的方法的对应的方式执行第一渲染流程20以生成纹理16,并且将纹理16存储在帧存储器14中。当为了最终显示而渲染场景时,从帧存储器14中读取纹理16,并且由片段着色器13将纹理16应用到后续渲染流程21中。
如以上所讨论的,当显示场景时,可以使用这种多流程操作例如以将光源的效果应用到该场景上。在本示例中,存储在帧缓冲区14的纹理16是表示光源在场景上的效果的“阴影图”。在本示例中,图形处理器被首先控制为与光源有关地渲染场景,以便生成阴影图16,并且将阴影图16存储到帧存储器14中。然后,为了最终显示而渲染场景,其中,当要渲染场景(在片段着色器13中)时,从存储器14读取生成的阴影图16,并且将阴影图16应用到所述场景,以便反映光源在所述场景上的效果。然后,经渲染的场景26被存储在帧存储器14中。
图4示出了根据本发明的实施方式的经过修改的多流程的基于拼贴的图形处理系统。图4的对应于图3的元件的元件以相应的方式操作,现在将描述若干修改和增加。
如以上所讨论的,拼接器11在第一渲染流程28中操作以把要在第一渲染生成的数据阵列(例如,阴影图)的图元整理成所述阵列的每个拼贴的拼贴列表。拼接器11将拼贴列表的集合存储到多边形列表阵列12中,所述阵列的每个拼贴一个列表。在本示例中,拼接器11还生成边界框30。边界框30表示阵列中的图元的最小和最大空间范围(即,在第一(x)方向和第二(y)方向上)。也就是说,边界框30包括包围存在于所述阵列中的所有图元的最小和最大的x和y值。边界框30的最大值和最小值可以是整数个数据位置(例如,纹素(texel))或整数个拼贴。
图5例示了用于根据本实施方式生成边界框30的处理,其中,通过评估图元生成边界框30。首先,重置边界框限定(步骤41)。可以例如通过设置开始状态,使得“current_min=MAX_INT”并且“current_max=MIN_INT”来实现重置。(当通过应用像“if current_x<x_min then x_min=current_x”这样的规则来渲染图元时,将不需要在内循环中检查重置状态。)在步骤42中,做出关于是否存在任何图元的确定。如果不存在图元,则操作经由判定步骤46到步骤48,其中,通过发出“零大小”边界框来结束所述操作。(这是必要的,因为如果不存在图元(使得可以完全跳过渲染),则min=MAX并且max=MIN的“开始状态”没有用。)
如果在步骤42中确定存在至少一个图元,则以下面的方式生成边界框。针对每个图元,做出关于该图元是否可见的确定(步骤43)。如本领域中已知的,这可以通过任何适当的方式完成。针对每个可见的图元,在步骤44中更新边界框的空间范围,以便包围所述可见图元。针对剩余的图元中的每一个,重复该处理,直到确定不再存在图元为止(步骤45)。操作然后经由判定步骤46进行到步骤47,在步骤47中发出最终的边界框。
现在返回到图4,生成的边界框30的限定31与拼贴列表一起存储在多边形列表阵列12中。
在本实施方式中,片段着色器13操作以在第一渲染流程28中仅渲染数据阵列的位于边界框30内的那些部分。因此,片段着色器13被配置为接收拼贴列表和边界框30二者,并且仅渲染位于数据阵列的边界框30内的那些部分。渲染(纹理16)的结果被存储在帧存储器14中。纹理16在边界框30内的数据位置将取限定值,但是边界框30外的数据位置将是未限定的(因为仅渲染数据阵列的位于边界框30内的那些部分)。
在本实施方式中,片段着色器13还操作以导出缺省的颜色值(或“透明(clear)颜色值”),并且将缺省颜色值32的限定与纹理16一起存储在帧存储器14中。如以上所讨论的,缺省颜色值是在后续渲染流程29中将要用于(应用)纹理16的未被渲染的那些区域(即,边界框30外的那些区域)的适当颜色值。缺省颜色值可以包括例如在生成纹理(例如,阴影图)16时使用的、与光源的颜色(诸如完全透明的白色)对应的“透明”颜色值。可以通过拖曳操作来限定缺省颜色值。
在本实施方式中,在后续渲染流程29中,片段着色器13使用边界框限定31、默认颜色限定32和纹理16来有效地重构整个纹理,然后将重构的纹理应用到图像25以生成用于显示的最终图像26。
图6更详细地例示了在后续渲染流程中“重构”并应用纹理的处理。在本实施方式中,片段着色器13请求特定数据位置的数据(步骤51)。对于生成特定数据位置的数据值所需的纹理16的每个纹素,做出关于特定纹素是否在边界框30的内部(或外部)的确定。如果特定纹素在边界框30内部,则计算适当的存储器地址(步骤54),并且查找纹理元素值(步骤55)。另一方面,如果特定纹素在边界框30的外部,则使用缺省值(例如,“透明”)数据值(步骤56)。
将要领会的是,这种布置减少了存储器存取数,并且改善了纹理高速缓存性能。
一旦确定了生成特定数据位置的数据值所需的所有纹素值,则在步骤57中确定该数据值(例如,通过应用适当的过滤器)并且在步骤58中将数据值返回到片段着色器13。如以上所讨论的,返回到片段着色器13的值然后被应用到图像以生成用于显示的最终图像26。
在另选实施方式中,不是按照如上所述的方式生成边界框30,图形处理器(或其它处理器)可以被配置为当使用阵列时(例如,当应用纹理时)扫描整个已生成的阵列(例如,纹理映射)以确定由片段着色器13使用的边界框。
在另一另选实施方式中,不是使用边界框(即,最小值和最大值)限定应当在第一渲染流程中渲染并且在后续渲染流程中读取的区域,而是可以生成并使用单个数据位置或拼贴的列表或位图。
图7示出了用于在本发明的实施方式中使用的示例性数据结构。边界框信息31可以包括在第一(x)方向和第二(y)方向上的最小值和最大值(xMin、xMax、yMin和yMax)。如本领域中已知的,缺省的(“透明”)颜色限定32可以包括用于四个颜色通道中的每一个的数据值。纹理描述符33可以包括存储器缓冲区配置信息和采样器配置信息、以及指向边界框信息31的指针和指向缺省(透明)颜色信息32的指针。
可以从上文看出,本发明至少在其优选实施方式中提供了一种低功率和带宽的方法和系统,其中,图形数据阵列在第一渲染流程中生成并且作为纹理在后续渲染流程中使用。这可至少通过以下操作在本发明的优选实施方式中实现:确定图形数据阵列的具有特定特征的一个或更多个区域,并且使用所述确定在第一渲染流程中控制图形数据阵列的生成和/或在第二渲染流程中使用所述确定来控制图形数据阵列的读取。
Claims (27)
1.一种在处理用于输出的图形数据时操作图形处理系统的方法,该方法包括以下步骤:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,生成指示所述图形数据阵列的具有特定特征的所述一个或更多个区域的信息,并且确定并与所述图形数据阵列相关联地存储限定的数据值,该限定的数据值将被用于所述图形数据阵列的被确定为落入所述图形数据阵列的被指示为具有所述特定特征的区域之外的数据位置,其中,如果所述图形数据阵列的区域被确定为包括或能够包括具有不同数据值的数据位置,则所述图形数据阵列的该区域被确定为具有所述特定特征;
在后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列;以及
当要在所述后续渲染流程中使用所述图形数据阵列时,在所述后续渲染流程中,通过以下处理使用指示所述一个或更多个区域的所述信息来控制所述图形数据阵列的读取:
针对所述图形数据阵列内的数据位置,其中当在所述后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列时需要所述数据位置的值:
在所述后续渲染流程中使用指示在所述第一渲染流程中生成的所述图形数据阵列的所述一个或更多个区域的所述信息,确定所述图形数据阵列内的所述数据位置是否落入所述图形数据阵列的具有所述特定特征的区域内;
如果所述数据位置被确定为落入所述图形数据阵列的由所述信息指示为具有所述特定特征的区域之内,则读取在第一渲染流程中生成的针对所述图形数据阵列的所述数据位置的数据值以在所述后续渲染流程中用于所述数据位置;以及
如果所述数据位置被确定为落入所述图形数据阵列的具有所述特定特征的区域之外,则将在所述第一渲染流程中与所述图形数据阵列相关联地存储的所述限定的数据值在所述后续渲染流程中用作所述数据位置的数据值。
2.根据权利要求1所述的方法,其中,指示所述一个或更多个区域的所述信息包括指示所述一个或更多个区域的一个或更多个边界框、一个或更多个列表和/或一个或更多个位图。
3.根据权利要求1所述的方法,该方法还包括以下步骤:在所述第一渲染流程中使用对所述图形数据阵列的具有所述特定特征的所述一个或更多个区域的所述确定来控制所述图形数据阵列的所述生成。
4.根据权利要求1所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
识别所述图形数据阵列的所有数据位置具有或者能够被假定为具有相同的数据值的一个或更多个区域;和/或
识别所述图形数据阵列的所有数据位置不具有或者不能够被假定为具有相同的数据值的一个或更多个区域。
5.根据权利要求1所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
评估所生成的图形数据阵列以识别所述图形数据阵列的所有数据位置具有或者不具有相同的数据值的一个或更多个区域。
6.根据权利要求1所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
当生成所述图形数据阵列时,确定所述图形数据阵列的包含要处理的几何结构的一个或更多个区域。
7.根据权利要求1所述的方法,该方法包括以下步骤:当在后续渲染流程中使用生成的图形数据阵列时,与所述图形数据阵列相关地存储将用于未从所生成的图形数据阵列读取的数据位置的数据值。
8.一种在处理用于输出的图形数据时操作图形处理系统的方法,该方法包括以下步骤:当要在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列时:
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,其中,如果所述图形数据阵列的区域被确定为包括或能够包括具有不同数据值的数据位置,则所述图形数据阵列的该区域被确定为具有所述特定特征;
基于所述确定在所述第一渲染流程中控制所述图形数据阵列的所述生成;
在所述第一渲染流程中确定并与所述图形数据阵列相关联地存储限定的数据值,该限定的数据值将被用于所述图形数据阵列的被确定为落入所述图形数据阵列的被指示为具有所述特定特征的区域之外的数据位置;以及
在后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列,
其中,在所述第一渲染流程中控制所述图形数据阵列的生成包括以下处理:
如果所述图形数据阵列的区域被确定为具有特定特征,则在第一渲染流程中生成图形数据阵列的所述区域;以及
对于所述图形数据阵列的被确定为不具有所述特定特征的部分,在第一渲染流程中不生成所述图形数据阵列的所述部分,
所述方法还包括:在所述后续渲染流程中:
针对在所述第一渲染流程中生成的所述图形数据阵列内的数据位置,其中当在所述后续渲染流程中使用所述图形数据阵列时需要所述数据位置的值:
如果所述数据位置落入所生成的所述图形数据阵列的所述区域之内,则读取在第一渲染流程中生成的针对所述图形数据阵列的所述数据位置的数据值以在所述后续渲染流程中用于所述数据位置;以及
如果所述数据位置落入所生成的所述图形数据阵列的所述区域之外,则将在所述第一渲染流程中与所述图形数据阵列相关联地存储的所述限定的数据值在所述后续渲染流程中用作所述数据位置的数据值。
9.根据权利要求8所述的方法,其中,控制所述图形数据阵列的所述生成的步骤包括:
如果确定所述图形数据阵列的区域具有所述特定特征,则生成所述图形数据阵列的所述区域;以及
针对所述图形数据阵列的未被确定为具有所述特定特征的部分,不生成所述图形数据阵列的该部分。
10.根据权利要求8所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
识别所述图形数据阵列的所有数据位置具有或者能够被假定为具有相同的数据值的一个或更多个区域;和/或
识别所述图形数据阵列的所有数据位置不具有或者不能够被假定为具有相同的数据值的一个或更多个区域。
11.根据权利要求8所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
评估所生成的图形数据阵列以识别所述图形数据阵列的所有数据位置具有或者不具有相同的数据值的一个或更多个区域。
12.根据权利要求8所述的方法,其中,确定所述图形数据阵列的具有特定特征的一个或更多个区域的步骤包括:
当生成所述图形数据阵列时,确定所述图形数据阵列的包含要处理的几何结构的一个或更多个区域。
13.根据权利要求9所述的方法,该方法包括以下步骤:当在后续渲染流程中使用生成的图形数据阵列时,与所述图形数据阵列相关地存储缺省的数据值以用于所述图形数据阵列的未在所述第一渲染流程中生成的部分。
14.一种图形处理系统,该图形处理系统包括:
图形处理器;以及
存储器,其用于存储将由所述图形处理器使用和生成的数据,并且其中,
所述图形处理器被配置为:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列,并且将所生成的图形数据阵列存储在所述存储器中;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,生成指示所述图形数据阵列的具有特定特征的所述一个或更多个区域的信息,并且确定并与所述图形数据阵列相关联地存储限定的数据值,该限定的数据值将被用于所述图形数据阵列的被确定为落入所述图形数据阵列的被指示为具有所述特定特征的区域之外的数据位置,其中,如果所述图形数据阵列的区域被确定为包括或能够包括具有不同数据值的数据位置,则所述图形数据阵列的该区域被确定为具有所述特定特征;
在后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列;以及
当要在所述后续渲染流程中使用所述图形数据阵列时,在所述后续渲染流程中,通过以下处理使用指示所述一个或更多个区域的所述信息来控制所述图形数据阵列的读取:
针对所述图形数据阵列内的数据位置,其中当在所述后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列时需要所述数据位置的值:
在所述后续渲染流程中使用指示在所述第一渲染流程中生成的所述图形数据阵列的所述一个或更多个区域的所述信息,确定所述图形数据阵列内的所述数据位置是否落入所述图形数据阵列的具有所述特定特征的区域内;
如果所述数据位置被确定为落入所述图形数据阵列的由所述信息指示为具有所述特定特征的区域之内,则读取在第一渲染流程中生成的针对所述图形数据阵列的所述数据位置的数据值以在所述后续渲染流程中用于所述数据位置;以及
如果所述数据位置被确定为落入所述图形数据阵列的具有所述特定特征的区域之外,则将在所述第一渲染流程中与所述图形数据阵列相关联地存储的所述限定的数据值在所述后续渲染流程中用作所述数据位置的数据值。
15.根据权利要求14所述的图形处理系统,其中,指示所述一个或更多个区域的所述信息包括指示所述一个或更多个区域的一个或更多个边界框、一个或更多个列表和/或一个或更多个位图。
16.根据权利要求14中任一项所述的图形处理系统,其中,所述图形处理器被配置为:在所述第一渲染流程中使用对所述图形数据阵列的具有所述特定特征的所述一个或更多个区域的所述确定来控制所述图形数据阵列的所述生成。
17.根据权利要求14中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
在所述第一渲染流程中识别所述图形数据阵列的所有数据位置具有或者能够被假定为具有相同的数据值的一个或更多个区域;和/或
在所述第一渲染流程中识别所述图形数据阵列的所有数据位置不具有或者不能够被假定为具有相同的数据值的一个或更多个区域。
18.根据权利要求14中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
评估所生成的图形数据阵列以识别所述图形数据阵列的所有数据位置具有或者不具有相同的数据值的一个或更多个区域。
19.根据权利要求14中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
当生成所述图形数据阵列时,确定所述图形数据阵列的包含要处理的几何结构的一个或更多个区域。
20.根据权利要求14中任一项所述的图形处理系统,其中,所述图形处理器被配置为:在后续渲染流程中使用所生成的图形数据阵列时,与所述图形数据阵列相关地存储将用于未从所述图形数据阵列读取的数据位置的数据值。
21.一种图形处理系统,该图形处理系统包括:
图形处理器;以及
存储器,其用于存储将由所述图形处理器使用和生成的数据,并且其中,
所述图形处理器被配置为:
在第一渲染流程中生成将在后续渲染流程中使用的图形数据阵列,并且将所生成的图形数据阵列存储在所述存储器中;
在所述第一渲染流程中,确定所述图形数据阵列的具有特定特征的一个或更多个区域,其中,如果所述图形数据阵列的区域被确定为包括或能够包括具有不同数据值的数据位置,则所述图形数据阵列的该区域被确定为具有所述特定特征;
基于所述确定在所述第一渲染流程中控制所述图形数据阵列的所述生成;
在所述第一渲染流程中确定并与所述图形数据阵列相关联地存储限定的数据值,该限定的数据值将被用于所述图形数据阵列的被确定为落入所述图形数据阵列的被指示为具有所述特定特征的区域之外的数据位置;以及
在后续渲染流程中使用在所述第一渲染流程中生成的所述图形数据阵列,
其中,在所述第一渲染流程中控制所述图形数据阵列的生成包括以下处理:
如果所述图形数据阵列的区域被确定为具有特定特征,则在第一渲染流程中生成图形数据阵列的所述区域;以及
对于所述图形数据阵列的被确定为不具有所述特定特征的部分,在第一渲染流程中不生成所述图形数据阵列的所述部分,所述图形处理器被配置为:
针对在所述第一渲染流程中生成的所述图形数据阵列内的数据位置,其中当在所述后续渲染流程中使用所述图形数据阵列时需要所述数据位置的值:
如果所述数据位置落入所生成的所述图形数据阵列的所述区域之内,则读取在第一渲染流程中生成的针对所述图形数据阵列的所述数据位置的数据值以在所述后续渲染流程中用于所述数据位置;以及
如果所述数据位置落入所生成的所述图形数据阵列的所述区域之外,则将在所述第一渲染流程中与所述图形数据阵列相关联地存储的所述限定的数据值在所述后续渲染流程中用作所述数据位置的数据值。
22.根据权利要求21所述的图形处理系统,其中,所述图形处理器被配置为:
当生成所述图形数据阵列时:
如果确定所述图形数据阵列的区域具有所述特定特征,则生成所述图形数据阵列的所述区域;以及
针对所述图形数据阵列的未被确定为具有所述特定特征的部分,不生成所述图形数据阵列的该部分。
23.根据权利要求21中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
在所述第一渲染流程中识别所述图形数据阵列的所有数据位置具有或者能够被假定为具有相同的数据值的一个或更多个区域;和/或
在所述第一渲染流程中识别所述图形数据阵列的所有数据位置不具有或者不能够被假定为具有相同的数据值的一个或更多个区域。
24.根据权利要求21中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
评估所生成的图形数据阵列以识别所述图形数据阵列的所有数据位置具有或者不具有相同的数据值的一个或更多个区域。
25.根据权利要求21中任一项所述的图形处理系统,其中,所述图形处理器被配置为通过以下操作来确定所述图形数据阵列的具有特定特征的一个或更多个区域:
当生成所述图形数据阵列时,确定所述图形数据阵列的包含要处理的几何结构的一个或更多个区域。
26.根据权利要求22中任一项所述的图形处理系统,其中,所述图形处理器被配置为:当在后续渲染流程中使用所生成的图形数据阵列时,与所述图形数据阵列相关地存储缺省的数据值以用于所述图形数据阵列的未在所述第一渲染流程中生成的部分。
27.一种计算机可读存储介质,该计算机可读存储介质存储计算机程序,该计算机程序在数据处理装置上执行时执行根据权利要求1至13中任一项所述的方法。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
GB1406872.0 | 2014-04-16 | ||
GB1406872.0A GB2525223B (en) | 2014-04-16 | 2014-04-16 | Graphics processing systems |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105023233A CN105023233A (zh) | 2015-11-04 |
CN105023233B true CN105023233B (zh) | 2020-04-28 |
Family
ID=50845118
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510179864.9A Active CN105023233B (zh) | 2014-04-16 | 2015-04-16 | 图形处理系统及其操作方法、计算机存储介质 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10559054B2 (zh) |
KR (1) | KR102322433B1 (zh) |
CN (1) | CN105023233B (zh) |
GB (1) | GB2525223B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10957094B2 (en) | 2013-03-29 | 2021-03-23 | Advanced Micro Devices, Inc. | Hybrid render with preferred primitive batch binning and sorting |
US10169906B2 (en) * | 2013-03-29 | 2019-01-01 | Advanced Micro Devices, Inc. | Hybrid render with deferred primitive batch binning |
US10535114B2 (en) * | 2015-08-18 | 2020-01-14 | Nvidia Corporation | Controlling multi-pass rendering sequences in a cache tiling architecture |
GB2548852B (en) | 2016-03-30 | 2020-10-28 | Advanced Risc Mach Ltd | Method of operating a graphics processing pipeline by compressing a block of sampling positions having the same data value |
US10062139B2 (en) * | 2016-07-25 | 2018-08-28 | Qualcomm Incorporated | Vertex shaders for binning based graphics processing |
US10607390B2 (en) * | 2016-12-14 | 2020-03-31 | Nvidia Corporation | Techniques for tiling compute work with graphics work |
US10497150B2 (en) * | 2017-01-11 | 2019-12-03 | Arm Limited | Graphics processing fragment shading by plural processing passes |
GB2561807B (en) * | 2017-01-12 | 2019-09-25 | Imagination Tech Ltd | Computing systems and methods for processing graphics data using cost indications for sets of tiles of a rendering space |
US10445923B2 (en) | 2017-09-28 | 2019-10-15 | Intel Corporation | Leveraging control surface fast clears to optimize 3D operations |
CN109840876B (zh) * | 2017-11-24 | 2023-04-18 | 成都海存艾匹科技有限公司 | 兼具渲染功能的图形存储器 |
KR102545172B1 (ko) * | 2017-12-28 | 2023-06-19 | 삼성전자주식회사 | 샘플링 기반의 렌더링을 수행하는 그래픽 프로세서 및 그 동작방법 |
CN111801703A (zh) * | 2018-04-17 | 2020-10-20 | 赫尔实验室有限公司 | 用于图像处理管线的边界框生成的硬件和系统 |
CA3119135A1 (en) * | 2020-05-19 | 2021-11-19 | Unity IPR ApS | Method and system for filtering shadow maps with sub-frame accumulation |
CN112070875A (zh) * | 2020-09-11 | 2020-12-11 | 网易(杭州)网络有限公司 | 图像处理方法、装置、电子设备和存储介质 |
GB2619296A (en) * | 2022-05-30 | 2023-12-06 | Advanced Risc Mach Ltd | Graphics processors |
US12052508B2 (en) | 2022-05-30 | 2024-07-30 | Arm Limited | Graphics processors |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7023437B1 (en) * | 1998-07-22 | 2006-04-04 | Nvidia Corporation | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering |
US7242408B1 (en) * | 2003-01-31 | 2007-07-10 | Microsoft Corporation | Graphical processing of object perimeter information |
CN101364310A (zh) * | 2007-08-07 | 2009-02-11 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
CN101620724A (zh) * | 2008-06-04 | 2010-01-06 | Arm有限公司 | 图形处理系统 |
CN102033728A (zh) * | 2009-09-25 | 2011-04-27 | Arm有限公司 | 图形处理系统 |
Family Cites Families (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5345541A (en) * | 1991-12-20 | 1994-09-06 | Apple Computer, Inc. | Method and apparatus for approximating a value between two endpoint values in a three-dimensional image rendering device |
US5870097A (en) * | 1995-08-04 | 1999-02-09 | Microsoft Corporation | Method and system for improving shadowing in a graphics rendering system |
EP1434171A3 (en) * | 1995-08-04 | 2004-09-29 | Microsoft Corporation | Method and system for texture mapping a source image to a destination image |
US5977977A (en) * | 1995-08-04 | 1999-11-02 | Microsoft Corporation | Method and system for multi-pass rendering |
US6697063B1 (en) * | 1997-01-03 | 2004-02-24 | Nvidia U.S. Investment Company | Rendering pipeline |
US6259461B1 (en) * | 1998-10-14 | 2001-07-10 | Hewlett Packard Company | System and method for accelerating the rendering of graphics in a multi-pass rendering environment |
US6484186B1 (en) * | 2000-02-15 | 2002-11-19 | Novell, Inc. | Method for backing up consistent versions of open files |
US7528839B1 (en) * | 2003-08-13 | 2009-05-05 | Nvidia Corporation | Faster clears for three-dimensional modeling applications |
US20080002894A1 (en) | 2006-06-29 | 2008-01-03 | Winbond Electronics Corporation | Signature-based video redirection |
US8294706B2 (en) * | 2006-08-03 | 2012-10-23 | Siemens Medical Solutions Usa, Inc. | Volume rendering using N-pass sampling |
US8358314B2 (en) * | 2008-02-08 | 2013-01-22 | Apple Inc. | Method for reducing framebuffer memory accesses |
GB0900700D0 (en) * | 2009-01-15 | 2009-03-04 | Advanced Risc Mach Ltd | Methods of and apparatus for processing graphics |
US8988443B2 (en) * | 2009-09-25 | 2015-03-24 | Arm Limited | Methods of and apparatus for controlling the reading of arrays of data from memory |
US8760460B1 (en) * | 2009-10-15 | 2014-06-24 | Nvidia Corporation | Hardware-managed virtual buffers using a shared memory for load distribution |
US8803898B2 (en) | 2009-12-17 | 2014-08-12 | Arm Limited | Forming a windowing display in a frame buffer |
US8970584B1 (en) * | 2011-06-24 | 2015-03-03 | Nvidia Corporation | Bounding box-based techniques for improved sample test efficiency in image rendering |
US9087409B2 (en) | 2012-03-01 | 2015-07-21 | Qualcomm Incorporated | Techniques for reducing memory access bandwidth in a graphics processing system based on destination alpha values |
JP6275146B2 (ja) | 2012-09-05 | 2018-02-07 | エーティーアイ・テクノロジーズ・ユーエルシーAti Technologies Ulc | 選択的な表示更新のための方法および装置 |
US9317948B2 (en) * | 2012-11-16 | 2016-04-19 | Arm Limited | Method of and apparatus for processing graphics |
US9640148B2 (en) | 2013-06-03 | 2017-05-02 | Arm Limited | Method of and apparatus for controlling frame buffer operations |
US9305368B2 (en) * | 2013-06-21 | 2016-04-05 | Intel Corporation | Compression and decompression of graphics data using pixel region bit values |
-
2014
- 2014-04-16 GB GB1406872.0A patent/GB2525223B/en active Active
-
2015
- 2015-04-08 US US14/681,479 patent/US10559054B2/en active Active
- 2015-04-14 KR KR1020150052126A patent/KR102322433B1/ko active IP Right Grant
- 2015-04-16 CN CN201510179864.9A patent/CN105023233B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7023437B1 (en) * | 1998-07-22 | 2006-04-04 | Nvidia Corporation | System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering |
US7242408B1 (en) * | 2003-01-31 | 2007-07-10 | Microsoft Corporation | Graphical processing of object perimeter information |
CN101364310A (zh) * | 2007-08-07 | 2009-02-11 | 北京灵图软件技术有限公司 | 一种三维模型图形的生成方法和装置 |
CN101620724A (zh) * | 2008-06-04 | 2010-01-06 | Arm有限公司 | 图形处理系统 |
CN102033728A (zh) * | 2009-09-25 | 2011-04-27 | Arm有限公司 | 图形处理系统 |
Also Published As
Publication number | Publication date |
---|---|
KR102322433B1 (ko) | 2021-11-08 |
CN105023233A (zh) | 2015-11-04 |
US20150302545A1 (en) | 2015-10-22 |
GB201406872D0 (en) | 2014-05-28 |
US10559054B2 (en) | 2020-02-11 |
GB2525223B (en) | 2020-07-15 |
KR20150119803A (ko) | 2015-10-26 |
GB2525223A (en) | 2015-10-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105023233B (zh) | 图形处理系统及其操作方法、计算机存储介质 | |
US10755473B2 (en) | Graphics processing system | |
KR102455696B1 (ko) | 그래픽 처리 시스템 | |
CN105321199B (zh) | 图形处理流水线及其操作方法与介质 | |
JP5336067B2 (ja) | グラフィックスを処理する方法および装置 | |
US9558585B2 (en) | Hidden surface removal in graphics processing systems | |
US10043306B2 (en) | Using depth data in a graphics processing system | |
US7889205B1 (en) | Frame buffer based transparency group computation on a GPU without context switching | |
US9070200B2 (en) | Graphics processing systems | |
US10235792B2 (en) | Graphics processing systems | |
US10497150B2 (en) | Graphics processing fragment shading by plural processing passes | |
US10733782B2 (en) | Graphics processing systems | |
CN110738593B (zh) | 图形处理器及其操作方法、图形处理系统、编译器 | |
US20140354671A1 (en) | Graphics processing systems | |
US11321803B2 (en) | Graphics processing primitive patch testing | |
US20230401667A1 (en) | Graphics processing systems |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |