图形处理单元和基于图块的渲染方法

文档序号:6547473阅读:302来源:国知局
图形处理单元和基于图块的渲染方法
【专利摘要】本发明公开了一种图形处理单元和基于图块的渲染方法。提供一种图形处理单元(GPU)。GPU包括铺块单元和光栅器。铺块单元被配置为生成触及图像帧中的多个图块中的对应图块的图元、使用图元中的每一个的深度值来确定图元的至少一个代表性图元,并且使用至少一个代表性图元的深度值来生成用于对应图块的图元中的可见图元。光栅器被配置为对至少一个代表性和可见图元进行光栅化。
【专利说明】图形处理单元和基于图块的渲染方法
[0001]对相关申请的交叉引用
[0002]本申请要求在韩国知识产权局在2013年5月24日提交的韩国专利申请号码10-2013-0059215的优先权,其公开通过引用被整体被合并于此。

【技术领域】
[0003]本发明涉及一种图形处理单元,并且具体地涉及一种图形处理单元中的基于图块的(tile-based)渲染方法。

【背景技术】
[0004]图形处理单元(GPU)是在计算系统中执行图形处理操作的核心单元。图形流水线——GPU的硬件结构——可以具有三维(3D)对象作为输入并且具有二维(2D)渲染图像作为输出。随着图形分辩率增加,对更高性能的GPU、带宽和存储器的要求也增加。


【发明内容】

[0005]根据本发明的示例性实施例,提供一种图形处理单元。图形处理单元包括铺块(tiling)单元和光栅器。铺块单元被配置为识别触及(touching)图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元的至少一个代表性图元,并且使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元。先于可见图元之前对至少一个代表性图元进行光栅化,并且根据渲染顺序来对可见图元进行光栅化。
[0006]在实施例中,铺块单元可以包括第一早期深度测试器,该第一早期深度测试器被配置为通过将多个图元中的每一个的深度值与至少一个代表性图元的深度值相比较来确定可见图元。
[0007]在实施例中,第一早期深度测试器可以使用第一覆盖掩模和第二覆盖掩模来确定可见图元,并且第一覆盖掩模可以指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模可以指示由至少一个代表性图元触及的对应图块的一部分。
[0008]在实施例中,光栅器可以被配置为从存储器接收关于多个图块中的每一个的图元列表,并且图元列表可以包括至少一个代表性图元的标识符和可见图元的标识符。
[0009]在实施例中,光栅器可以包括定序器,该定序器被配置为从图元列表中提取至少一个代表性图元的标识符,并且通过参考至少一个代表性图元的标识符来控制渲染顺序。
[0010]在实施例中,光栅器可以包括内插单元和第二早期深度测试器。内插单元可以被配置为生成形成多个图元中的每一个的内部的多个片段(fragment)。第二早期深度测试器可以被配置为确定多个片段中的每一个的可见性。
[0011]在实施例中,第二早期深度测试器可以通过将对应图块的深度值与多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
[0012]在实施例中,第二早期深度测试器可以通过将先前在相同位置被渲染的多个片段中的每一个的深度值与属于对应图块的内部的目前要被渲染的多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
[0013]根据本发明的示例性实施例,提供一种图形处理单元。图形处理单元包括铺块单元和光栅器。铺块单元被配置为确定触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元的至少一个代表性图元,并且使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元。晚于可见图元之后对至少一个代表性图元进行光栅化,并且根据渲染顺序对可见图元进行光栅化。
[0014]在实施例中,铺块单元包括第一早期深度测试器,该第一早期深度测试器被配置为通过将多个图元中的每一个的深度值与至少一个代表性图元的深度值相比较来确定可见图元。
[0015]在实施例中,第一早期深度测试器使用第一覆盖掩模和第二覆盖掩模来确定可见图元,并且第一覆盖掩模指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模指示由至少一个代表性图元触及的对应图块的一部分。
[0016]在实施例中,光栅器被配置为从存储器接收关于多个图块中的每一个的图元列表,并且图元列表包括至少一个代表性图元的标识符和可见图元的标识符。
[0017]在实施例中,光栅器包括定序器,该定序器被配置为从图元列表中提取至少一个代表性图元的标识符,并且通过参考至少一个代表性图元的标识符来控制渲染顺序。
[0018]在实施例中,光栅器包括:内插单元,被配置为生成形成多个图元中的每一个的内部的多个片段;和第二早期深度测试器,被配置为确定多个片段中的每一个的可见性。
[0019]在实施例中,第二早期深度测试器通过将对应图块的深度值与多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
[0020]在实施例中,第二早期深度测试器通过将先前在相同位置被渲染的多个片段中的每一个的深度值与属于对应图块的内部的目前要被渲染的多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
[0021]根据本发明的示例性实施例,提供一种图形处理单元。图形处理单元包括铺块单元和光栅器。铺块单元被配置为识别触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元的至少一个代表性图元,并且对多个图元执行第一早期深度测试以使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元。光栅器被配置为通过生成形成第二图元集合中的每一个的内部的多个片段、对多个片段执行第二早期深度测试以及确定多个片段中的每一个的可见性,来对可见图元执行光栅化。以与在铺块单元的渲染顺序不同的顺序来对至少一个代表性图元和可见图元进行光栅化。
[0022]根据本发明的示例性实施例,提供一种基于图块的渲染方法。基于图块的渲染方法包括:生成每个包括一个或多个顶点的多个图元;对于多个图元中的每一个计算形成边界的3D边界框;使用3D边界框根据渲染顺序来对多个图元执行图块拣选(bin);使用3D边界框计算多个图元中的每一个的深度值;使用多个图元中的每一个的深度值来确定触及图像帧中的多个图块中的对应图块的多个图元中的至少一个代表性图元;以及,对触及对应图块的多个图元进行光栅化。以与渲染顺序不同的顺序来对触及对应图块的多个图元中的至少一个代表性图元进行光栅化。
[0023]在实施例中,执行图块拣选可以包括将图元中的每一个的深度值与至少一个代表性图元的深度值相比较。
[0024]在实施例中,确定多个图元的可见性可以包括使用第一覆盖掩模和第二覆盖掩模。第一覆盖掩模可以指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模可以指示由至少一个代表性图元触及的对应图块的一部分。
[0025]根据本发明的示例性实施例,提供一种图形处理单元。图形处理单元包括铺块单元和光栅器。铺块单元被配置为识别触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元的至少一个代表性图元,使用至少一个代表性图元的深度值来确定多个图元中的可见图元,并且将包括至少一个代表性图元和可见图元的标识符的图元列表输出到存储器。光栅器被配置为从存储器接收图元列表并且对对应图块的至少一个代表性图元和可见图元进行光栅化。
[0026]在实施例中,先于可见图元之前对至少一个代表性图元进行光栅化,并且根据渲染顺序来对可见图元进行光栅化。
[0027]在实施例中,晚于可见图元之后对至少一个代表性图元进行光栅化,并且根据渲染顺序来对可见图元进行光栅化。
[0028]在实施例中,光栅器包括:内插单元,被配置为生成形成多个图元中的每一个的内部的多个片段;和第二早期深度测试器,被配置为确定多个片段中的每一个的可见性。
[0029]在实施例中,第二早期深度测试器通过将对应图块的深度值与多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
[0030]在实施例中,第二早期深度测试器通过将先前在相同位置被渲染的多个片段中的每一个的深度值与属于对应图块的内部的目前要被渲染的多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。

