在图形处理系统中对基元分块技术方案

技术编号:31915271 阅读:13 留言:0更新日期:2022-01-15 12:57
本申请涉及在图形处理系统中对基元分块。在基于图块的图形处理系统中,分块单元确定基元在渲染空间的哪些图块中,以使得图块中的基元可以被渲染。可以针对图块的子集执行分块测试,而非针对用于基元的边界框中的每个图块执行分块计算。然后针对图块的子集的分块测试的结果可以用来确定该基元是否在位于以该子集中的图块中的两个或更多个图块为边界的区域内的其他图块中。以这种方式,可以在不针对用于基元的边界框中的图块中的所有图块执行分块计算的情况下实现分块过程。减少分块计算的数目可以帮助提高图形处理系统渲染基元(在速度和功耗方面)的效率。度和功耗方面)的效率。度和功耗方面)的效率。

【技术实现步骤摘要】
在图形处理系统中对基元分块
[0001]本申请是原案申请号为201610162795.5、申请日为2016年3月21日、专利技术名称为“在图形处理系统中对基元分块”的专利技术专利申请的分案申请。


[0002]本申请的各实施例涉及在图形处理系统中对基元分块。

技术介绍

[0003]图形处理系统被用来处理图形数据。例如,在计算系统上运行的应用可能需要渲染三维(3D)场景的图像以供向用户显示。应用可以将待渲染的图形数据发送到图形处理系统,其中图形数据描述待渲染的多个基元(primitive)。如在本领域中已知的,基元通常是凸多边形,诸如三角形或凸四边形,其中基元通常在图形处理系统的渲染空间中具有由其顶点的位置定义的其位置,并且可以具有由诸如颜色或纹理属性之类的其他属性定义的其外观。场景中的对象可以由一个或多个基元表示。随着图形处理系统进步,它们渲染复杂图像的能力提高,并且因此应用利用这一点并且提供更加复杂的图像以供图形处理系统渲染。这意味着图像中的基元的数目倾向于增加,所以图形处理系统高效处理基元的能力变得更加重要。
[0004]一种提高图形处理系统的效率的已知方式是以基于图块(tile)的方式渲染图像。以这种方式,基元将被渲染到其中的渲染空间被划分为多个图块,这多个图块然后可以被相互独立地渲染。为了渲染基元,渲染单元使用存储器来存储不同样本位置的中间结果(例如,深度值和基元标识符等)。如果渲染单元一次对一个图块进行操作,则大多数(或者全部)的该存储器可以位于“片上”,即,在图形处理单元(GPU)上,这在整个渲染空间被立即渲染的情况下可能不是可行的。因此,在基于图块的图形系统中,GPU与片外存储器(即,其可被称作“系统存储器”的)之间的读和写操作的数目与非基于图块的图形系统相比通常被减少。因为GPU与系统存储器之间的读和写操作通常极慢并且使用许多功率(与在GPU内执行的操作相比),因此基于图块的图形系统经常比非基于图块的图形系统更加高效(在功率和速度方面)。基于图块的图形系统包括用于对基元分块的分块单元。也就是说,分块单元针对基元确定该基元在渲染空间的多个图块中的哪些中。然后,当渲染单元渲染图块时,其可以被给予指示哪些基元应当用来渲染该图块的信息。
[0005]例如,图1示出了可以用来渲染3D场景的图像的基于图块的图形处理系统100的一些元件。图形处理系统100包括图形处理单元(GPU)102和两部分存储器1041和1042。注意,两部分存储器1041和1042可以是或者可以不是同一物理存储器的部分,并且存储器1041和1042两者可以位于“片外”,即,与GPU 102不在同一芯片上。存储器(1041和1042)与GPU 102之间的通信可以在系统100中的通信总线上发生。
[0006]GPU 102包括预处理模块106、分块单元108和渲染单元110。分块单元108包括处理逻辑112和数据存储(data store)114,并且渲染单元110包括隐藏表面移除(HSR)模块116和纹理化/阴影化模块118。图形处理系统100被布置为使得应用所提供的描述基元序列的
图形数据在预处理模块106处被接收到。预处理模块106执行诸如包括裁剪和剔除的几何处理之类的功能以除去未落入可见视图的基元。预处理模块106也可以将基元投射到屏幕空间中。预处理模块106将基元输出到分块单元108。
[0007]分块单元108接收来自预处理模块106的基元并且确定在图形处理系统100的渲染空间的图块中的每个图块内存在这些基元中的哪些基元。基元可以位于渲染空间的图块中的一个或多个图块中。分块单元108通过创建用于图块的显示列表将基元指派给渲染空间的图块,其中用于图块的显示列表包括对在图块中存在的基元的指示(即,基元ID)。显示列表和基元被从分块单元108输出并被存储在存储器1041中。渲染单元从存储器1041取回用于图块的显示列表和与该图块有关的基元,并且HSR模块116执行隐藏表面除去从而除去在场景中隐藏的基元的片段。剩余片段被传递给纹理化/阴影化模块118,纹理化/阴影化模块118对片段执行纹理化和/或阴影化以确定可以被传递到存储器1042以供存储在帧缓冲器中的渲染的图像的像素颜色值。渲染单元110处理图块中的每个图块中的基元,并且当整个图像已被渲染并存储在存储器1042中时,图像可以被从图形处理系统100输出并且例如被显示在显示器上。在图1中示出的示例中,基于图块的图形处理系统100是延迟渲染系统,意味着渲染单元110在对基元片段执行纹理化和/或阴影化以渲染场景之前对基元片段执行隐藏表面除去。然而,在其他示例中,图形处理系统可能不是延迟渲染系统,从而使得在对基元执行隐藏表面除去之前对基元片段执行纹理化和/或阴影化。
[0008]图2示出了已被划分为图块204的8
×
12阵列的渲染空间202,其中第m行和第n列的图块被称作204
mn
。基元206被示出。分块单元108进行操作以确定基元206在哪些图块204中。如果基元206与图块204至少部分地重叠,则基元206在该图块204“中”。分块单元108通过寻找基元206的三个顶点的最小和最大x和y坐标并且根据这些坐标形成框208来确定边界框208。分块单元108从而可以确定基元206不位于不在边界框208中的任何图块204中。如果图块204与边界框208至少部分地重叠,则图块204在边界框208“中”。在一些示例中,可以按照图块分辨率确定边界框,由此可以增加边界框的尺寸以使得边界框的边缘落在图块边界上。在图2中,有点的图块(即,渲染空间202中的顶部行和底部行的图块、第一列和最后两列的图块)位于边界框208外部,因此,基于这点,分块单元108可以确定基元206不在那些图块中。在极简单的实现方式中,分块单元108可以仅指示基元在边界框208中的所有图块中。然而,这意味着基元被指示为在其实际上不在其中的一些图块中。这可能导致由于在存储器1041中存储不必要的基元和/或基元ID而引起的附加的存储器消耗,以及渲染单元110中的低效率,这是因为针对在其中基元是不可见的图块从存储器1041中读取基元并且对基元进行处理。因此,通常优选的是,分块单元108确定基元位于边界框208中的哪些图块中。
[0009]针对边界框208中的每个图块(例如,图2中的白色图块中的每个白色图块),可以执行分块计算以确定基元206是否在该图块中。例如,用来确定基元206是否在图块204中的分块计算可能包括针对基元的每个边缘的计算。例如,如在图3中示出的,表示定义基元206的边缘的边缘线(3021、3022和3023)的等式使用基元206的顶点(3041、3042和3043)的位置而被确定。然后,针对每个边缘线302,可以执行测试以通过将图块中的测试点的位置与边缘线302的等式相比较来确定图块204是在相应边缘线302内部还是外部。针对关于不同边缘的测试,图块中的测试点可以是不同的,即,测试点可以是特定于边缘的。例如,为了测试图块是否在边缘线3021内部,测试点在图块的左下本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种在图形处理系统中处理基元的方法,所述方法包括对所述基元分块以确定所述基元在渲染空间中的多个图块中的哪些图块中,所述对所述基元分块包括:针对所述图块的子集中的每个图块,执行特定于边缘的测试以确定该图块是否在所述基元的边缘的外部;以及使用针对所述子集中的至少两个图块被确定为在所述基元的该边缘的外部的特定于边缘的测试的结果,来推断位于以所述至少两个图块为边界的区域内的至少一个其他图块在所述基元的该边缘的外部,而无需执行针对所述至少一个其他图块关于所述基元的该边缘的特定于边缘的测试。2.根据权利要求1所述的方法,其中,针对所述基元的每个边缘执行以下步骤:(i)针对所述子集中的每个图块,执行特定于边缘的测试以确定该图块是否在所述基元的边缘的外部,以及(ii)使用针对所述子集中的至少两个图块被确定为在所述基元的该边缘的外部的特定于边缘的测试的结果,来推断位于以所述至少两个图块为边界的区域内的至少一个其他图块在所述基元的该边缘的外部,而无需执行针对所述至少一个其他图块关于所述基元的该边缘的特定于边缘的测试。3.根据权利要求2所述的方法,其中,如果确定一图块在所述基元的任意边缘的外部,则所述基元被确定为在所述图块的外部。4.根据权利要求2所述的方法,其中,如果确定一图块在所述基元的所有边缘的内部,则所述基元被确定为在所述图块的内部。5.根据权利要求4所述的方法,所述方法还包括:针对所述渲染空间中的图块中的每个图块,渲染被确定为在所述图块内部的基元。6.根据权利要求1至5中任一项所述的方法,其中,所述执行特定于边缘的测试以确定该图块是否在所述基元的边缘的外部包括:使用描述所述基元的边缘的边缘等式来确定所述图块中的特定于边缘的测试点是在该边缘的内部还是在该边缘的外部。7.根据权利要求1至5中任一项所述的方法,其中,所述对所述基元分块还包括确定用于所述基元的边界框。8.一种图形处理系统,所述图形处理系统包括分块单元,所述分块单元用于对基元分块以确定所述基元在渲染空间中的多个图块中的哪些图块中,所述分块单元被配置为:针对所述图块的子集中的每个图块,执行特定于边缘的测试以确定该图块是否在所述基元的边缘的外部;以及使用针对所述子集中的至少两个图块被确定为在所述基元的该边缘的外部的特定于边缘的测试的结果,来推断位于以所述至少两个图块为边界的区域内的至少一个其他图块在所述基元的该边缘的外部,而无需执行针对所述至少一个其他图块关于所述基元的该边缘的特定于边缘的测试。9.根据权利要求8所述的图形处理系统,其中,所述分块单元被配置为针对所述基元的每个边缘执行以下步骤:(i)针对所述子集中...

【专利技术属性】
技术研发人员:X
申请(专利权)人:想象技术有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1