【技术实现步骤摘要】
图形处理系统中的隐藏面消除
本文所描述的技术涉及计算机图形的处理,特别是涉及图形处理中的隐藏面消除(hiddensurfaceremoval)。
技术介绍
正常情况下,执行图形处理首先是通过将图形处理(渲染)输出(诸如待显示的帧)划分成多个相似的基本组件(所谓的“图元(primitives)”),以使更容易执行图形处理操作。这些“图元”通常采用简单多边形的形式,诸如三角形。通常由图形处理器的驱动器基于从需要图形处理的应用(例如,游戏)接收到的图形绘制指令(请求),来生成用于输出(诸如待显示的帧)的图元。各个图元在这个级通常是由顶点集限定并表示的。图元的各个顶点已经关联其与表示该顶点的数据集(诸如位置、颜色、纹理以及其它属性数据)。然后,例如在栅格化(rasterising)和渲染(rendering)顶点(与该顶点相关的图元)时使用这种数据,例如用于显示。一旦生成和定义了图元及其顶点,就可以由图形处理器对它们进行处理,以便例如显示该帧。该处理基本上涉及确定覆盖待处理的渲染输出面积的采样点阵列中的哪些采样点被图元覆盖,然后确定各个采样点应具有的表现(例如,根据其颜色等)来表示该采样点处的图元。这些处理分别被通称为栅格化和渲染。栅格化处理确定应当用于图元的采样点(即,要用于表示渲染输出(例如,待显示的帧)中的图元的采样点的(x、y)位置)。这通常是使用图元的顶点的位置来完成的。渲染处理然后导出为表示采样点处的图元(即,“着色(shade)”各个采样点)所必需的数据(诸如红、 ...
【技术保护点】
1.一种操作图形处理器的方法,所述图形处理器包括:/n栅格化器,所述栅格化器对输入的图元进行栅格化,以生成待处理的图形片段,各个图形片段具有与该图形片段相关联的一个或更多个采样点;以及/n渲染器,所述渲染器对所述栅格化器生成的片段进行处理以生成输出片段数据;/n其中,所述栅格化器在接收到待栅格化的图元时,针对表示待生成的渲染输出的相应不同区域的一个或更多个区块中的各个区块,相对于该图元来测试该区块,以确定该图元是否至少部分地覆盖该区块;/n所述图形处理器还包括:/n区块早期深度测试电路,所述区块早期深度测试电路被配置成,关于渲染输出的以下区块来执行图元的早期深度测试:所述栅格化器发现所述图元至少部分地覆盖该区块;以及/n样本深度测试电路,所述样本深度测试电路被配置成,针对发现被图元覆盖的采样位置执行深度测试;/n所述方法包括以下步骤:在处理图元以生成渲染输出时,进行如下操作:/n存储所述渲染输出的每区块深度缓冲器,所述每区块深度缓冲器针对表示正被生成的所述渲染输出的相应不同区域的一个或更多个区块中的各个区块,存储该区块的深度值信息,以供所述区块早期深度测试电路在关于该区块执行图元的区块 ...
【技术特征摘要】
20200121 US 16/748,7121.一种操作图形处理器的方法,所述图形处理器包括:
栅格化器,所述栅格化器对输入的图元进行栅格化,以生成待处理的图形片段,各个图形片段具有与该图形片段相关联的一个或更多个采样点;以及
渲染器,所述渲染器对所述栅格化器生成的片段进行处理以生成输出片段数据;
其中,所述栅格化器在接收到待栅格化的图元时,针对表示待生成的渲染输出的相应不同区域的一个或更多个区块中的各个区块,相对于该图元来测试该区块,以确定该图元是否至少部分地覆盖该区块;
所述图形处理器还包括:
区块早期深度测试电路,所述区块早期深度测试电路被配置成,关于渲染输出的以下区块来执行图元的早期深度测试:所述栅格化器发现所述图元至少部分地覆盖该区块;以及
样本深度测试电路,所述样本深度测试电路被配置成,针对发现被图元覆盖的采样位置执行深度测试;
所述方法包括以下步骤:在处理图元以生成渲染输出时,进行如下操作:
存储所述渲染输出的每区块深度缓冲器,所述每区块深度缓冲器针对表示正被生成的所述渲染输出的相应不同区域的一个或更多个区块中的各个区块,存储该区块的深度值信息,以供所述区块早期深度测试电路在关于该区块执行图元的区块早期深度测试时使用;以及
存储所述渲染输出的每样本深度缓冲器,所述每样本深度缓冲器存储正被生成的所述渲染输出的一个或更多个采样位置中的各个采样位置的深度值,以供所述样本深度测试电路在关于正被生成的所述渲染输出的采样位置执行图元的深度测试时使用;
所述方法还包括以下步骤:
所述图形处理器停止处理所述渲染输出,并且在所述图形处理器这样做时,进行如下操作:
将所述每样本深度缓冲器中的所述每样本深度值写至储存器,以使能够在继续所述渲染输出的处理时恢复所述每样本深度值,但是丢弃所述每区块深度缓冲器中的所述每区块深度值信息;
并且
所述图形处理器恢复所述渲染输出的处理;并且在所述图形处理器这样做时,进行如下操作:
将被写出至储存器的所述每样本深度缓冲器值加载到每样本深度缓冲器中,以供在继续所述渲染输出的处理时使用;以及
使用所加载的每样本深度缓冲器值,在每区块深度缓冲器中存储每区块深度值信息集,以在继续所述渲染输出的处理时,由所述区块早期深度测试电路在执行图元的区块早期深度测试时使用。
2.根据权利要求1所述的方法,其中,所述栅格化器是分层栅格化器,所述分层栅格化器工作以针对渲染输出的以下区块来迭代地测试图元:所述区块的尺寸逐步变小直至最小区块尺寸,并且所述渲染输出的被执行所述早期深度测试的区块对应于所述渲染输出的以下区块:所述栅格化器为了所述栅格化处理而对所述区块进行了测试。
3.一种操作图形处理器的方法,所述图形处理器包括:
栅格化器,所述栅格化器对输入的图元进行栅格化,以生成待处理的图形片段,各个图形片段具有与该图形片段相关联的一个或更多个采样点;以及
渲染器,所述渲染器对所述栅格化器生成的片段进行处理以生成输出片段数据;
其中,所述栅格化器在接收到待栅格化的图元时,针对表示待生成的渲染输出的相应不同区域的一个或更多个区块中的各个区块,相对于该图元来测试该区块,以确定该图元是否至少部分地覆盖该区块;
所述图形处理器还包括:
区块早期深度测试电路,所述区块早期深度测试电路被配置成,关于渲染输出的以下区块来执行图元的早期深度测试:所述栅格化器发现所述图元至少部分地覆盖该区块;以及
样本深度测试电路,所述样本深度测试电路被配置成,针对发现被图元覆盖的采样位置执行深度测试;
所述方法包括以下步骤:
所述图形处理器进行如下操作:
将每样本深度缓冲器值加载到每样本深度缓冲器中,以供在处理渲染输出时使用,所述每样本深度缓冲器存储正被生成的所述渲染输出的一个或更多个采样位置中的各个采样位置的深度值,以供所述样本深度测试电路在关于正被生成的所述渲染输出的采样位置执行图元的深度测试时使用;以及
使用所加载的每样本深度缓冲器值,在每区块深度缓冲器中存储每区块深度值信息集,以供在处理所述渲染输出时,由所述区块早期深度测试电路在执行区块早期深度测试时使用,所述每区块深度缓冲器针对表示正被生成的所述渲染输出的相应不同区域的一个或更多个区块中的各个区块,存储该区块的深度值信息,以供所述区块早期深度测试电路在关于该区块执行图元的区块早期深度测试时使用。
4.根据权利要求1至3中任一项所述的方法,其中,所述每区块深度缓冲器存储如下各个区块的最小深度值和最大深度值:各个区块的深度值信息已被存储。
5.根据权利要求4所述的方法,其中,
使用所加载的每样本深度缓冲器值,在每区块深度缓冲器中存储每区块深度值信息集,以供在处理所述渲染输出时,由所述区块早期深度测试电路在执行图元的区块早期深度测试时使用的步骤包括:
将经恢复的每区块深度缓冲器中的区块的最小深度值设定成落入该区块内的所述采样位置的、已经被加载至所述每样本深度缓冲器的每样本深度值中的最小每样本深度值;并且将区块的最大深度值设定成落入该区块内的所述采样位置的、已经被加载至所述每样本深度缓冲器的每样本深度值中的最大每样本深度值。
6.根据权利要求1至5中的任一项所述的方法,其中,将所述每样本深度缓冲器值加载到每样本深度缓冲器中以供在处理所述渲染输出时使用的步骤包括:
使用直接存储器存取处理来加载所述每样本深度值。
7.根据权利要求1至6中的任一项所述的方法,其中,将所述每样本深度缓冲器值加载到每样本深度缓冲器中以供在处理所述渲染输出时使用的步骤包括:
按照逐区块的顺序加载所述每样本深度值。
8.根据权利要求1至7中的任一项所述的方法,其中,所述每区块深度缓冲器被配置成,存储区块的分层布局的深度值;并且其中,
使用所加载的每样本深度缓冲器值,在每区块深度缓冲器中存储每区块深度值信息集,以供在处理所述渲染输出时,由所述区块早期深度测试电路在执行图元的区块早期深度测试时使用的步骤包括:
使用所加载的每样本深度缓冲器值,在每区块深度缓冲器中存储每区块深度值信息集,以供在处理所述渲染输出时,由所述区块早期深度测试电路在执行图元的区块早期深度测试时使用,从而设定区块细分层级中的最小区块的每区块深度值;以及
基于区块层级中的较大区块分别包含的小区块的每区块深度值,设定所述较大区块的每区块深度值。
9.根据权利要求1至8中的任一项所述的方法,其中:
因正被处理的所述渲染输出的待处理的当前数据结构被耗尽而触发所述图形处理器停止处理所述渲染输出;并且
因存在准备要处理的所述渲染输出的包含新数据的新数据结构而触发所述图形处理器恢复处理所述渲染输出。
10.根据权利要求1至9中的任一项所述的方法,其中,待生成的渲染输出包括通过所述图形处理器生成的总体输出的图块。
11.一种图形处理器,所述图形处理器包括:
栅格化器,所述栅格化器对输入的图元进行栅格化,以生成待处理的图形片段,各个图形片段具有与该图形片段相关联的一个或更多个采样点;以及
渲染器,所述渲染器对由所述栅格化器生成的片段进行处理以生成输出片段数据;
其中,所述栅格化器被配置成,当所述栅格化器接收到待栅格化的图元时,针对表示待生成的渲染输出的相应不同区域的一个或更多个区块中的各个区块,相对于该图元来测试该区块,以确定该图元是否至少部分地覆盖该区块;
所述图形处理器还包括:
区块早期深度测试电路,所述区块早期深度测试电路被配置成,关于渲染输出的以下区块来执行图元的早期深度测试:所述栅格化器发现所述图元至少部分地覆盖该区块;以及
样本深度测试电路,所述样本深度测试电路被配置成,针对发现被图元覆盖的采样位置执行深度测试;
所述图形处理器还配置成,在处理图元以生成渲染输出时,进行如下操作:
存储所述渲染输出的每区块深度缓冲器,所述每区块深度...
【专利技术属性】
技术研发人员:A·D·恩格哈斯特韦德,A·E·查芬,F·赫格伦德,
申请(专利权)人:Arm有限公司,
类型:发明
国别省市:英国;GB
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。