【专利附图】

【附图说明】
[0031]通过参考附图详细描述本发明的实施例,本发明的上述和其他的特征将变得更明显,在附图中:
[0032]图1是根据本发明的实施例的、包括GPU的计算系统的框图;
[0033]图2是图示出图1中示出的GPU的图形流水线的特定配置的框图;
[0034]图3是图示出图2中示出的铺块单元的特定配置的框图;
[0035]图4图示出计算图2中示出的铺块单元的3D边界框的操作;
[0036]图5图示出图2中示出的铺块单元的图块拣选操作;
[0037]图6图示出图2中示出的铺块单元的第一早期深度测试操作;
[0038]图7示意地图示出由图2中示出的铺块单元移除第二图元;
[0039]图8是图示出图2中示出的光栅器的特定配置的框图;
[0040]图9图示出顺序图2中示出的光栅器的图元渲染顺序改变操作;
[0041]图10示意地图示出图元渲染顺序被改变并且第三图元由图2中示出的光栅器移除;
[0042]图11是图示出根据本发明的实施例的、基于图块的渲染方法的流程图;
[0043]图12是图示出图11中示出的铺块步骤的详细处理;
[0044]图13是图示出图11中示出的光栅化步骤的详细处理;以及
[0045]图14是用于解释根据本发明的实施例的、包括GPU的计算系统的应用示例的框图。

