用于在图形处理系统中分层存储平铺信息的数据结构、方法和平铺引擎技术方案

技术编号:29678346 阅读:18 留言:0更新日期:2021-08-13 22:01
本发明专利技术公开了用于在基于图块的图形处理系统中对图元进行平铺的方法和平铺引擎,在基于图块的图形处理系统中渲染空间被划分成多个图块。该方法包括:生成图块组的多级分层结构,该多级分层结构中的每一级包括一个或多个图块组,该一个或多个图块组包括多个图块中的一个或多个;接收多个图元块,每个图元块包括一个或多个图元的几何结构数据;将多个图元块中的每一个与图块组中的一个或多个相关联,直到最大数目的图块组,使得如果图元块中的至少一个图元至少部分地落在图块的边界内,则图元块与包括图块的至少一个图块组相关联;以及基于该关联生成用于每个图块组的控制流,其中每个控制流包括用于与对应的图块组相关联的每个图元块的图元块条目。

【技术实现步骤摘要】
用于在图形处理系统中分层存储平铺信息的数据结构、方法和平铺引擎
本申请案涉及用于在图形处理系统中分层存储平铺信息的数据结构、方法和平铺引擎,并且具体地涉及基于图块的渲染图形处理系统。
技术介绍
图形处理系统被配置为例如从在计算机系统上运行的应用程序(例如游戏应用程序)接收图形数据,并对来自图形数据的图像进行渲染以提供渲染输出。举例来说,应用程序可以生成场景的3D模型并输出表示场景中的对象的几何结构数据。特定来说,应用程序可以使用一个或多个图元(即,简单的几何结构,例如但不限于可以被应用纹理的矩形、三角形、线和点)来表示每个对象,所述多个图元由一个或多个顶点的位置限定。在这些状况下,由应用程序输出的几何结构数据可以包含标识每个顶点的信息(例如顶点在世界空间中的坐标)和指示由顶点形成的图元的信息。然后,图形处理系统将接收到的几何结构数据转换成可以在屏幕上显示的图像。图形处理系统可以例如实施即时模式渲染(IMR)或基于图块的渲染(TBR)。在IMR中,将整个场景作为整体进行渲染。与此对比,在TBR中,使用被划分成被称为图块的子区段的渲染空间对场景进行渲染,其中可针对每个图块独立地执行渲染过程的至少一部分。图块可以具有任何合适形状,但通常为矩形(其中术语“矩形”包含正方形)。例如,图1示出被划分成一组8×8个图块T0至T63的示例渲染空间100。每个图块对应于渲染空间中的像素块。例如,每个图块可对应于32×32个像素块。在图1的示例中,图块按照Z阶曲线(也称为Morton阶)编号,但是对于本领域技术人员来说,这仅仅是示例。TBR的优点为,可以在渲染期间使用快速、片上存储器以用于颜色、深度和模板缓冲区操作,这与IMR相比允许显著减少系统存储器带宽,而不需要足够大以同时存储用于整个场景的数据的片上存储器。TBR涉及两个关键阶段:几何结构处理阶段;以及光栅化阶段。在几何结构处理阶段期间,将从应用程序(例如游戏应用程序)接收的几何结构数据(例如限定图元的顶点)从世界空间坐标变换成屏幕空间坐标。然后创建至少部分地落在图块的边界内的经过变换的图元(例如三角形)的每图块列表。在光栅化阶段期间,对每个图块单独地渲染(即,将经过变换的图元映射到像素并且针对图块中的每个像素标识颜色)。这可以包括标识哪个(哪些)图元在每个像素处是可见的。接着可以由每个像素处的可见图元的外观确定所述像素的颜色,所述可见图元可以由应用于所述像素处的纹理和/或在所述像素上运行的像素着色器程序限定。像素着色器程序描述将针对给定像素执行的操作。对每个图块单独地渲染会使图形处理系统能够在光栅化阶段中对特定图块进行渲染时仅检索与所述图块相关的经过变换的图元数据,这会使针对存储器(例如中间缓冲区)的带宽要求保持为低。一旦已经针对图块中的每个像素标识出颜色值,就将图块的颜色值写出到存储器(例如帧缓冲区)。一旦已经渲染整个场景(即,一旦已经针对所有图块的像素确定了颜色值),场景就可以例如显示在屏幕上。图2示出示例TBR图形处理系统200。系统200包括存储器2021、2022、2023、2024、几何结构处理逻辑204和光栅化逻辑106。存储器2021、2022、2023和2024中的两个或多个可以在同一物理存储器单元中实现。几何结构处理逻辑204实施TBR的几何结构处理阶段。几何结构处理逻辑204包括变换逻辑208、图元块生成器210和平铺引擎212。变换逻辑208从应用程序(例如游戏应用程序)接收几何结构数据(例如顶点、图元和/或补片)并将几何结构数据变换到渲染空间(例如屏幕空间)中。变换逻辑208还可以执行例如裁剪和剔除的功能以移除落在视锥外的几何结构数据(例如图元或补片),和/或应用所属领域的技术人员所知的照明/属性处理。图元块生成器210将经过变换的图元(即,与其相关的经过变换的几何结构数据)以图元块的形式存储在存储器2022中。图元块是一个或多个图元(例如,与其相关的经过变换的几何结构数据)一起存储在其中的数据结构。将图元存储在图元块中可允许将图元的经过变换的几何结构数据更有效地存储在存储器2022中。具体而言,用于图元的经过变换的几何结构数据通常包括用于多个顶点的经过变换的顶点信息,并且这些顶点通常在多个图元之间共享(或为多个图元所共有)。因此,在同一图元块中的多个图元共享顶点的状况下,与所述顶点有关的数据只需在所述图元块中存储一次。可以使用任何适当的方法或技术将经过变换的图元分组成图元块。例如,在一些情况下,可以基于经过变换的图元到达图元块生成器210的次序将经过变换的图元分组成图元块。在这些状况下,每个图元块可以具有:最大大小(例如,就位或字节而言)、可以属于图元块的最大图元数和/或可以属于图元块的最大顶点数,并且图元块生成器210可以被配置为将图元添加到当前图元块中,直到达到一个或多个最大值。在其他情况下,可基于图元在渲染空间中的位置将所述图元分组成图元块,使得空间上相似的图元在同一图元块中。例如,可以将渲染空间划分成多个宏区域,这些宏区域可以包围多个图块(例如,被划分成1024个32×32的图块的1024×1024的渲染空间可以具有十六个256×256的宏区域),并且图元块生成器210可以被配置为维护每个宏区域的图元块。然后,当图元块生成器210接收到图元时,它确定所述图元至少部分地落在哪个(哪些)宏区域内。如果图元块生成器210确定所述图元至少部分地落在仅一个宏区域内,则图元块生成器210可以将图元(即,与所述图元相关的经过变换的几何结构数据)放置在所述宏区域的图元块中。如果图元块生成器210确定所述图元落在多于一个的宏区域内,则图元块生成器210可以被配置为(i)选择所述图元落在的宏区域中的一个(例如,第一个),并将所述图元(即,与其相关的经过变换的几何结构数据)放置在所选的宏区域的图元块中;或(ii)将所述图元(即,与其相关的经过变换的几何结构数据)放置在所述图元至少部分地落在的每个宏区域的图元块中。将图元块(或至少其图元)连同标识存储器中的图元块的位置的信息一起提供给平铺引擎212。平铺引擎212根据经过变换的几何结构数据为每个图块(例如图1的图块T0至T63中的每个图块)生成至少部分地落在所述图块内的经过变换的图元的列表。所述列表可以被称为显示列表、经过变换的显示列表、控制列表或控制数据。在一些状况下,经过变换的显示列表可以包括到与至少部分地落在图块内的图元相关的经过变换的几何结构数据(例如顶点数据)的指针或链接。例如,图3示出图块(例如T0)的示例显示列表302,所述显示列表包括针对每个图元块3060,3061的图元块条目3040,3041,所述每个图元块包括至少部分地落在所述图块的边界内的至少一个图元。每个图元块条目3040,3041包括标识所述图元块在存储器中的位置(例如,所述图元块在存储器中的地址)的信息308以及标识所述图元块的哪些图元至少部分地落在图块的边界内的信息310。如图3所示,标识出所述图元块中的哪些图元至少部分地落在图块中的信息310可以是掩码的形式,所述掩码包括所述图元块中的每个图元本文档来自技高网...

