当前位置: 首页 > 专利查询>ARM有限公司专利>正文

处理图形图元的方法、图形处理系统和存储介质技术方案

技术编号:28626324 阅读:41 留言:0更新日期:2021-05-28 16:22
本公开涉及处理图形图元的方法、图形处理系统和存储介质。具体地,当在图形处理系统中处理图形图元时,将渲染输出划分成多个区域以用于渲染,各个区域包括渲染输出的相应面积;并且针对一个或更多个待渲染图元的集合,确定针对渲染输出的所述多个区域中的哪些区域应当渲染图元;并且针对渲染输出中的被确定应当渲染图元的各个区域,将所述图元的几何数据连同要用于对该区域的图元进行渲染的状态数据的指示一起存储在存储器中的相应数据结构中,使得待渲染的图元的几何数据被存储在对所述渲染输出的被确定应当渲染图元的各个不同区域的相应不同数据结构中。

【技术实现步骤摘要】
处理图形图元的方法、图形处理系统和存储介质
本文所描述的技术涉及计算机图形处理,特别涉及在输出的渲染期对图形图元(graphicsprimitive)的处理。
技术介绍
正常情况下,执行图形处理首先是通过把要渲染的图形处理(渲染)输出(诸如要显示的帧)划分成多个相似的基本组件(所-谓的“图元”),以使更容易执行图形处理操作。这些“图元”通常采用简单多边形的形式,诸如三角形。各个图元在这个级通常是由顶点集限定并表示的。图元的各个顶点已经与表示该顶点的数据集(诸如位置、颜色、纹理以及其它属性数据)关联。然后,例如在栅格化(rasterising)和渲染与该顶点相关的图元时使用这种“顶点数据”,以便生成图形处理系统的希望渲染输出。对于要由图形处理系统生成的给定输出(例如,待显示的帧),通常作为针对所讨论的输出而定义的顶点集。然后,要针对该输出进行处理的图元将被指示为包括正被生成的图形处理输出的顶点集中的给定顶点。通常,将总体输出(例如,待生成的帧)划分成较小的处理单位(称为“绘图调用(drawcall)”)。各个绘图调用将具有为其而定义的相应的顶点集和使用这些顶点的图元集。针对给定帧,例如,可能有大约几百次绘图调用以及数十万图元。一旦生成和定义了图元及其顶点,就可以由图形处理系统对它们进行处理,以便生成希望的图形处理输出(渲染目标),诸如用于显示的帧。这基本上涉及确定与待处理的渲染输出面积关联的采样点阵列中的哪些采样点被图元覆盖,然后确定各个采样点应具有的外观(appearance)(例如,根据其颜色等)来表示该采样点处的图元。这些处理分别被通称为栅格化和渲染。(有时使用术语“栅格化”是指图元转换成样本位置和渲染。然而,本文中使用“栅格化”仅仅是指将图元数据转换成采样点地址。)栅格化和渲染处理使用与正被处理的图元的顶点关联的顶点属性。为促进该操作,在对图元进行栅格化和渲染之前,针对给定图形处理输出(例如,绘图调用)而定义的顶点的属性通常经受初始的所谓的“顶点着色”操作。这种“顶点着色”操作进行操作以将各个顶点的属性变换成用于后续图形处理操作的希望形式。例如,这可以包括将顶点位置属性从它们初始被限定的世界或用户空间变换至要显示图形处理系统的输出的画面空间。因此,图形处理流水线通常将包括顶点着色级(顶点着色器),该顶点着色级对为顶点限定的初始顶点属性值执行顶点着色计算,以生成希望的输出顶点属性(即,恰当地“着色的”属性)集合来供图形处理流水线的后续处理级使用。一旦对顶点属性进行了着色,然后,当在图形处理流水线的其余部分中处理顶点(及其相关的图元)时,将使用“着色的”属性。图形处理的一种形式使用所-谓的“基于图块”的渲染。在基于图块的渲染方面,将二维渲染输出(即,渲染处理的输出,诸如待显示的输出帧)渲染为多个较小面积区域,通常被称为“图块”。在这样的排布结构中,通常将渲染输出划分(按面积)成规则尺寸和形状的渲染图块(它们例如通常是正方形或矩形)。通常用于“图块化”和“基于图块”渲染的其它术语包括“分块(chunking)”(渲染图块被称为“块(chunk)”)和“桶形(bucket)”渲染。为方便起见,将在下文中使用术语“图块”和“图块化”。但是,应当理解,这些术语旨在涵盖所有另选和等同的术语和技术,其中,将渲染输出渲染为多个较小面积区域。)在基于图块的图形处理流水线中,将正被生成的渲染输出的几何形状(图元)分类到渲染输出面积的各区域中,以使识别各个渲染图块的需要处理的几何形状(图元)。这种分类可使识别给定渲染图块的需要处理的图元(以便例如避免不必要地渲染图块中实际上不存在的图元)。分类处理生成渲染输出的各区域的待渲染图元的列表(通常称为“图元列表”)。一旦为所有渲染输出区域准备好图元列表,就通过栅格化并渲染为渲染图块列出的图元来对各个渲染图块进行处理。因此,为各个渲染输出区域准备好图元列表的处理基本上涉及确定针对给定渲染输出区域的应当进行渲染的图元。这种处理通常是通过确定(以希望的准确度水平)与所讨论的渲染输出区域相交(intersect)(即,将要(至少部分地)出现所讨论的渲染输出区域内)的图元,然后准备好这些图元的列表以供图形处理系统将来使用来执行的。在此应注意的是,在一个图元落入一个以上渲染输出区域的情况下(通常是这种情况),该图元是包括在它所落入的各个区域的图元列表中的。准备好了图元列表的渲染输出区域可以是单个渲染图块,或者一组多个渲染图块等。实际上,能够将各个渲染输出区域认为具有仓箱(bin)(图元列表),被发现落入该区域(即,与该区域相交)的任何图元都是放置到该仓箱中的(实际上,以这种方式逐个区域分类图元的处理通称为“分箱(binning)”)。已知是以分层方式,使用各种不同的区域大小(层级结构中的级别)(例如下降到渲染图块大小(最低级别))来实现分箱的。然而,可以根据需要以更复杂或不太复杂的方式来执行分箱。因此,在基于图块的处理系统中,将存在初遍(pass)处理,实际上,该初遍处理是将待处理的图形图元(和/或其它图形实体、几何形状等)分类到已经出于分类目的而划分了渲染输出的区域中。然后,将这些图块皆分别进行渲染,并接着重新组合,以提供完整的渲染输出(例如,用于显示的帧)。通常使用表示图元的几何数据集以及指示要在栅格化/渲染图元时执行的操作的状态数据,来执行对图块的图元的渲染。因此,在基于图块的渲染系统中,图元列表反映了图元在渲染输出中的空间分布,即,通过指定应针对哪些区域/图块来渲染哪些图元。因此,将用于渲染输出的所有几何数据一起存储在存储器中的用于渲染输出的数据结构中,并且通过参考图元列表从该数据结构中获取对图块进行渲染的相关图元数据。然后,将任何状态数据存储在另一数据结构中。本申请人认为仍然存在提供另选的改进的图形处理系统的范围。
技术实现思路
本文所描述的技术的第一实施方式包括一种使用图形处理系统对图形图元进行处理的方法,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示该图元的几何数据以及指示要在对该图元进行栅格化和/或渲染时执行的操作的状态数据,所述方法包括以下步骤:将所述渲染输出划分成多个区域以用于渲染,各个区域包括所述渲染输出的相应面积;以及针对接收到的要处理的一个或更多个图元的集合:获取用于对所述一个或更多个图元的集合进行渲染的关联几何数据;确定针对所述渲染输出的所述多个区域中的哪些区域应当渲染所述一个或更多个图元的集合;以及针对所述渲染输出中的被确定应当渲染所述一个或更多个图元的集合的各个区域,将所述一个或更多个图元的几何数据连同要用于对所述一个或更多个图元的集合进行栅格化和/或渲染的关联状态数据的指示一起存储在存储器中的针对该区域的相应数据结构中,使得针对所述待本文档来自技高网
...

