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

图形处理系统中的隐藏面消除技术方案

技术编号:18451744 阅读:22 留言:0更新日期:2018-07-18 10:35
图形处理系统中的隐藏面消除。图形处理流水线(1)的早期深度测试阶段(4、13)被配置为:将关于通过这些早期深度测试的片段等的信息广播(9、10、11、14)至流水线中的其它阶段(3、4、6、12)。流水线中的其它阶段随后利用早期深度测试通过信息来确定对它们当前处理的任何片段的处理是否可停止。

Hidden surface elimination in graphic processing system

The hidden surface is eliminated in the graphics processing system. The early depth test stages (4, 13) of the graphics processing line (1) are configured to broadcast (9, 10, 11, 14) to other phases in the pipeline (3, 4, 6, 12) through the segments of these early depth tests. Other phases in the pipeline then use early depth testing to determine whether any processing of the segments they currently process can be stopped by information.

【技术实现步骤摘要】
图形处理系统中的隐藏面消除
本专利技术涉及计算机图形处理,并且具体地说,涉及图形处理中的隐藏面消除。
技术介绍
如本领域中已知的,通常通过以下步骤执行图形处理:首先将图形处理(渲染)输出(诸如要显示的帧)分为多个相似的基本组成(称为“基元”)以使得能够更加容易地执行图形处理操作。这些“基元”通常采用简单多边形(诸如三角形)的形式。用于输出(诸如要显示的帧)的基元通常利用从需要图形处理的应用(例如游戏)接收到的图形绘制指令(请求)由用于图形处理系统的应用程序接口生成。各个基元在这个阶段通常通过一组顶点限定并由其表示。基元的各个顶点与表示所述顶点的一组数据(诸如位置、颜色、纹理和其它属性数据)关联。随后例如当对所述顶点(与所述顶点相关的基元)进行栅格化和渲染时,使用该数据,例如以用于显示。一旦生成和限定了基元和它们的顶点,它们可通过图形处理系统进行处理,以例如显示帧。该处理基本上涉及以下步骤:确定在将要处理的覆盖输出区域的一系列采样点中哪些采样点被基元覆盖,以及随后确定各个采样点应该具有的外观(例如,就其颜色等而言)以在所述采样点表示基元。这些处理通常分别被称作栅格化和渲染。栅格化处理确定应该用于基元的采样点(即,要用于在渲染输出(例如,要显示的帧)中表示基元的采样点的(x,y)位置)。这通常利用基元的顶点的位置来实现。渲染处理因此导出在所述采样点表示基元所需的数据,诸如红色、绿色和蓝色(RGB)颜色值和“Alpha”(透明度)值(即,为各个采样点“着色”)。如本领域中所知的,这个过程可涉及施加纹理、混合采样点数据值等。(在3D图形文献中,术语“栅格化”通常用于意指基元转换至采样位置和渲染这二者。然而,本文中,“栅格化”将仅用于表示将基元数据转换至采样点地址。)这些处理通常通过以下步骤执行:测试多组一个或一个以上采样点,以及随后针对发现包括在关注的(正被测试的)基元内(或被所述基元覆盖)的采样点的各组采样点生成离散图形实体(通常称作“片段”,在其上执行图形处理操作(诸如渲染))。因此,覆盖的采样点实际上作为片段被处理,所述片段将用于在关注的采样点渲染基元。“片段”是经过渲染处理(渲染流水线)的图形实体。根据图形处理系统的配置方式,生成和处理的各个片段可例如表示单个采样点或一组多个采样点。(因此,“片段”是插值到基元的给定输出空间采样点中的有效的一组基元数据(与所述一组基元数据关联)。“片段”还可包括每基元和在关注的采样点(片段位置)处为基元着色所需要的其它状态数据。各个图形片段通常可以与输出的像素(例如,输出帧)具有相同尺寸和处于相同位置(由于像素在最终显示中是奇点,因此在图形处理器进行工作(渲染)的“片段”与显示的像素之间可一一映射)。然而,可存在片段和显示像素之间不一一对应的情况,例如在显示最终图像之前,在渲染的图像上执行具体形式的后处理,诸如缩减采样。)(还存在这样的情况:随着在给定位置的例如来自不同交叠基元的多个片段可彼此影响(例如,由于透明度和/或混合),最终像素输出可取决于在该像素位置的多个或全部片段。)(对应地,在采样点和显示器像素之间可一一对应,但在采样点和显示器像素之间更通常不一一对应,由于可在渲染的采样值上执行缩减采样以生成用于显示最终图像的输出像素值。类似地,随着在给定位置的例如来自不同交叠基元的多个采样点值彼此影响(例如,由于透明度和/或混合),最终像素输出将还取决于在该像素位置的多个交叠采样值。)在通常称作“立即模式”图形处理或渲染的图形处理的一个已知技术中,基元逐个地随着生成而被处理(栅格化和渲染)。在这种系统中,基元(它们的顶点)按照先来先处理的原则被递送至图形系统,并因此按照基元的接收顺序渲染基元。还已知,在图形处理系统中,使用所谓的“基于拼块的”渲染或“延迟”渲染。在基于拼块的渲染处理中,不是整个渲染输出(例如在按照立即模式进行渲染的一个系统中有效地进行处理的帧),而是例如要显示的帧的渲染输出被分为多个较小的子区域,通常称作“拼块”。各个拼块(子区域)被独立地渲染(通常逐个地渲染),并且渲染的拼块(子区域)随后再组合以提供完整的渲染输出,例如,用于显示的帧。在这些布置方式中,渲染输出通常分为规则大小和形状的子区域(拼块)(它们通常为例如方形或矩形),但这不是必要的。在立即模式和基于拼块的渲染处理这二者中,栅格化和渲染处理的输入将通常包括要由图形处理器执行的一系列图形命令。如本领域中所知的,该“命令列表”将包括指示图形处理器绘制基元的命令和指示其它图形处理的命令(诸如渲染状态变化、开始和结束拼块命令(在基于拼块的系统中)等)。在立即模式渲染中,该命令列表将简单地列出要逐个地执行的命令,而在基于拼块的渲染中,所述列表可以并且通常分为“拼块”(即,将针对各个拼块(独立于针对其它拼块的命令)列出命令)。当前图形处理系统的一个缺点在于,因为基元被按顺序处理,并且通常不是按照完美的从前向后的顺序处理,所以随着一个输出被处理(例如以用于显示),给定采样点(进而片段和像素)可多次着色。当第一个接收到和渲染的基元随后被后来的基元覆盖时,发生这种情况,从而在关注的像素(和采样点)实际上看不到渲染的第一基元。基元可按照这种方式被覆写许多次,并且这通常导致针对被渲染的各个渲染输出(例如帧)执行多个最终冗余的渲染操作。这种现象通常称作“重复渲染”。执行这些最终冗余的操作的结果包括帧率降低和内存带宽需求增大(例如,作为针对将被后来的基元覆写的基元获取数据的结果)。这二者均是不期望的,并且降低了图形处理系统的整体性能。随着渲染输出(诸如要渲染的帧)变大和变得更加复杂(如在潜在可视图中将出现更多面),并且随着可编程片段着色的使用增加(随着利用可编程片段着色为给定片段着色的开销相对更大),这些问题将往往变得严重。通过按照从前向后顺序发送基元以用于渲染可明显减小“重复渲染”的问题。然而,其它图形处理需求(诸如针对资源(诸如纹理)的相干入口需求和最小化每帧的API调用的次数的需求)通常批准基元的其它优选的顺序需求。另外,在仍保持基元至图形处理单元的足够输送量的同时,在渲染之前,完全从前向后对基元进行排序可能不实际。这些和其它因素意味着针对给定渲染输出(例如帧)的基元的从前向后排序在实际中通常是不可能或不期望的。因此,提出了尝试减小当处理渲染输出(诸如用于显示的帧)时执行的“重复渲染”的量(隐藏面的冗余处理量)(即,避免渲染不可见的基元和/或片段等)的其它多种技术。例如,已知在发送基元和/或片段以进行渲染之前执行各种形式的隐藏面消除,以观察基元或片段等是否将被已被渲染的基元遮蔽(在这种情况下,不需要渲染新的片段和/或基元)。这种隐藏面消除可包括例如早期遮挡剔除,诸如本领域中所知的早期Z(深度)和/或模板测试处理。这些布置方式尝试在后来的片段发送至渲染流水线之前识别例如将被已经处理的基元遮挡(并且因此不需要处理)的片段。在这些布置方式中,针对深度缓冲器中的片段位置,将例如要处理的新片段的深度值与当前深度值进行比较,以确定新片段是否被遮挡。这可有助于避免通过渲染流水线发送被已经处理的基元遮挡的片段。然而,这些“早期”(在渲染之前)隐藏面消除技术仅考虑了在例如新的基元或片段(正进行“早期”测试的基元或片本文档来自技高网...

【技术保护点】
1.一种操作图形处理流水线的方法,所述图形处理流水线包括多个处理阶段,该多个处理阶段包括:栅格化器,其将输入基元栅格化以生成要处理的图形片段,各个图形片段具有与该图形片段关联的一个或更多个采样点;以及渲染器,其对由所述栅格化器生成的片段进行处理以生成输出片段数据,所述方法包括以下步骤:在由所述栅格化器生成的片段被发送至所述渲染器以进行处理之前,针对与该片段关联的至少一个采样点执行早期剔除测试;如果至少一个采样点通过所述早期剔除测试,则向前发送所述片段以进行处理,并且,作为所述至少一个采样点通过所述早期剔除测试的结果,确定在所述图形处理流水线中的另一采样点的处理是否能够停止;如果与片段关联的至少一个采样点通过所述早期剔除测试,则将通过测试的采样点或片段的位置广播至所述图形处理流水线的至少一个处理阶段;以及所述图形处理流水线的所述至少一个处理阶段利用所广播的位置信息来估计对所述至少一个处理阶段当前处理的任何采样点或片段的处理是否能够停止。

【技术特征摘要】
2012.12.17 US 13/716,952;2013.06.04 US 13/909,5611.一种操作图形处理流水线的方法,所述图形处理流水线包括多个处理阶段,该多个处理阶段包括:栅格化器,其将输入基元栅格化以生成要处理的图形片段,各个图形片段具有与该图形片段关联的一个或更多个采样点;以及渲染器,其对由所述栅格化器生成的片段进行处理以生成输出片段数据,所述方法包括以下步骤:在由所述栅格化器生成的片段被发送至所述渲染器以进行处理之前,针对与该片段关联的至少一个采样点执行早期剔除测试;如果至少一个采样点通过所述早期剔除测试,则向前发送所述片段以进行处理,并且,作为所述至少一个采样点通过所述早期剔除测试的结果,确定在所述图形处理流水线中的另一采样点的处理是否能够停止;如果与片段关联的至少一个采样点通过所述早期剔除测试,则将通过测试的采样点或片段的位置广播至所述图形处理流水线的至少一个处理阶段;以及所述图形处理流水线的所述至少一个处理阶段利用所广播的位置信息来估计对所述至少一个处理阶段当前处理的任何采样点或片段的处理是否能够停止。2.根据权利要求1所述的方法,该方法包括以下步骤:执行针对单个采样点和多个片段的补片这二者的早期剔除测试。3.根据权利要求1或2所述的方法,该方法还包括以下步骤:在渲染一组基元之前,针对所述一组基元的多组采样位置存储期望的深度值的范围。4.根据权利要求1或2所述的方法,其中,作为所述至少一个采样点通过所述早期剔除测试的结果,确定在所述图形处理流水线中的另一采样点的处理是否能够停止的步骤包括以下步骤:将当前占据流水线阶段的采样点和/或片段的位置与通过所述早期剔除测试的所述至少一个采样点的位置进行比较。5.根据权利要求1或2所述的方法,其中,作为所述至少一个采样点通过所述早期剔除测试的结果,确定在所述图形处理流水线中的另一采样点的处理是否能够停止的步骤还包括以下步骤:在停止所述另一采样点的处理之前,检查所述另一采样点的其它属性,以确定所述另一采样点是否应该仍然进行处理。6.根据权利要求1或2所述的方法,其中,以下步骤:在由所述栅格化器生成的片段被发送至所述渲染器以进行处理之前,针对与该片段关联的至少一个采样点执行早期剔除测试;以及如果所述至少一个采样点通过所述早期剔除测试,则向前发送所述片段以进行处理,并且,作为所述至少一个采样点通过所述早期剔除测试的结果,确定在所述图形处理流水线中的另一采样点的处理是否能够停止包括以下步骤:在通过流水线向前发送由所述栅格化器生成的片段以进行处理之前,针对与所述片段关联的至少一个采样点执行早期深度测试,和/或在通过流水线向前发送由所述栅格化器生成的至少一个片段以进行处理之前,针对所述至少一个片段执行早期深度测试;如果所述至少一个采样点或所述至少一个片段通过所述早期深度测试,则向前发送所述片段或所述至少一个片段以进行处理,并将关于通过所述早期深度测试的所述至少一个采样点或所述至少一个片段的位置的信息广播至所述图形处理流水线的至少一个处理阶段;以及所述图形处理流水线的所述至少一个处理阶段利用与通过所述早期深度测试的所述至少一个采样点或所述至少一个片段关联的所广播的位置信息来确定当前在该阶段中是否存在与通过所述早期深度测试的所述至少一个采样点或所述至少一个片段占据相同位置的任何采样点或片段,并且如果存在任何这些采样点或片段,则选择性地停止对与通过所述早期深度测试的所述至少一个采样点或所述至少一个片段占据相同位置的这些采样点或片段的进一步处理。7.根据权利要求1所述的方法,其中,早期剔除测试通过事件信息被广播至所述图形处理流水线的所述早期剔除测试、所述栅格化器和所述渲染器的中一个或更多个。8.根据权利要求1或2所述的方法,该方法还包括以下步骤:如果所述至少一个采样点通过所述早期剔除测试,则利用与通过所述早期剔除测试的所述至少一个采样点关联的任何相关数据值来更新包含与所述早期剔除测试相关的数据的数据缓冲器。9.一种图形处理流水线,该图形处理流水线包括:多个处理阶段,该多个处理阶段包括:栅格化器,其将输入基元栅格化以生成要处理的图形片段,各个图形片段具有与该图形片段关联的一个或更多个采样点;渲染器,其对由所述栅格化器生成的片段进行处理...

【专利技术属性】
技术研发人员:J·尼斯塔德E·索尔加德F·赫格伦德
申请(专利权)人:ARM有限公司
类型:发明
国别省市:英国,GB

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

1