【技术保护点】
1.一种在基于图块的图形处理系统中对图元进行平铺的方法(600),在所述基于图块的图形处理系统中,渲染空间被划分成多个图块,所述方法(600)包括:/n生成图块组的多级分层结构,所述多级分层结构中的每一级包括一个或多个图块组,所述一个或多个图块组包括所述多个图块中的一个或多个(602);/n接收标识多个图元块中的每一个的信息,每个图元块包括一个或多个图元的几何结构数据(604、608);/n将所述多个图元块中的每一个与所述图块组中的一个或多个相关联,直到最大数目的图块组,使得如果图元块中的至少一个图元至少部分地落在图块的边界内,则所述图元块与包括所述图块的至少一个图块组相关联(606);/n基于所述关联生成用于每个图块组的控制流,其中每个控制流包括用于与对应的图块组相关联的每个图元块的图元块条目(610)。/n

【技术特征摘要】
20200617 EP 20386032.5;20200617 EP 20386033.3;20201.一种在基于图块的图形处理系统中对图元进行平铺的方法(600),在所述基于图块的图形处理系统中,渲染空间被划分成多个图块,所述方法(600)包括:
生成图块组的多级分层结构,所述多级分层结构中的每一级包括一个或多个图块组,所述一个或多个图块组包括所述多个图块中的一个或多个(602);
接收标识多个图元块中的每一个的信息,每个图元块包括一个或多个图元的几何结构数据(604、608);
将所述多个图元块中的每一个与所述图块组中的一个或多个相关联,直到最大数目的图块组,使得如果图元块中的至少一个图元至少部分地落在图块的边界内,则所述图元块与包括所述图块的至少一个图块组相关联(606);
基于所述关联生成用于每个图块组的控制流,其中每个控制流包括用于与对应的图块组相关联的每个图元块的图元块条目(610)。