【技术保护点】
1.一种使用图形处理系统对图形图元进行处理的方法,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示所述图元的几何数据以及指示要在对所述图元进行栅格化和/或渲染时执行的操作的状态数据,所述方法包括以下步骤:/n将所述渲染输出划分成多个区域以用于渲染,各个区域包括所述渲染输出的相应面积;以及/n针对接收到的要处理的一个或更多个图元的集合,进行如下操作:/n获取用于对所述一个或更多个图元的集合进行渲染的关联几何数据;/n确定针对所述渲染输出的所述多个区域中的哪些区域应当渲染所述一个或更多个图元的集合;以及/n针对所述渲染输出中的被确定应当渲染所述一个或更多个图元的集合的各个区域,将所述一个或更多个图元的几何数据连同要用于对所述一个或更多个图元的集合进行栅格化和/或渲染的关联状态数据的指示一起存储在存储器中的针对该区域的相应数据结构中,/n使得针对所述待渲染的一个或更多个图元的集合的关联状态数据的指示以及所述几何数据被存储在针对所述渲染输出的被确定应当渲染所述一个或更多个图元的集合的各个不同区域的相应不同数据结构中。/n...

【技术特征摘要】
20191127 US 16/697,9841.一种使用图形处理系统对图形图元进行处理的方法,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示所述图元的几何数据以及指示要在对所述图元进行栅格化和/或渲染时执行的操作的状态数据,所述方法包括以下步骤:
将所述渲染输出划分成多个区域以用于渲染,各个区域包括所述渲染输出的相应面积;以及
针对接收到的要处理的一个或更多个图元的集合,进行如下操作:
获取用于对所述一个或更多个图元的集合进行渲染的关联几何数据;
确定针对所述渲染输出的所述多个区域中的哪些区域应当渲染所述一个或更多个图元的集合;以及
针对所述渲染输出中的被确定应当渲染所述一个或更多个图元的集合的各个区域,将所述一个或更多个图元的几何数据连同要用于对所述一个或更多个图元的集合进行栅格化和/或渲染的关联状态数据的指示一起存储在存储器中的针对该区域的相应数据结构中,
使得针对所述待渲染的一个或更多个图元的集合的关联状态数据的指示以及所述几何数据被存储在针对所述渲染输出的被确定应当渲染所述一个或更多个图元的集合的各个不同区域的相应不同数据结构中。