【具体实施方式】
[0046]现在将参考附图在下文中更全面地描述本发明。然而,可以以许多不同的形式来具体化本发明,并且本发明不应该被理解为限于在这里阐述的实施例。相反,提供这些实施例以使得本公开将是全面的和完备的,并且将向本领域技术人员完全地传达本发明的范围。遍及说明书,相同的附图标记可以指示相同的组件。在附图中,可以为了清楚而夸大层和区域的厚度。
[0047]在下文中,将参考图1描述根据本发明的实施例的包括GPU的计算系统。
[0048]图1是根据本发明的实施例的、包括GPU的计算系统的框图。
[0049]参考图1,根据本发明的实施例的计算系统I包括GPU100和存储器200。
[0050]GPU100被配置为执行基于图块的渲染。为此,GPU100包括图形流水线组件。图形流水线也可以被称为渲染流水线。图形流水线配置可以能够以流水线方式来处理图形数据。可以在软件或硬件中配置图形流水线。
[0051 ] 存储器200被配置为存储数据。存储器200可以存储由GPU100处理的或向GPU100提供的图形数据。另外,存储器200可以起到GPU100的工作存储器的作用。存储器200可以包括诸如双数据速率静态DRAM (DDRSDRAM)、单数据速率静态DRAM (SDR SDRAM)等等的至少一个易失性存储器,和/或诸如电可擦除可编程序只读存储器(EEPROM)、闪速存储器等等的至少一个非易失存储器。
[0052]图2是图示出图1中示出的GPU的图形流水线的特定配置的框图。
[0053]参考图2, GPU100包括顶点处理单兀110、图兀组装(primitive assembly)单兀120、铺块单元130、光栅器140和片段(fragment)处理单元150。
[0054]顶点处理单元110可以被配置为接收顶点、转换所接收的顶点并且向图元组装单元120输出所转换的顶点。可以从中央处理器(CPU)接收顶点。顶点处理单元110可以被配置为接收单个顶点并且输出单个顶点。例如,顶点可以包括诸如位置、法向矢量、色彩值等等的属性,但是本发明的方面并不限于此。可以将顶点的位置属性提供为3D空间中的坐标。例如,顶点的位置属性可以包括x、y和z坐标。X坐标可以是水平坐标、y坐标可以是垂直坐标,并且z坐标可以是深度坐标。顶点处理单元110可以把对象空间顶点转换为裁剪空间(clip space)顶点。详细地,顶点处理单元110可以把对象空间顶点转换为世界空间顶点、可以把世界空间顶点转换为相机空间顶点,并且可以把相机空间顶点转换为裁剪空间顶点。
[0055]图元组装单元120可以被配置为从顶点处理单元110接收裁剪空间顶点、生成图元并且向铺块单元130输出图元。图元组装单元120可以生成由一个或多个顶点组成的图元。例如,图元组装单元120可以生成具有三个顶点的三角形图元。
[0056]在下文中,将关于三角形图元来描述本发明的实施例。但是本发明的方面不限于此。例如,本发明也可以被应用于诸如点、线、四边形等等的其他类型的图元。图元可以包括顶点之间的连接信息的属性。顶点之间的连接信息可以表示包括在图元中的顶点被彼此连接的顺序(例如,以顺时针方向或逆时针方向)。根据连接信息的值,图元的正面和背面可以彼此区分。
[0057]铺块单元130可以被配置为从图元组装单元120接收图元、生成图元列表并且将其输出到存储器200。参考图3,铺块单元130可以包括3D边界框计算器131、第一早期深度测试器132和图元列表生成器133。
[0058]铺块单元130可以将要被渲染的图像帧划分为多个图块,并且可以对于多个图块中的每一个生成图元列表。多个图块中的每一个可以包括图像帧中的多个像素。另外,铺块单元130可以进一步将每个图块划分为多个子图块。
[0059]铺块单元130可以对所接收的图元执行图块拣选,并且可以大致确定由图元触及(touch)的图块。图元对图块的触及可以意指图元的至少一部分属于对应图块的内部。另夕卜,铺块单元130可以将触及图块的图元分配到图块的图元列表。可以对于多个图块中的每一个来重复图元到图块的图元列表的分配,并且铺块单元130可以输出与多个图块中的每一个相对应的多个图元列表。铺块单元130可以被配置为接收单个图元并且对单个图元执行图块拣选(例如,一次一个图兀)。例如,图块可以包括覆盖掩模(coverage mask)作为属性,但是本发明的方面不限于此。对于构成图块的各个像素,覆盖掩模可以指示是否存在触及像素的图元。图形流水线可以相对于每个图块来执行渲染,并且因此,可以完成对整个图像帧的渲染。
[0060]为此,3D边界框计算器131可以计算形成图元的边界的3D边界框。在图形流水线的实施例中,2D边界框计算器可以被用于计算形成图元的边界的2D边界框。2D边界框计算器可以使用图元的X和y坐标来计算2D边界框。在三角形图元的情况下,例如,2D边界框计算器可以使用构成三角形图元的3个顶点的X和y坐标中的最大值和最小值来计算2D边界框。
[0061]与2D边界框计算器不同,根据本发明的实施例的3D边界框计算器131可以使用图元的X、y和z坐标来计算3D边界框。在三角形图元的情况下,例如,3D边界框计算器131可以使用构成三角形图元的3个顶点的X、y和z坐标中的最大值和最小值来计算3D边界框。所计算的3D边界框可以被配置为完美地围绕三角形图元的边界。例如,在图4中示出的第一图元Pa中,假定3个顶点V0、V1和V2的x坐标中的最大值和最小值分别是x0和x2,Y坐标中的最大值和最小值分别是y2和y0,并且z坐标中的最大值和最小值分别是zl和zO。在该情况下,3D边界框计算器131可以计算包括各个坐标的最大值和最小值的点Pmax (x0, y2, zl)和 Pmin (x2, y0, z0)。第一边界框 Ba 可以由点 Pmax 和 Pmin 来限定。
[0062]铺块单元130可以计算第一边界框Ba的z坐标中的最大值和最小值来作为第一图元Pa的最大深度值和最小深度值。第一边界框Ba的X和y坐标中的最大值和最小值可以用于对第一图元Pa执行图块拣选。
[0063]例如,在图5中示出的4X4图块中,铺块单元130可以使用第一边界框Ba的x和y坐标中的值来对第一图元Pa执行图块拣选。图5图示出投射到2D屏幕上的第一图元Pa和3D边界框。尽管在本发明的实施例中2D屏幕被分割为4 X 4个图块,但是本发明的方面不限于此。使用第一边界框Ba的X和y坐标中的最大值(xa_max,ya_max)和最小值(xa_min, ya_min),铺块单元130可以确定第一图元Pa触及包括第η图块(Tn)的多个图块,并且可以将第一图元Pa分配到第η图块Tn的图元列表。xa_max和xa_min可以对应于图4的xO和x2,并且ya_max和ya_min可以对应于图4的y2和yO。接下来,以与如上所述相同的方式,铺块单元130可以确定第二图元Pb和第三图元Pc触及第η图块Τη。另外,铺块单元130可以将第二图元Pb和第三图元Pc分配到第η图块Tn的图元列表。
[0064]第一早期深度测试器132可以对于从图像帧划分的多个图块中的每一个在图元级别执行第一早期深度测试。执行第一早期深度测试以大致确定触及图块的多个图元中的每一个的可见度。例如,第一早期深度测试器132可以在图元完全被图块中的另一个图元掩盖时丢弃该图元的数据,并且可以确定该图元在图像帧的图块中是不可见的。此外,第一早期深度测试器132可以输出在图块中并非不可见图元的可见图元。第一早期深度测试器132被配置为接收单个图元并且对单个图元执行第一早期深度测试(例如,一次一个图元)。第一早期深度测试器132可以关于多个图块中的每一个来确定可见图元,并且因此可以在整个图像帧上完成确定。
[0065]例如,图块可以另外包括深度值作为属性,但是本发明的方面不限于此。可以分配代表性图元的最大深度值和最小深度值分别作为图块的最大深度值和最小深度值。可以从触及图块的多个图元中确定代表性图元。例如,对于多个图块中的每一个,可以确定最近的图元、最远的图元等等为代表性图元。可替换地,透明的图元可以被确定为代表性图元。
[0066]最近的图元指示触及图块的图元当中位置最靠近相机的图元,并且最远的图元指示触及图块的图元当中位置与相机最远的图元。图元的深度值可以指ζ坐标中的与相机的距离。例如,具有最大深度值的图元(当ζ坐标被反相时是具有最小深度值的图元)可以距相机最远。第一早期深度测试器132可以使用多个图元中的每一个的最小深度值或最大深度值来确定最近的图元和最远的图元。可替换地,第一早期深度测试器132可以使用多个图元中的每一个的最小深度值和最大深度值来确定最近的图元和最远的图元。
[0067]第一早期深度测试器132可以使用图元的最大深度值和最小深度值来大致确定图元的可见度。第一早期深度测试器132可以将图块的深度值与图元的深度值相比较,以确定图元的可见度。例如,当最近的图元被确定为代表性图元并且图元的最小深度值大于图块的最大深度值时,第一早期深度测试器132可以将图元确定为是被最近的图元掩盖的不可见图元。当目前要被渲染的图元的最小深度值小于图块的最小深度值时,第一早期深度测试器132可以将目前要被渲染的图元更新为新的代表性图元并且将目前要被渲染的图元的深度值更新为图块的深度值。
[0068]第一早期深度测试器132可以使用两个覆盖掩模来执行第一早期深度测试。一个覆盖掩模可以指示由代表性图元触及的图块的一部分,并且另一个覆盖掩模可以指示由目前要被渲染的图元触及的图块的一部分。当基于覆盖掩模确定不存在触及图块的图元时,第一早期深度测试器132可以不对图块执行第一早期深度测试。
[0069]例如,参考图6,当对第η图块Tn执行第一早期深度测试时,假定第三图元Pc、第二图元Pb和第一图元Pa按照图元的渲染顺序被输入到铺块单元130。在该情况下,第一早期深度测试器132可以首先将代表性图元的标识符分配为第三图元Pc的标识符。接下来,因为第二图元Pb的最小深度值zb_min小于第η图块Tn的最小深度值(即第三图元Pc的最小深度值zcjiiin),所以第一早期深度测试器132可以将第二图元Pb更新为新的代表性图元。另外,因为第三图元Pc的最小深度值zc_min大于第η图块Tn的最大深度值(即第二图元Pb的最大深度值Zbjnax),所以第一早期深度测试器132可以确定在第η图块Tn中第三图元Pc被第二图元Pb掩盖。接下来,因为第一图元Pa的最小深度值za_min小于第η图块Tn的最小深度值(即,第二图元Pb的最小深度值zb_min),所以第一早期深度测试器132可以再次将第一图元Pa更新为新的代表性图元。另外,因为第二图元Pb的最小深度值zb_min大于第η图块Tn的最大深度值(即,第一图元Pa的最大深度值za_max),所以第一早期深度测试器132可以确定在第η图块Tn中第二图元Pb被第一图元Pa掩盖。
[0070]图元列表生成器133可以对于多个图块中的每一个生成图元列表,并且可以向存储器200输出图元列表。图元列表可以包括触及图块的多个图元的标识符和代表性图元的标识符来作为属性,但是本发明的方面不限于此。根据第一早期深度测试的结果,被其他图元掩盖的不可见图元可以不被包括在图元列表中。例如,图5和图6中示出的第η图块Tn的图元列表可以仅仅包括第一图元Pa和第三图元Pc的标识符。
[0071]在铺块单元130以子图块为单位管理图像帧的情况下,铺块单元130可以确定由图元触及的子图块,或可以对于每一个子图块确定代表性图元。
[0072]图7图示出由图2中示出的铺块单元130移除第二图元Pb。
[0073]参考图7,图元组装单元120可以生成第一至第三图元Pa、Pb和Pc,并且将其输出,并且铺块单元130可以接收第一至第三图元Pa、Pb和Pc。铺块单元130可以对第一至第三图元Pa、Pb和Pc执行图块拣选以及根据图元的渲染顺序来执行第一早期深度测试。此外,铺块单元130可以根据所执行的第一早期深度测试的结果而生成关于每一个图块的图元列表,并且可以向存储器200输出所生成的图元列表。如图5中所示,因为第二图元Pb被第一图元Pa掩盖,所以第二图元Pb可以被确定为是不可见的。因此,从铺块单元130输出的关于每一个图块的图元列表与第一图元Pa和第三图元Pc有关。
[0074]光栅器140可以被配置为从存储器200接收图元列表,对由每一个图元列表所涉及的图元进行光栅化,并且将其输出到片段处理单元150。
[0075]参考图8,光栅器140可以包括定序器141、图元列表读取器142,内插单元143和第二早期深度测试器144。
[0076]图元列表读取器142可以从存储器200中读取关于每一个图块的图元列表。图元列表读取器142可以首先从存储器200中接收代表性图元并且可以然后根据渲染顺序来接收其他图元。可替换地,图元列表读取器142可以最后从存储器200中接收代表性图元并且可以根据渲染顺序来接收其他图元。
[0077]为此,定序器141可以在对图元进行光栅化的阶段控制图元的渲染顺序。定序器141可以从每一个图元列表中提取代表性图元的标识符。然后,定序器141可以通过参考代表性图元的标识符来改变图元的渲染顺序。定序器141可以控制图元列表读取器142以首先从存储器200接收与代表性图元的标识符相对应的图元,并且可以根据在先前阶段处理的图元的渲染顺序来接收其他图元。
[0078]因此,代表性图元可以在光栅化阶段具有优先权以先于其他图元之前被光栅化。可以根据在先前阶段处理的图元的渲染顺序来光栅化其他图元。
[0079]可替换地,定序器141可以控制图元列表读取器142以最后从存储器200接收与代表性图元的标识符相对应的图元,并且可以根据在先前阶段处理的图元的渲染顺序来接收其他图元。
[0080]因此,可以根据在先前阶段处理的图元的渲染顺序来光栅化其他图元并且可以最后光栅化代表性图兀。
[0081]图9图示出图2中示出的光栅器中的改变图元的渲染顺序的操作。
[0082]参考图9,在存储在存储器200中的第η图块Tn的图元列表中,可以根据渲染顺序来布置第一图元Pa和第三图元Pc。图元列表可以具有队列类型的数据结构。在图形流水线的实施例中,可以基于渲染顺序以先进先出(FIFO)方式将图元传递到光栅化阶段。
[0083]可替换地,定序器141可以通过参考代表性图元的标识符来改变图元的渲染顺序。例如,当最近的图元被确定为是代表性图元时,图元列表读取器142可以首先接收与最近的图元的标识符相对应的第一图元Pa,并且然后可以将第一图元Pa传递到内插单元143 (SI)。接下来,图元列表读取器142可以根据原始渲染顺序来接收第三图元Pc,并且然后可以将第三图元Pc传递到内插单元143(S2)。在图元列表中另外布置额外图元的情况下,图元列表读取器142可以以基本上与如上所述相同的方式根据原始渲染顺序以FIFO方式将其他图元传递到内插单元143。
[0084]内插单元143可以使用图元来生成片段的集合。片段可以指示构成图元的内部的3D点。每一个片段可以对应于图像帧的像素之一。例如,片段的X和y坐标可以在2D屏幕的像素栅格上被对准。
[0085]内插单元143可以内插构成图元的顶点的值,并且可以确定片段的位置、法向矢量和色彩值等等。例如,片段的位置属性可以包括基本上与顶点的位置属性相同的X、y和z坐标。具体地,片段的z坐标中的每个值可以指示深度值。内插单元143可以被配置为接收单个图元并且对片段进行内插,并且生成片段(例如,每次一个图元)。
[0086]第二早期深度测试器144可以对于每一个图块在片段级别执行第二早期深度测试。执行第二早期深度测试以确定属于图块的内部的片段的可见性、以确定要在已经完全被执行渲染的图像帧上被渲染的可见的片段,并且丢弃不可见的片段的数据。第二早期深度测试器144被配置为接收单个图元的片段并且对单个图元的片段执行第二早期深度测试(例如每次一个图元)。
[0087]基于第二早期深度测试的结果,第二早期深度测试器144可以确定属于图块的内部的所有片段的深度值。第二早期深度测试器144可以确定片段的最大深度值和最小深度值。
[0088]第二早期深度测试器144可以使用片段的深度值来确定片段的可见性。例如,第二早期深度测试器144可以将图块的深度值与片段的深度值相比较以确定片段的可见性。片段的最大深度值和最小深度值可以被分配为与在铺块阶段的最大深度值和最小深度值不同的、在光栅化阶段的图块的最大深度值和最小深度值。例如,当目前要被渲染的片段的深度值大于图块的最大深度时,第二早期深度测试可以确定片段是不可见的片段。可替换地,第二早期深度测试器144可以通过将先前在相同位置被渲染的片段的深度值与目前要被渲染的片段的深度值相比较来确定目前要被渲染的片段的可见性。当目前要被渲染的片段的深度值大于先前在相同位置被渲染的片段的深度值时,第二早期深度测试器144可以确定片段是不可见的片段。
[0089]例如,假定如上参考图9所描述地改变渲染顺序并且按照第二早期深度测试中的渲染顺序将第一图元Pa和第三图元Pc输入到第二早期深度测试器144。在该情况下,第二早期深度测试器144可以对于第η图块Tn确定构成第一图元Pa的片段的可见性,并且可以分配片段的最大深度值和最小深度值作为第η图块Tn的最大深度值和最小深度值。片段可以属于第η图块Tn的内部并且可以构成第一图元Pa。接下来,第二早期深度测试器144可以对于第η图块Tn确定构成第三图元Pc的片段的可见性。因为构成第三图元Pc的片段的深度值大于第η图块Tn的最大深度值,所以第二早期深度测试器144可以确定对于第η图块Tn构成第三图元Pc的所有片段是不可见的片段。
[0090]光栅器140可以将裁剪空间顶点转换为屏幕空间顶点。
[0091]图10图示出图元的渲染顺序被改变并且第三图元Pc由图2中示出的光栅器移除。
[0092]参考图10,光栅器140从存储器200接收关于每一个图块的图元列表。图元列表可以与第一图元Pa和第三图元Pc有关。因为图元的渲染顺序被改变,所以与先前阶段不同,光栅器140首先接收第一图元Pa,并且然后从存储器200接收关于每一个图块的第三图元Pc。光栅器140对构成第一图元Pa和第三图元Pc的片段执行第二早期深度测试,并且仅仅将可见的片段输出到片段处理单元150。可以基于所执行的第二早期深度测试来确定可见的片段。例如,如图10中所示,对于第η图块Tn,构成第三图元Pc的所有片段被构成第一图元Pa的片段掩盖,于是是不可见的,并且因此从光栅器140输出的片段仅仅与第一图元Pa有关。
[0093]片段处理单元150可以接收片段,并且可以利用隐面消除(hidden surfaceeliminat1n)、淡阴影(lighting)、表面着色(surface shading)、纹理映射等等来处理所接收的片段。片段处理单元150可以向显示器输出在其上已经完全执行了渲染的图像帧。
[0094]在下文中,将使用GPU100的图形流水线的特定配置来描述基于图块的渲染方法。将省略对参考图1到图10所描述的重复的内容的详细描述。
[0095]图11是根据本发明的实施例的、图示出基于图块的渲染方法的流程图。
[0096]参考图11,首先从中央处理单元接收顶点,并且所接收的顶点然后被转换并且被输出(S310) ο
[0097]接下来,生成多个包括一个或多个顶点的图元(S320)。
[0098]接下来,根据图元的渲染顺序来对多个图元进行铺块(S330)。例如,根据渲染顺序来对多个图元进行图块拣选,并且多个图元经历第一早期深度测试,并且因此生成关于每一个图块的图元列表。将参考图12更详细地描述铺块步骤。
[0099]参考图12,首先计算形成多个图元的边界的3D边界框(S331)。
[0100]接下来,使用每一个3D边界框的X和y坐标中的值根据渲染顺序来对多个图元进行图块拣选(S332)。在这里,可以使用每一个3D边界框的X和y坐标中的最大值和最小值来对多个图元进行图块拣选。
[0101]然后,执行第一早期深度测试以确定触及图块的多个图元的可见性(S333)。在这里,使用每一个3D边界框的z坐标中的值来计算多个图元中的每一个的最大深度值和最小深度值。可以将每一个3D边界框的z坐标中的最大深度值和最小深度值计算为每一个图元的最大深度值和最小深度值。可以使用每一个图元的最大深度值和/或最小深度值来确定用于每一个图块的代表性图元。例如,当多个图元中的最近的图元被确定为代表性图元时,具有大于图块的最大深度值的最小深度值的图元可以被确定为不可见图元。然后,可以丢弃不可见图元的数据,并且可以输出可见图元。
[0102]接下来,可以生成关于每一个图块的图元列表(S334)。在这里,关于每一个图块的图元列表可以包括触及图块的可见图元的标识符和至少一个代表性图元的标识符作为属性。图元列表可以被输出到并且存储在存储器200中。
[0103]返回参考图11,对触及图块的可见图元进行光栅化(S340),并且对于每一个图块执行步骤S340。在这里,可以先于其他图元之前光栅化代表性图元,并且可以根据渲染顺序对其他图元进行光栅化。
[0104]现在将参考图13更详细地描述图11中示出的光栅化步骤。
[0105]参考图13,关于每一个图块的图元列表首先被读取并且然后从存储器接收(S341)。在这里,通过参考代表性图元的标识符来先于其他图元之前首先接收图元列表中的图元的代表性图元,并且可以根据渲染顺序来接收其他图元。可替换地,可以最后接收代表性图元并且可以根据渲染顺序来接收其他图元。换句话说,可以改变图元的渲染顺序。
[0106]接下来,对每个图元列表中的每一个图元中的顶点的值进行内插,以生成构成图元的内部的片段的集合(S342)。
[0107]接下来,可以执行第二早期深度测试以确定图块的内部中的片段的可见性(S343)。然后,可以丢弃不可见的片段的数据。
[0108]接下来,返回参考图11,可以通过利用隐面消除、淡阴影、表面着色、纹理映射等等来完全地执行渲染(S350)。
[0109]根据本发明的实施例,在图元级别并且在片段级别执行早期深度测试(例如第一早期深度测试和第二早期深度测试)。执行图元级别的早期深度测试(例如第一早期深度测试)以在铺块阶段确定所有图元的可见性。在铺块阶段可以丢弃不可见图元的数据。因此,可以减小传递到光栅化阶段的图形数据、不必要的计算和存储器带宽,并且因此可以提高图形流水线的性能。图元级别的早期深度测试的结果被提供为代表性图元的标识符。在光栅化阶段,基于代表性图元的标识符,可以首先光栅化最近的图元,或者可以最后光栅化最远的图元或可见图元。可以根据原始渲染顺序来光栅化其他图元。用这种方式,可以以从前往后的顺序来布置图元。因此,在已经对其完全执行了渲染的图像帧上首先渲染可见图元,并且可以减少片段级别的早期深度测试(例如第二早期深度测试)中的计算量。
[0110]图14是用于解释根据本发明的实施例的、包括GPU的计算系统的应用示例的框图。
[0111]参考图14,根据本发明的实施例的示例性计算系统2包括CPU1000、系统存储器2000、子图形系统3000和显示器4000。
[0112]CPU1000可以被配置为驱动应用以生成网格。网格可以描述对象的表面。网格可以包括多个图元,并且每个图元可以由一个或多个顶点组成。
[0113]系统存储器2000可以被配置为存储数据。系统存储器2000可以存储由CPU1000处理的数据。另外,系统存储器2000可以起到CPU1000的工作存储器的作用。系统存储器2000可以包括诸如双数据速率静态DRAM (DDRSDRAM)、单数据速率静态DRAM (SDR SDRAM)等等的至少一个易失性存储器,和/或诸如电可擦除可编程序只读存储器(EEPROM)、闪速存储器等等的至少一个非易失存储器。
[0114]子图形系统3000包括GPU3100、图形存储器3200、显示控制器3300、图形接口3400和图形存储器控制器3500。
[0115]GPU3100可以具有基本上与图1中示出的GPU100相同的配置。GPU3100可以使用构成网格的多个图元来执行基于图块的渲染。GPU3100可以从CPU1000接收构成网格的顶点的数据。GPU3100可以组装由一个或多个顶点组成的图元,并且可以使用组装的图元来执行渲染。
[0116]图形存储器3200可以存储由GPU3100处理的或向GPU3100提供的图形数据。另夕卜,图形存储器3200可以起到GPU3100的工作存储器的作用。
[0117]显示控制器3300可以控制显示器4000以显示所渲染的图像帧。
[0118]图形接口 3400可以执行CPU1000和GPU3100之间的对接,并且图形存储器控制器3500可以提供系统存储器2000和GPU3100之间的存储器存取。
[0119]尽管图14中未示出,但是计算系统2可以另外包括诸如按钮、触摸屏或麦克风之类的一个或多个输入设备、和/或诸如扬声器电话之类的一个或多个输出设备。另外,计算系统2可以另外包括用于以有线或无线方式与外部设备交换数据的接口。例如,接口可以包括天线或有线/无线收发信机。
[0120]根据本发明的实施例,计算系统2可以是诸如移动式电话、智能电话、个人数字助理(PDA)、台式计算机、笔记本计算机、平板式计算机等等的任意的计算系统。
[0121]在总结【具体实施方式】时,可以理解,在没有背离本发明的精神或范围的情况下,可以对实施例进行形式上的各种修改。
【权利要求】
1.一种图形处理单元,包括: 铺块单元,被配置为识别触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元中的至少一个代表性图元,并且使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元;和 光栅器,被配置为对至少一个代表性图元和用于对应图块的可见图元进行光栅化, 其中,先于可见图元之前对至少一个代表性图元进行光栅化,并且根据渲染顺序来对可见图元进行光栅化。
2.根据权利要求1所述的图形处理单元,其中,铺块单元包括第一早期深度测试器,该第一早期深度测试器被配置为通过将多个图元中的每一个的深度值与至少一个代表性图元的深度值相比较来确定可见图元。
3.根据权利要求2所述的图形处理单元,其中,第一早期深度测试器使用第一覆盖掩模和第二覆盖掩模来确定可见图元,并且 其中,第一覆盖掩模指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模指示由至少一个代表性图元触及的对应图块的一部分。
4.根据权利要求1所述的图形处理单元,其中,光栅器被配置为从存储器接收关于多个图块中的每一个的图元列表,并且图元列表包括至少一个代表性图元的标识符和可见图元的标识符。
5.根据权利要求4所述的图形处理单元,其中,光栅器包括定序器,该定序器被配置为从图元列表中提取至少一个代表性图元的标识符,并且通过参考至少一个代表性图元的标识符来控制渲染顺序。
6.根据权利要求1所述的图形处理单元,其中,光栅器包括: 内插单元,被配置为生成形成多个图元中的每一个的内部的多个片段;和 第二早期深度测试器,被配置为确定多个片段中的每一个的可见性。
7.根据权利要求6所述的图形处理单元,其中,第二早期深度测试器通过将对应图块的深度值与多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
8.根据权利要求6所述的图形处理单元,其中,第二早期深度测试器通过将先前在相同位置被渲染的多个片段中的每一个的深度值与属于对应图块的内部的目前要被渲染的多个片段中的每一个的深度值相比较来确定多个片段中的每一个的可见性。
9.根据权利要求1所述的图形处理单元,其中,铺块单元向存储器输出包括至少一个代表性图元和可见图元的标识符的图元列表。
10.根据权利要求1所述的图形处理单元,其中,晚于可见图元之后对至少一个代表性图元进行光栅化,并且根据渲染顺序来对可见图元进行光栅化。
11.一种图形处理单元,包括: 铺块单元,被配置为识别触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元中的至少一个代表性图元,并且对多个图元执行第一早期深度测试以使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元;和 光栅器,被配置为通过生成形成至少一个代表性图元和可见图元中的每一个的内部的多个片段、对多个片段执行第二早期深度测试以及确定多个片段中的每一个的可见性,来对至少一个代表性图元和可见图元执行光栅化, 其中,以与在铺块单元的渲染顺序不同的顺序来对至少一个代表性图元和可见图元进行光栅化。
12.根据权利要求11所述的图形处理单元,其中,铺块单元被配置为将多个图元中的每一个的深度值与至少一个代表性图元的深度值相比较,以确定可见图元。
13.根据权利要求12所述的图形处理单元,其中,铺块单元使用第一覆盖掩模和第二覆盖掩模来确定可见图元,并且 其中,第一覆盖掩模指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模指示由至少一个代表性图元触及的对应图块的一部分。
14.根据权利要求11所述的图形处理单元,其中,光栅器包括定序器,该定序器被配置为提取至少一个代表性图元的标识符,并且通过参考至少一个代表性图元的标识符来控制渲染顺序。
15.—种基于图块的渲染方法,包括: 生成每个包括一个或多个顶点的多个图元; 对于多个图元中的每一个计算形成边界的3D边界框; 使用3D边界框来根据渲染顺序对多个图元执行图块拣选; 使用3D边界框来计算多个图元中的每一个的深度值; 使用多个图元中的每一个的深度值来确定触及图像帧中的多个图块中的对应图块的多个图元当中的至少一个代表性图元;和对触及对应图块的多个图元进行光栅化, 其中,以与渲染顺序不同的顺序来对触及对应图块的多个图元中的至少一个代表性图元进行光栅化。
16.根据权利要求15所述的基于图块的渲染方法,其中,执行图块拣选包括: 将多个图元中的每一个的深度值与至少一个代表性图元的深度值相比较来确定触及对应图块的多个图元的可见性,以及丢弃不可见图元的数据。
17.根据权利要求16所述的基于图块的渲染方法,其中,确定多个图元的可见性包括使用第一覆盖掩模和第二覆盖掩模, 其中,第一覆盖掩模指示由多个图元触及的对应图块的一部分,并且第二覆盖掩模指示由至少一个代表性图元触及的对应图块的一部分。
18.根据权利要求15所述的基于图块的渲染方法,其中,对多个图元进行光栅化包括: 从存储器接收关于对应图块的图元列表; 从图元列表中提取至少一个代表性图元的标识符;以及 通过参考至少一个代表性图元的标识符来控制渲染顺序, 其中,在触及对应图块的多个图元当中先于其他图元之前对至少一个代表性图元进行光栅化,并且根据渲染顺序来对其他图元进行光栅化。
19.根据权利要求15所述的基于图块的渲染方法,其中,对多个图元进行光栅化包括: 从存储器接收关于对应图块的图元列表; 从图元列表中提取至少一个代表性图元的标识符;以及 通过参考至少一个代表性图元的标识符来控制渲染顺序, 其中,在触及对应图块的多个图元当中晚于其他图元之后对至少一个代表性图元进行光栅化,并且根据渲染顺序来对其他图元进行光栅化。
20.一种图形处理单元,包括: 铺块单元,被配置为识别触及图像帧中的多个图块中的对应图块的多个图元,使用多个图元中的每一个的深度值来确定多个图元中的至少一个代表性图元,并且使用至少一个代表性图元的深度值来确定用于对应图块的多个图元中的可见图元,以及将包括至少一个代表性图元和可见图元的标识符的图元列表输出到存储器;以及 光栅器,被配置为从存储器接收图元列表并且对至少一个代表性图元和可见图元进行光栅化。
【文档编号】G06T17/00GK104183005SQ201410221690
【公开日】2014年12月3日 申请日期:2014年5月23日 优先权日:2013年5月24日
【发明者】金泓润, 刘昌孝 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1