2.根据权利要求1所述的方法(600),其中所述图块组的最大数目是一。


3.根据权利要求1所述的方法(600),其中将图元块与所述图块组中的一个或多个相关联包括:
标识所述渲染空间中的轴对准边界框,所述轴对准边界框包围所述图元块中的所述一或多个图元;以及
将所述图元块与最小图块组相关联,所述最小图块组的一或多个图块包围所述边界框。


4.根据权利要求1所述的方法(600),其中所述图块组的最大数目大于一。


5.根据权利要求1所述的方法(600),其中将图元块与所述图块组中的一个或多个相关联包括:
标识所述渲染空间中的轴对准边界框,所述轴对准边界框包围所述图元块中的所述一或多个图元;以及
将所述图元块与一个或多个图块组的最小集和相关联,所述一个或多个图块组的最小集和中的一个或多个图块包围所述边界框。


6.根据权利要求5所述的方法(600),其中所述一个或多个图块组的集合中的每个图块组处于所述分层结构的同一级。


7.根据权利要求5所述的方法(600),其中所述一个或多个图块组的集合包括多个图块组,并且所述集合中的所述图块组中的至少两个处于所述分层结构的不同级。


8.根据权利要求1至7中任一项所述的方法(600),其中每个图元块条目包括标识对应的图元块的信息。


9.根据权利要求1至7中任一项所述的方法(600),其中每个图元块与所述渲染空间中的轴对准边界框相关联,所述轴对准边界框包围所述图元块的所述一个或多个图元,并且如果图元块的所述边界框不包围由所述图块组中的所述图块覆盖的所述渲染空间的区域,则用于所述图元块的所述图元块条目包括标识所述边界框的一个或多个坐标的信息。


10.根据权利要求1至7中任一项所述的方法(600),其中每个图元块与所述渲染空间中的轴对准边界框相关联,所述轴对准边界框包围所述图元集合中的所述一个或多个图元,并且如果图元块不包括落在所述图块组的每个图块中的至少一个图元,则所述图元块的所述图元块条目包括覆盖掩码,所述覆盖掩码指示与所述图元块的所述边界框相交的所述图块组中的哪些图块对于所述图元块有效,如果图元块中的至少一个图元至少部分地落在所述图块的所述边界内,则所述图块对于所述图元块是有效的。


11.根据权利要求10所述的方法(600),其中每个覆盖掩码包括相关图块区块的连续越来越小的区域的信息,所述信息指示所述区域对于所述图元块是否有效,所述相关图块区块包括与所述图元块的所述边界框相交的所述图块组中的所述图块。


12.根据权利要求10所述的方法(600),还包括通过以下步骤生成用于图元块条目的所述覆盖掩码:
a)将相...

【专利技术属性】
技术研发人员:迭戈·耶稣约翰·W·霍森帕纳吉奥提斯·韦伦扎斯罗伯特·布里格杨喜乐
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国;GB

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

1