2.根据权利要求1所述的方法,其中,将所述几何数据和状态数据存储在针对区域的相应数据结构中的步骤包括:确定所述存储器中是否已经存在针对该区域的数据结构,并且当所述存储器中已经存在针对该区域的数据结构时,将所述图元数据添加至现有数据结构,而如果不存在针对该区域的数据结构,则所述方法包括以下步骤:生成针对该区域的新数据结构。


3.根据权利要求2所述的方法,所述方法包括以下步骤:当确定了应当将针对一个或更多个图元的集合的新几何数据和状态数据存储在存储器中的一个或更多个数据结构中时,确定可用空间是否小于所述存储器的可用空间阈值,并且当可用空间小于所述存储器的所述可用空间阈值时,进行如下操作:
从存储器中选择一个或更多个区域进行清除,所述一个或更多个区域的数据结构已经存在于所述存储器中;从针对所选区域的数据结构读出供所述图形处理器使用的数据;然后,从所述存储器废弃针对所选区域的数据结构以释放存储空间。


4.一种使用图形处理系统对图形图元进行处理的方法,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示所述图元的几何数据以及指示要在对所述图元进行栅格化和/或渲染时执行的操作的状态数据,其中,所述渲染输出被划分成多个区域以用于渲染,各个区域包括所述渲染输出的相应面积,并且其中,把要用于对图元进行渲染的状态数据的指示以及几何数据存储在存储器中的针对不同区域的相应不同数据结构中,所述方法包括以下步骤:
当针对一个或更多个图元的集合的新数据要被存储在存储器中时,确定可用空间是否小于所述存储器中的针对该数据的可用空间阈值,并且当可用空间小于所述存储器的所述可用空间阈值时,进行如下操作:
从存储器中选择一个或更多个区域进行清除,所述一个或更多个区域的数据结构已经存在于所述存储器中;从针对所选区域的数据结构读出供所述图形处理器使用的数据;然后,从所述存储器废弃针对所选区域的数据结构以释放存储空间。


5.根据权利要求3或4所述的方法,其中,基于当前在所述存储器中的哪个区域存储有最大量的图元数据,来选择要清除的区域。


