用于在图形处理系统中平铺图元的方法和平铺引擎技术方案

技术编号:29677717 阅读:21 留言:0更新日期:2021-08-13 22:00
本申请提供了用于在图形处理系统中平铺图元的方法和平铺引擎。方法包括:接收多个图元块,每个图元块包括一个或多个图元区段,每个图元区段包括一个或多个图元;针对所接收的图元块的每个图元区段,确定图元区段的哪些图元至少部分地落在图块的边界内;针对包括至少部分地落在图块的边界内的至少一个图元的每个图元块,将识别图元块的信息添加到图块的显示列表;针对每个所标识的图元块,将信息添加到所述显示列表,所述信息标识包括至少部分地落在图块的所述边界内的至少一个图元的所述图元块的每个图元区段;以及针对每个所标识的图元区段,将信息添加到所述显示列表,所述信息标识所述图元区段中的至少部分地落在图块的所述边界内的图元。

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

【技术保护点】
1.一种用于图形处理系统的平铺引擎(1100),在所述图形处理系统中,渲染空间被分成多个图块,所述平铺引擎(1100)包括:/n平铺逻辑(1102),所述平铺逻辑被配置为:/n接收多个图元块,每个图元块包括一个或多个图元区段,每个图元区段包括一个或多个图元;以及/n针对所接收的图元块的每个图元区段,确定所述图元区段的所述图元是否至少部分地落在所述多个图块中的图块的边界内;以及/n显示列表生成器(1104),所述显示列表生成器被配置为:/n针对包括至少部分地落在所述图块的所述边界内的至少一个图元的每个图元块,将标识所述图元块的信息添加到所述图块的显示列表;/n针对每个所标识的图元块,将信息添加到所述显示列表,所述信息标识包括至少部分地落在所述图块的所述边界内的至少一个图元的所述图元块的每个图元区段;以及/n针对每个所标识的图元区段,将标识所述图元区段中至少部分地落在所述图块的所述边界内的所述图元的信息添加到所述显示列表。/n

【技术特征摘要】
20200213 GB 2002003.8;20200213 GB 2002004.61.一种用于图形处理系统的平铺引擎(1100),在所述图形处理系统中,渲染空间被分成多个图块,所述平铺引擎(1100)包括:
平铺逻辑(1102),所述平铺逻辑被配置为:
接收多个图元块,每个图元块包括一个或多个图元区段,每个图元区段包括一个或多个图元;以及
针对所接收的图元块的每个图元区段,确定所述图元区段的所述图元是否至少部分地落在所述多个图块中的图块的边界内;以及
显示列表生成器(1104),所述显示列表生成器被配置为:
针对包括至少部分地落在所述图块的所述边界内的至少一个图元的每个图元块,将标识所述图元块的信息添加到所述图块的显示列表;
针对每个所标识的图元块,将信息添加到所述显示列表,所述信息标识包括至少部分地落在所述图块的所述边界内的至少一个图元的所述图元块的每个图元区段;以及
针对每个所标识的图元区段,将标识所述图元区段中至少部分地落在所述图块的所述边界内的所述图元的信息添加到所述显示列表。


2.根据权利要求1所述的平铺引擎(1100),其中所述标识图元区段的信息包括标识所述图元区段在存储器中的位置的信息。


3.根据权利要求1所述的平铺引擎(1100),其中所述显示列表生成器(1104)被配置为:
如果图元块的第一图元区段包括至少部分地落在所述图块的所述边界内的至少一个图元,则将第一类型的图元块条目添加到所述显示列表,所述第一类型的图元块条目包括标识所述图元块的所述信息和将所述第一图元区段标识为包括至少部分地落在所述图块的所述边界内的至少一个图元的图元区段的所述信息;并且
如果所述图元块的所述第一图元区段不包括至少部分地落在所述图块的所述边界内的至少一个图元,则将第二不同类型的图元块条目添加到所述显示列表,所述第二不同类型的图元块条目包括标识所述图元块的所述信息和指示所述第一图元区段不包括至少部分地落在所述图块的所述边界内的至少一个图元的信息。


4.根据权利要求3所述的平铺引擎(1000),其中所述第一类型的图元块条目具有标志集合,并且所述第二类型的图元块条目不具有标志集合。


5.根据权利要求3所述的平铺引擎(1100),其中所述显示列表产生器(1104)被配置为针对所述图元块的除所述第一图元区段之外的包括至少部分地落在所述图块的所述边界内的至少一个图元的每个图元区段,将图元区段条目添加到所述图块的所述显示列表。


6.根据权利要求1所述的平铺引擎(1100),其中所述显示列表生成器(1104)被配置为,针对包括至少部分地落在所述图块的所述边界内的至少一个图元的图元块的每个图元区段,将图元区段条目添加到所述显示列表。


7.根据权利要求5或6所述的平铺引擎(1100),其中每个图元段条目包括标识存储器中的对应图元段的位置的信息。


8.根据权利要求7所述的平铺引擎(1100),其中标识存储器中所述对应图元区段的所述位置的所述信息是与存储器中的所述图元块的位置的偏移。


9.根据权利要求1至6中任一项所述的平铺引擎(1100),其中标识至少部分地落在所述图块的边界内的图元区段中的所述图元的所述信息包括图元掩码,所述图元掩码包括所述图元区段中的每个图...

【专利技术属性】
技术研发人员:杨喜乐
申请(专利权)人:畅想科技有限公司
类型:发明
国别省市:英国;GB

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

1