6.根据权利要求3或4所述的方法,其中,从针对所选区域的数据结构读出供所述图形处理器使用的数据的步骤包括:将所述状态数据的指示和所述几何数据传递至所述图形处理器,以对在针对所选区域的数据结构中存储了所述状态数据的指示和所述几何数据的图元进行渲染。


7.根据权利要求3或4所述的方法,所述方法包括以下步骤:选择要清除的第一区域;使用在针对所述第一区域的相应数据结构中针对所述第一区域的一个或更多个图元存储的所述几何数据和所述关联状态数据来对所述一个或更多个图元进行渲染;以及废弃针对所述第一区域的数据结构,
所述方法还包括以下步骤:当确定了应当渲染所述第一区域的后续图元时,在存所述储器中生成针对所述第一区域的新数据结构。


8.根据权利要求1至4中任一项所述的方法,其中,所述存储器包括多个存储块,并且其中,生成针对区域的数据结构的步骤包括:为该区域分配第一存储块,并将该区域的图元数据添加到所述第一存储块中,直到所述第一存储块满了为止;并且当所述第一存储块已满时,为该区域分配第二存储块并链接所述第一存储块和所述第二存储块,使得所述数据结构包括链接的存储块集。


9.一种使用图形处理系统对图形图元进行处理的方法,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示所述图元的几何数据以及指示要在对所述图元进行栅格化和/或渲染时执行的操作的状态数据,所述方法包括以下步骤:
将所述渲染输出划分成多个区域以用于渲染,各个区域包括所述渲染输出的相应面积;以及
针对接收到的要处理的一个或更多个图元的集合:
获取用于对所述一个或更多个图元的集合进行渲染的关联几何数据;
确定针对所述渲染输出的所述多个区域中的哪些区域应当渲染所述一个或更多个图元的集合;以及
针对所述渲染输出中的被确定应当渲染所述一个或更多个图元的集合的各个区域,将所述一个或更多个图元的几何数据连同要用于对所述一个或更多个图元的集合进行栅格化和/或渲染的关联状态数据的指示一起存储在存储器中的针对该区域的相应数据结构中,使得针对所述待渲染的一个或更多个图元的集合的关联状态数据的指示以及所述几何数据被存储在针对所述渲染输出的被确定应当渲染所述一个或更多个图元的集合的各个不同区域的相应不同数据结构中;
所述方法还包括以下步骤:
当针对一个或更多个图元的集合的新数据要被存储在存储器中时,确定可用空间是否小于所述存储器中的针对该数据的可用空间阈值,并且当可用空间小于所述存储器的所述可用空间阈值时,进行如下操作:
从存储器中选择一个或更多个区域进行清除,所述一个或更多个区域的数据结构已经存在于所述存储器中;从针对所选区域的数据结构读出供所述图形处理器使用的数据;然后,从所述存储器废弃针对所选区域的数据结构以释放存储空间。


10.一种图形处理系统,所述图形处理系统包括存储器以及和所述存储器通信的图形处理器,其中,所述图形处理器被配置成,通过对用于渲染输出的多个图元进行渲染来生成所述渲染输出,其中,由所述图形处理器使用关联图元数据对图元进行渲染,所述关联图元数据包括表示所述图元的几何数据以及指示要在对所述图元进行栅格化和/或渲染时执行的操作的状态数据,所述图形处理器包括:
图元分类电路,所述图元分类电路被配置成:
针对接收到的要处理的一个或更多个图元的集合,进行如下操作:
获取用于对所述一个或更多个图元的集合进行渲染的关联几何数据;
确定针对所述渲染输出已被划分成的用于渲染目的的多个区域中的哪些区域应当渲染所述一个或更多个图元的集合,各个区域包括所述渲染输出的相应面积;以及
图元数据存储电路,所述图元数据存储电路被配置成:
针对所述渲染输出中的被所述图元...

【专利技术属性】
技术研发人员:I·R·布拉特A·D·恩格哈斯特韦德A·E·查芬A·L·塞尔维克O·H·乌尔恩霍特T·J·奥尔森
申请(专利权)人:Arm有限公司
类型:发明
国别省市:英国;GB

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

1