专利名称:图形处理系统的制作方法
技术领域:
本发明涉及计算机图形的处理,更具体而言,涉及用于在显示屏
上显示的3维(3D)图形的处理。
背景技术:
如本领域公知的,3D图形处理一般通过首先将要显示的场景 (scene)分成若干个类似的基本分量(称为"图元"(primitive)) 以使3D图形处理操作更易于执行来执行。这些"图元"通常具有简 单多边形、例如三角形的形式。
用于要显示的场景的图元通常由图形处理系统的应用程序接口 使用从要求图形显示的应用(例如游戏)接收到的图形绘制指令(请 求)来生成。
每个图元在这个阶段通常由顶点(vertex)集合定义并表示。图 元的每个顶点与其表示该顶点的数据集合(例如位置、颜色、材质 (texture)及其它属性数据)相关联。接着,例如在对该顶点(该顶 点所涉及的图元)进行栅格化及渲染(render)以供显示时,使用该 数据。
一旦生成并定义了场景的图元及其顶点,则可用图形处理系统对 它们进4亍处理,以^使例如显示该场景。
该处理基本包括确定覆盖要处理的场景区域的采样点阵列的哪 些采样点图元被图元所覆盖,并接着确定每个采样点在该采样点呈现 该图元应该具有的外形(例如,在其颜色等方面)。这些处理通常分 别#皮称为栅格化与渲染。
栅格化处理确定将用于图元的样本位置(即,在要显示的场景中表示图元要使用的样本点的(x, y)位置)。这一般使用图元的顶点 的位置来实现。
渲染处理接着导出显示在样本点的图元必需的数据,例如红、绿
及蓝(RGB)颜色值及"a "(透明度)值(即对各样本点"着色
(shade)")。如本领域已知的,这可包括应用材质、混合样本点数 据值等。
(在3D图形学中,术语"栅格化"有时用来表示至样本位置的 图元转换及渲染。但是,本文中"4册格化,,将用于仅表示将图元邀:据 转换为采样点地址。)
这些处理一般通过将采样点"表示"为通常被称为"片元
(fragment)"的图形实体来执行,在片元上执行图形处理操作(例 如渲染)。每个此类片元将对应于给定的样本点或者采样点集合,且 实际上表示在所涉及的采样点(正在使用该片元来渲染的采样点)的 图元并用于对其进行渲染。
因此"片元"实际上是插入到图元的给定场景空间样本点的图元 数据集合(与其相关联)。它还包括对在所涉及的样本点(片元位置) 的图元进存^色i,^:每图元及其它状态数拔,形片^在被处 理时可被合理地认i是实际上等效于场景的:;"豫素".。..,
实际上,'每个图形"片元"可对应于最后显示的单个^f象素(图像 元素)(因为,在像素是最后显示的单个点时,在图形处理器操作(渲 染)的"片元"与该显示的像素之间可存在一对一的映射)。但是, 可存在在片元与显示像素之间不具有一对一对应的情形,例如在显示 最后图像之前在所渲染图像上执行特定形式的后向处理、例如尺度变 小的情形。
在一种通常被称为"立即模式"图形处理或渲染的已知图形处理 技术中,图元在其生成时被一个接一个地处理。
在这类系统中,基于先到先服务原则将图元(其顶点)传递到图 形系统,因此图元以其接收顺序进行渲染。在图形处理系统中也已知^f吏用所谓"基于区块(tile-based)"或 "延迟"的渲染。在基于区块的渲染中,不是像立即模式中渲染那样
一举将整个场景进行处理,而是将要显示的场景分成多个通常称为 "区块"的较小子区域。每个区块(子区域)单独渲染(通常逐个地),
然后将所渲染的区块(子区域)进行重组,以便提供完整场景以供显
示。在此类布置中, 一般将场景分为规则尺寸及形状的子区域(区块) (其通常为例如正方形或矩形),但是这不是必需的。
在立即模式及基于区块的绘制中,至栅格化与渲染处理的输入一 般包括要由图形处理器执行的图形命令列表。如本领域中已知的,该 "命令列表"将包括指示图形处理器绘制图元的命令,以及指示其它 图形处理、例如渲染状态变化的命令,开始及停止区块命令(在基于 区块的系统中)等。
在立即模式渲染中,该命令列表将仅列出要逐条执行的命令,但 是在基于区块的绘制中,该列表可以并且通常将被分成"区块"(即, 将把每个区块的命令单独列到其它区块的命令)。
当前的图形处理系统的一个缺点是因为图元净皮连续且一般不以 完全前后顺序进行处理,所以给定采样点(且因此片元及^f象素)可在 处理场景以供显示时被多次着色。这种情况在首先接收及渲染的图元 随后被后一图元覆盖使得该首先渲染的图元实际上在所涉及的像素 (及采样点)不可见时出现。图元可以这种方式进行多次改写,且这 一般导致对每个正被渲染的场景执行多次、最终冗余的渲染操作。这 种现象通常被称为"无效渲染(overdraw)"。
执行这种最终冗余操作的结果包括降低的帧率及增加的存储器 带宽要求(例如,由于取将被后一图元改写的图元的数据)。这两种 情况都不是合乎需要的,并降低图形处理系统的整体性能。在要渲染 的场景变得更大且更复杂(因为将在可能可见角度存在更多表面)且 在增加可编程片元着色的使用(因为使用可编程片元着色来对给定片 元着色的成本相对较大)时,这些问题将趋于突出。"无效渲染"的问题可通过发送图元用于以前后顺序进行渲染而 显著降低。但是,其它'图形处理要求、例如对诸如材质的资源的相关 访问的需要以及使每帧API调用的数量最小化的需要, 一般授权对图 元的其它优选排序要求。此外,完全前后类别的图元在渲染之前可能 是不实用的,虽然还维持图元至图形处理单元的足够吞吐量。这些及 其它因素意味着帧的图元的前后排序在实践中 一般不是可能或合乎 需要的。
因此,已经提议了若干其它技术来尽量降低在处理场景以供显示 时执行的"无效渲染"的数量(即,避免渲染不可见图元和/或片元等)。
例如,已知在发送图元(或片元)以供渲染之前执行多种形式的 隐藏表面去除,以便查看该图元(或片元等)是否将被已渲染图元(或 者片元)遮蔽(在这种情况下,不需要渲染该新片元和/或图元)。如 本领域已知的,此类隐藏表面去除可包括例如早期阻塞拣选和/或早期 Z (深度)测试处理。
但是,这些"早期"(在渲染之前)隐藏表面去除技术只能考虑 到在要对新图元或片元(被进行"早期"测试的图元或片元)进行处
理时已经渲染的图元。这是因为相关测试数据(例如z緩存)将只包 含已经被处理的图元的数据。因此,这些测试不能例如在图元实际上 被渲染顺序中的后一图元阻塞时避免"无效渲染"。
对应用(例如游戏)开发人员而言还/>知的是对应用进行配置, 使得每个场景实际上被渲染两次,首先绘制具有无效Z测试与Z写入 以外的所有渲染状态的不透明场景几何图形,然后第二次用所有有效 渲染状态。
这具有这样的效果第一渲染经过(pass)有效地用对于每个片 元(样本)位置最近的不透明图元的Z (深度)值来填充Z緩冲器。 在第二全部渲染经过中,因为Z緩冲器现在填充有最近的不透明图元 的Z值,所以在第二经过上的任意早期Z测试可更有效地拒绝被阻塞 的片元,且特别是要考虑到在第一 "仅Z"渲染经过中渲染的所有图元,而不只是考虑到在所涉及片元之前已经渲染的图元。
因此,该技术能够提供更有效的早期Z测试处理,但是它具有以
下缺点给定场景必须由应用生成并被图形处理系统处理两次, 一次 用于仅Z经过,且接着又用于"全部"渲染经过。虽然这对于功能较 高的、例如桌上型图形系统可能不太有问题,但是其它功能较低的图 形系统、例如便携式及移动装置可能例如具有带宽限制,这些限制使 得对每个完整的可能可见场景生成并绘制两次是不合乎需要的。
在由Timo Alia、 Ville Miettinen及Petri Nordlund在Siggraph 2003 的"Delay Streams for Graphics Hardware"所述的另一提议中,图形处 理流水线(pipeline)被改进成包含延迟流及第二早期阻塞测试阶段。 第二早期阻塞测试在栅格化与渲染之前但在第 一早期阻塞初始阶段 及该延迟流之后进行。
本文的思路是在给定图元或片元到达第二早期阻塞测试阶段的 时候,更多片元将有助于例如Z緩存数据(因为特意设置的延迟流给 了更多片元在图元或片元到达第二早期阻塞测试阶段之前完成其处 理的时间),^f吏得第二阻塞测试阶^a能够考虑到比标准的单个早期阻 塞测试布置中更多的图元。
但是,该布置要求对图形处理流水线的某些改进,例如增加第二 早期阻塞测试阶段及延迟流。
因此,申请人认为留有在图形处理系统中尽量减小"无效渲染" 问题的改进空间。
发明内容
依照本发明的第一方面,提供了一种操作图形处理器的方法,其 中要由图形处理器执行的、包括指示图形处理器绘制图元的命令的图 形命令列表在所述命令被图形处理器执行之前被准备并存储在存储 器中,该方法包括
图形处理器在所存储命令列表的 一部分中的命令序列上执行第 一处理经过, 以便导出数据,所述数据可帮助从要响应于所述命令列表的该部分中 的命令而绘制的图元中选择用于针对采样点集合中的每个采样点进
^"处理的一个图元或多个图元;
存储导出的数据,用于帮助选择要在每个采样点进行处理的图 元;以及
在命令序列上执行第二处理经过以便对要响应于所存储命令列 表的该部分中的命令而绘制的图元进行处理,使用所存储数据来帮助
择要在第二处理经过中对每个采样点进行处理的一个或多个图元。
依照本发明的第二方面,提供了一种图形处理系统,其中要由图 形处理系统执行的、包括指示图形处理系统绘制图元的命令的图形命 令列表在命令被图形处理系统执行之前被准备并存储在存储器中,该 图形处理系统包括
用于完成以下功能的部件在所存储命令列表的一部分中的命令 序列上执行第一处理经过,以便导出数据,所述数据可帮助从要响应 于所述命令列表的该部分中的命令而绘制的图元中选择用于针对采 样点集合中的每个釆样点进行处理的 一个图元或多个图元;
用于存储所导出数据以帮助选择要在每个采样点进行处理的图 元的部4牛;以及
用于完成以下功能的部件在命令序列上执行第二处理经过以便 对响应于所存储命令列表的该部分中的命令而绘制的图元进行处理, 使用所存储数据来帮助从要响应于所存储命令列表的该部分的命令 而绘制的图元序列中选择要在第二处理经过中对每个采样点进行处 理的图元。
本发明提供图形处理系统及方法,其中所存储命令列表的 一部分 中的命令序列(即,图形命令集合)被处理一次以便确定帮助选择哪 个图元要在采样点集合的每个采样点进行处理(例如并优选地确定哪个图元可见,如下文将进一步论述),然后被第二次处理,但是使用 所确定图元信息来帮助标识在第二处理经过期间对给定采样点将处 理(例如渲染)哪个图元。
换句话说,与上述应用驱动两阶段渲染处理类似,本发明使用第 一处理经过来帮助确定图元集合(命令列表的该部分对应的图元集 合)中要对给定(且每个)采样点进行渲染的图元(例如,并优选地 确定图元的可视性),并接着执行利用所确定图元处理(例如可视性) 信息的第二处理经过。
相应地,本发明提供这样的系统其中与命令列表的该部分的图 元对应的第二处理(渲染)经过可使用与要在相应采样点处理的图元 有关的更准确和/或详细信息来执行,因此允许例如从第二经过的渲染 处理中更有效地拣选图元及片元,且因此降低甚至消除在第二处理经 过中出现的无效渲染的数量,因此带来优点并减少上文对该经过所讨 论的问题。尤其是,本发明可例如允许第二处理经过解决被从在渲染 顺序中后来到达的图元生成的片元所阻塞的图元(并因此,例如避免 对采样点的不可见图元进行渲染)。
此外,本发明提供尤其是在例如尤其是可用于移动及4更携式装置 中的功能较低和/或受限系统中使用的图形处理器的情况下比上述两 阶^R应用驱动布置更优的布置。
尤其是,因为本发明将所存储命令列表用于其两个处理"经过" 的每个,所以它避免了如在应用级方法中出现的又第二次完全生成场
景的需要(因为在应用级方法中,虽然要生成相同图元集合,但是新 的图元命令集合等将被发送到图形处理器用于第二渲染经过)。
例如,这可提供在本发明中显著的存储带宽及处理节省,例如因 为不需要将图元的几何形状处理(例如变换或剪辑)两次,且在基于 区块的系统中,不需要将该几何形状归类到区块两次。类似地,应用 场景数据结构不需要纟皮;险索两次。
本发明还可不要求应用(例如游戏)开发人员采取特定行动或步骤。当它对两种处理经过使用相同命令列表与数据结构时,实现本发 明所需的任意改进可在图形处理系统本身执行,因此避免了对主机系 统及应用操作的任意改变的需要。
本发明还比上述的延迟流及第二早期阻塞测试布置有优势,因为 本发明例如不要求对该"延迟流"布置需要的现有图形处理流水线的 结构改变。
实际上,本发明的关键优势在于它可用在并用于现有已知图形处 理体系结构,且尤其可只是再使用现有已知流水线组件及功能以获得 其优势。这是因为,其中本发明通过将给定命令列表(的部分)传过 图形流水线两次来有效操作,而不是实际上发出第二命令集合以再一 次生成图元(像在应用级方法中那样),且不是改变流水线使得单个 渲染经过可使用更多可视性信息(像在"延迟流"方法中那样)。
表的该部分的命令而绘制的图元中哪个图元要在本发明的第二处理 经过中对每个采样点进行处理,所述第一处理经过可以任意所需且合 适方式、例如根据要用来确定图元是否要在采样点进行处理的准则来 执行。
优选地,第一处理经过对采样点集合的每个采样点确定可用来帮 助选择要对各个采样点进行处理的图元的数据。
(这里应该注意,本文对"第一,,处理经过的引用旨在将该经过 仅区别为是本发明的处理经过的第一处理经过,且例如不要求该经过
然这可能是这种情况)。类似评"i仑应用到对"第二,,处理经过的引用。 将还能够使其它处理经过出现在本发明的第一与第二处理经过之间 (尽管这不是优选的)。
同样,在本发明的处理经过中,对在该命令列表部分的命令上执 行处理经过的引用旨在是指包括由图形处理系统执行那些命令中的 某些或全部的处理,不是指命令列表本身的某种形式的处理、例如写入该列表的性能,读命令列表并执行其命令(适当时)命令列表本 身不被写入。)
在特别优选实施例中,第一处理经过导出或确定数据,所述数据 可帮助确定要响应于命令列表的该部分中的命令而绘制的图元中哪 个(些)图元将在所涉及采样点可见。这尤其有用,因为它允许例如 通过对应于该命令列表部分的图元的第二处理经过如果需要就只处 理(例如,并优选地渲染)可见图元,因此例如避免在第二处理经过 中渲染实际上在给定采样点不可见的图元。
因此,在特别优选实施例中,用于导出数据以帮助选择对应于命 令列表的该部分的图元中要在每个采样点进行处理的图元的步骤或 装置,包括导出或确定可帮助确定对应于命令列表的该部分(对其响 应而绘制)的图元中哪个或哪些图元是或者可能是在每个采样点可见 的数据(并接着存储该数据)。
对这些布置中的图元的可视性"测试"可按照需要执行,但是在 优选实施例中,包括在每个样本位置执行深度(Z)测试以便基于该 图元的Z(深度)值确定在每个样本位置的可见(例如,并优选地根 据所定义可视性测试确定最近的)图元,这在本领域是公知的。
因此,在特别优选实施例中,第一处理经过包括在每个样本位置 在对应于命令列表的该部分的图元上执行Z测试(深度测试),优选 地以便基于该图元的Z (深度)值确定可用来对要在每个样本位置进 行处理的图元进行标识的数据。
在这些布置中,用来例如确定要处理的图元的深度测试Z比较函 数按照要求(且对要处理的图形数据适当时——实践中应该使用对正 在被处理的数据(图元)所定义的测试)可为"<"(小于)、"<=" (小于或等于)、">"(大于)或者">=,,(大于或等于)。
优选地,在第一处理经过中以适当方式(且优选地,就深度(或 其它)测试而言,以对所涉及图形处理系统的正常方式)渲染图元以 便允许执行深度(或其它)测试。同样,在这里要领会,在本发明的优选实施例中,在本发明的第 一处理经过中导出的"图元选择"数据(至少部分)(例如使用从其
绘制的图元进行处理中(且优选地从对所述图元渲染中)导出。类似 地且如本文进一步所述,本发明优选在第一处理经过中包括对要响应 于正在处理的命令列表的该部分中的命令而绘制的图元(优选地,如 将在下文进一步所述,以更有限的、例如"仅深度,,方式)进行渲染 (绘制),且接着对要响应于在第二处理经过中再次被处理的命令列 表的该部分中的命令而绘制的图元进行渲染(绘制)(优选地,这次 用于显示(输出))。
在一种特别优选实施例中,只有确定用于帮助选择要在每个采样 点进行处理的图元所必需的处理(渲染)在第一处理经过中执行。这 可意味着在命令列表的该部分中的某些命令实际上不在笫一处理经 过中执行。
因此,在基于深度测试的确定的情况下,在一种特别优选实施例 中,在该命令列表部分上的第一处理经过优选包括在要响应于命令列 表的该部分中的命令而绘制的图元上执行仅Z(仅深度)渲染经过,
即在其中渲染图元、但在其中有效的仅渲染状态为z及z测试的读与 写的处理经过。
对在通过命令列表的第一处理经过中所执行的处理进行限制具
有这样的优势该处理经过可更有效并消耗较少资源,因此使它例如 更可接受在更受限系统中进行执行。例如,在仅Z渲染经过的情况下, 可填充Z緩冲器,但是可减少或最小化其它存储器的访问,且片元处 理器可为空闲。
因此,在一种特别优选实施例中,命令列表的(对应于所存储命 令列表的该部分的图元的)第一处理经过包括只执行确定用于帮助选 择要在每个釆样点进行处理的图元的数据所必需的处理。
因此,在基于深度测试的测试的情况下,在一种特别优选实施例中,对应于所存储命令列表的该部分的图元的第一处理经过包括在所 述图元上执行仅Z渲染经过,以便确定用于帮助标识在对应于正在处 理的所存储命令列表的该部分的图元中哪个或哪些图元可能或应该 在第二处理经过中在每个采样点被处理的数据。
但是,如果需要,将还能够执行多于确定与要在通过命令列表在 第 一处理经过中在每个采样点进行处理的图元有关的数据所需的最 小处理。这对于例如允许在第一处理经过期间建立其它有用数据结构 可能是合乎需要的。例如,第一处理经过还可执行正被执行的图元的 某些插入操作,且存储(例如緩冲)该数据以供第二处理经过使用。
本图形处理系统可按任意适合及所需方式配置成执行第一处理
经过。为此,将它优选设置为适当渲染状态(例如仅z渲染状态)。 (如本领域已知的,图形处理器为确定该处理器将在它接收到的图形 图元上执行的处理而设置的渲染状态因此可用来对执行的处理进行 控制。)
为此,如本领域已知的,在发送命令列表的该部分用于第一处理 经过之前,可例如通过刷新处理器并将其状态设为新(例如仅z)状 态来对该(渲染)"状态"进行全局(即对所有处理单元)设置。
但是,在图形处理系统具有可例如与图元和/或片元相关联的多个 预定义渲染状态的特别优选实施例中,例如在申请人较早前的专利申
请GB-A-2420261所述的技术中,则优选地将可用预定义渲染状态之 一(例如,渲染状态索引"0"(或者其它索引))设置为要用于本 发明的第一处理经过的渲染状态(例如,且优选地为仅Z渲染状态)。 接着,这将允许例如在将图元(和/或片元等)发送用于第一处理经过 时用适当"第一经过"渲染状态索引等对图元进行标记,使得对它们 进行相应处理而不是例如必须对整个处理流水线的状态进行全局刷 新与改变。
优选地,该布置如下在对命令集合触发按本发明的方式的第一 处理经过时,与要响应于命令集合而绘制的每个图元相关联的预定义渲染状态(例如,渲染状态索引(或者标记等))在图元浮皮发送用于 第一经过处理之前被改变(重写)为预定义的"第一经过"渲染状态 (但是,只对该经过改变)。接着,这将允许图元自动为该经过拣选 例如仅Z的笫一经过渲染状态,而不需要对它们和/或处理器的渲染状 态的早期重定义或改变。
类似地,优选的是图形处理系统支持片元着色程序,因为将存在 对第一经过(例如仅Z)处理(渲染状态)保留且使用的预定义片元 程序地址。则,这将再次允许图元及片元在经受本发明的第一经过时 用该预定义片元程序地址进行标注,且因此避免例如对图形处理器应
用全局第一经过(例如仅z)状态的需要、和/或改变该处理器的中间
状态以推进图元和/或片元正在经受本发明的第 一 经过的信息的需要。
相应地,在这些布置中所保留的程序地址将触发第一经过处理的 适当动作(例如片元着色器程序)。在优选实施例中,它仅仅使片元 着色器(阶段或单元)被忽略(因为,例如在仅z的渲染状态的情况 下,例如将不需要执行片元着色程序,且因此初始化片元着色器的电 路可仅仅响应于所保留程序地址而将其省略)。
在第一处理经过中导出并存储用于帮助选择要对每个采样点进 行处理的数据,可具有任何合适且所需形式。该数据可例如取决于第 一处理经过的性质。优选地,它包括提供确切或保留信息用于选择要 在第二处理经过中对采样点进行处理的图元。
在第一处理经过中导出的数据可以、并在优选实施例中允许对要 针对一个或每个采样点进行处理的单个图元进行标识,或者它可只最 多允许对要针对一个或每个采样点进4亍处理的一组图元进行标识。后 一种情况可还具有优势,因为它可还允许减少在第二处理经过中对采 样点所处理的图元的数量。
在第一处理经过中所确定的数据可例如、并在优选实施例中直接 指明要在第二处理经过中对采样点进行处理的一个或多个图元,或者 它可例如为、并在另一优选实施例中是可用于导出要对采样点进行处在后一情况下,该数据可例如、并在优选实施例中包括可用于排 除或拒绝图元对给定采样点的处理(使得,因此最多只有图元的子集 将在第二处理经过中对该采样点进行处理)。
因此,在一种优选实施例中,导出的用于帮助一个或多个图元的 选择的凄史据可包括能够帮助标识所述一个或多个图元、且优选地标识 应该对采样点进行处理的图元的数据。
在另 一优选实施例中,该数据包括能够帮助标识应该不对采样点 进行处理的一个或多个图元、例如并优选地使得能够从第二处理经过 中的处理对那些图元进行标识及拣选或拒绝的数据。此外,该数据优 选允许从处理中忽略除单个图元外的所有图元,但是它可只允许对于 给定采样点拒绝除了图元中之一以外的 一些而不是所有。
类似地,在优选实施例中,导出来帮助选择要对采样点进行处理 的图元的数据包括能够指明、或者能够用于导出对应于命令列表的该 部分的图元中要对一个(每个)采样点进行处理的图元的标识。
在优选实施例中,确定并存储的数据帮助确定对采样点最近(或 最远)的图元,和/或直接指明在采样点最近(或最远)的图元。
在一种特别优选实施例中,在第一处理经过中导出的并在第一处 理经过之后存储的数据包括从第一处理经过中导出的深度緩存(即, 在第一处理经过期间对每个采样点所确定的Z值)。如本领域已知, 这些深度緩存值将指明在每个采样点发现的最近(或最远)图元的深 度,并因此能够例如经由深度测试用来确定(标识)哪个(哪些)图 元将在第二处理经过期间在每个采样点进行处理。(这与上述的应用 驱动两阶段处理类似,其中第一经过用来"填充"深度緩冲器,使得 深度信息能够接着被用于"过滤"第二处理经过的图元。)
在这种情况下,深度緩存值将不直接指明要在第二处理经过中对 每个采样点进行处理的图元,而是要提供用于选择(或标识)要处理 的图元的信息,因为如下文进一步所述,它们能够^皮用来从在第二处理经过中对采样点进行处理中拣选图元。
在如上所述第一处理经过为在与命令列表的该部分对应的图元 上的仅Z经过的情况下,以这种方式存储并使用深度缓存数据可尤其 适当并具有优势。
在另 一优选实施例中,导出并存储用于帮助选择或确定要在第二 处理经过中对每个采样点进行处理的图元的数据,包括要进行处理的 图元的标识符(即,能够用于对要在第二处理经过期间对每个采样点 进行处理的一个或多个图元进^f亍标识的标识符)。这可在例如第一处 理经过不生成Z值的情况下是适当的。它将还允许使用图元标识符而
不是z测试来对要在第二经过中进行处理的图元进行标识(则可至少
在某些情况下是合乎需要和/或有优势的)。
在这种情况下,确定并存储的数据将直接指明要在第二处理经过 中对采样点进行处理的图元。
按照要求,此类图元标识符的存储可代替在第一处理经过中的z 緩沖器或者其填充。优选地,也确定并存储z緩存。
在这种布置中的图元标识符能够按照要求而生成。优选地,使用
递增计数器来在每个图元进入流水线以供第一经过时给它们分配ID, 然后,例如在写入对应Z緩存元素(适当时)时,将在第一经过中对 采样点所标识的相关图元的ID写到适当的图元ID存储器(例如緩冲 器)。
然后,在第二处理经过中,将该计数器复位并重启动(使得在第 二经过中每个图元将从该计数器拾^L与它在第 一经过中拾取的相同 ID),如前文那样从计数器给图元分配ID,且接着与先前对所涉及采 样点存储在图元ID緩冲器中的图元ID (来自第一经过)相比,每个 片元可具有其来自第二经过的相应图元ID,并相应地在第二经过中被 (或不被)着色及读出(即,取决于其ID是否与对所涉及采样点的 所存储图元ID相匹配)。
在这种情况下,来自第一处理经过的Z緩存值(如果存在)不需要、并优选地不被用于每采样点处理(或非)测试,因为图元ID被
用于该目的。但是,如果需要,z值可还用于其它测试,例如早期分
级Z测试。
在经受了本发明的第一处理经过的命令列表的该部分中的命令 上执行的第二处理经过可为任意合适及所需的此类经过。优选地,它 包括在要响应于命令列表的该部分中的命令而绘制的图元上的"正 常"或"所有"渲染经过,即给那些图元提供要将所述图元显示在显 示器上所需的数据的渲染经过。因此,例如,优选地以有效的所有渲 染状态执行第二经过。
第二处理经过将使用从第一经过确定的图元选择(例如可视性 (或者其它))信息。此外,可以任意所需及合适方式来使用这种信 息,但是优选地,用这种信息来尽可能地避免为任意给定采样点对被 确定为要在第一处理经过中对该采样点进行处理的图元的图元以外 的任意图元进行处理(因为这使第二处理经过的效率最大)。
如上所述,如果第一处理经过确定并存储要在给定采样点进行处 理的图元的标识符,则优选地,如上所述,第二处理经过^f吏用所存储 标识符来确定每个采样点的适当图元,并接着只在该采样点(对该采 样点)处理(优选地,渲染)该图元。
如果在第一处理经过中确定并存储的用于标识要被处理的图元 的数据包括深度緩存(Z值),则,第二处理经过能够、并在优选实 施例中使用所存储深度緩存来执行适当的深度测试,以便确定要对每 个采样点进行处理的图元。
因此,在一种优选实施例中,第二处理经过^f吏用来自第一处理经 过的所存储图元标识符来确定要对一个采样点且优选地为每个采样 点进行处理的图元,且在另一优选实施例中,第二处理经过使用来自 第一处理经过的所存储深度缓存值来要对一个采样点且优选地为每 个采样点进行处理的图元。
在其中深度测试在第二处理经过中执行的特别优选实施例中,使用在第一处理经过中导出的深度緩存值来执行的深度测试(Z测试) 为早期深度测试(即,在(片元)渲染之前执行的深度测试)。然后, 对于每个采样点,这将允许早期深度测试在渲染之前拣选除了将对所 涉及采样点进行处理的那一个图元之外的所有图元(片元)(因为只 有那个图元(来自该图元的片元)(或者具有与那个图元相同深度值 的图元)将经过早期深度测试)。
可按照需要并使用例如任意已知及合适技术来执行在这些布置 中的深度测试。
但是,这里应该注意,如果在笫二处理经过中使用深度测试,则 如果该深度测试具有<=(小于或等于)或者>=(大于或等于)的形式
(适当时),那将导致在第二处理经过中对采样点处理正确图元,如 果形式< (小于)或者> (大于)的深度比较被用于第二处理经过,那 将导致所有图元在第二处理经过中不能进行深度测试(因为深度緩冲 器将已包含要对采样点进行处理的图元的深度值)。
因此,在优选实施例中,本发明配置或布置成考虑到这种可能性, 即,如果需要则确保假如所需图元的深度值将已存在于深度緩冲器中
(来自第一经过)则所需图元将在第二经过中经过深度测试(Z测试)。 如果需要,可用多种方式考虑这种可能性。第一,如果用于确定 哪个图元要在第二处理经过中进^f亍处理的测试包括在第二处理经过 中要处理的图元与正在处理的图元的所存储标识符的比较,则它将根 本不会上升。这种情况下,因为要在第二处理经过中进行处理的图元 通过给第二处理经过中的图元(且因此为片元或采样点)所分配的图 元标识与在第一处理经过中对给定采样点(片元)所存储的标识之间 的标识之间的比较来确定,所以在第二处理经过中正确图元将始终
"经过"该测^式。
例如,将还能够只对深度测试对其已经定义为小于或等于、或者 大于或等于的图元的运行执行本发明,使得能够保证本发明将产生正
确结果。如果图元#:生成为经受小于或大于测试,则本发明可对于那些图元失效。可例如用图形处理驱动器中的软件改变来实现这种布置,因此允许在具有对其的最小及仅局部变化的现有设计中使用本发明。
在另 一特别优选实施例中,在第二处理经过期间执行的深度测试设置成使用<=(小于或等于)或者>=(大于或等于)的Z比较函数(适
当时)。如果需要,则对第二处理经过将z比较函数改变成这种情形。因此,在一种优选实施例中,通过图元的第二经过的深度测试用
被改变成<=(小于或等于)的< (小于)的2比较函数以及被改变成〉=(大于或等于)的> (大于)的函数来执行。
在图形处理器中,这种改变可为自动或固定的,或者它可例如在图形处理器中提供,但是如果需要可留给应用开发人员和/或平台开发人员来实现。
在该后一情况下,例如,对第二处理经过改变Z比较函数的可能性可提供例如为图形处理器驱动器的配置选项,该配置选项则将允许平台集成人员决定是否使用这种方法。例如,可提供具有实现用<=测试代替任意<测试并用>=测试代替任意〉测试的标记的应用扩展,并如果要实现该特征则由应用对其进行调用。如果需要,这将允许仅用驱动器中的软件改变来实现本发明的这种改变。
如果需要,则将还能够使应用开发人员写(重写)其应用程序以使用<=和>=函数代替<和>函数,使得可使用本发明。
在另一优选实施例中,如果必需,则将在第一经过中确定并存储的Z值适当偏移(即,对于Z比较的〈(小于)系列则远离观察点或者对于Z比较的〉(大于)系列则朝向观察点),以便再次确保在第二处理经过中适当图元将经过Z测试。Z值的这种偏移将避免对第二处理经过改变Z比较函数的需要,但仍要再次确保在使用本发明时要绘制与没有本发明情况下对采样点绘制的相同图元,并将不影响Z测试中连接(tie)的结果。
在这些布置中,给在第一处理经过中确定的Z值所施加的偏移优选为可以任意效果给该Z值施加的最小偏移。因此,在整数Z緩存的情
况下,适当时,将在第一处理经过中写入的Z值优选递增或递减l以"f更
使其偏移。对于浮点z緩存,优选地,将所确定z值写入z緩冲器之前,(分别)对它加上(或减去)可对所确定z值加或减的最小数,以便使所述z值偏移。(在这些情况下,最小值可例如并优选地/人z值的指凄t及其尾数的恒定大小来确定。)
如上所述,在本发明中执行的命令列表被存储在存储器中(并将因此在本发明的执行期间从其读出)。
存储命令列表的存储器可为任意合适及所需的这种存储器。如本领域已知的,它 一般为并在优选实施例中是图形处理系统外部的存储器,例如主机系统存储器。但是,将还能够把命令列表(命令列表部分)以片上方式存储在图形处理器本身上,例如在片上缓冲器中(该
緩冲器可不例如具有DRAM的形式,但可为具有某种其它形式的緩冲器,例如FIFO)。
以本发明的方式进行处理的图形命令列表可为任意合适及所需的这种列表,例如使场景在立即4莫式渲染系统中进行渲染的命令列表,或者在基于区块的系统中用于给定区块的命令列表。在优选实施例中,在基于区块的系统中,针对用于区块且优选地单独用于每个区块的命令列表来执行本发明。
所存储命令列表可包含任意适合及所需图形命令,即使它将包含至少某些将触发若干图元的绘制使得命令列表的该部分将生成图元序列以供处理的命令。因此,命令列表将包含具有将图元流注入到图形处理器(处理流水线)的作用的指令。
在命令列表中命令图元的绘制的命令可为任意合适及所需的这种命令。因此,例如它们可各自命令单个图元的绘制,或者例如命令图元序列的绘制。同样,这些命令可为要绘制的图元提供更详细的数据结构,和/或可例如更简单地表示为要查找的相关图元的地址。
在前 一 情况下,命令可例如具有 "draw—single_polygon (polygondata)"的形式,其中绘制该图元所需的数据直接嵌入到命令操作数中 (该数据可例如为前转换或后数据(适当时取决于图形处理系统))。
在后一情况下,"set—attrib—address (attrib [1-16], address)"、 "set—triangle—index—address (format, address)" 以及"draw—triangle
(first—triangle , triangle—count)"形式的命令例如在这种情况下可用于要
绘制的图元,所述图元为三角形,所述三角形由 "set—triangle—index—address()"命令所i殳置并由"drawjxiangle()"命
令所例示的角(corner)索引阵列中的三个要素的组构成,这在本领
域是已知的。
因此,该命令列表可包括例如设置诸如整数角索引緩存的图元数 据索引緩存、与其它命令交替以使用来自索引緩存的数据来绘制图元 的命令。
但是, 一般而言,本发明可应用于命令列表,且构造绘制图元的 命令。
所存储命令列表中以本发明的方式进行处理的部分可包括任意 合适及所需的这种部分。它可包括所涉及的整个命令列表,尽管在优 选实施例中,它是给定命令列表的子集(即小于其全部)。
在特别优选实施例中,命令列表中以本发明的方式进行处理的部 分可包括该命令列表中将使要绘制的(连续)不透明图元的运行的部 分。本发明尤其可适用于处理不透明图元,因为不透明图元一般适用 于使用例如深度测试技术进行拣选。
因此,在优选实施例中,本发明将通过在第一处理经过中逐个发 送经由图形处理的图元而处理不透明图元序列,接着对第二处理经过 又逐个发送经由图形处理的图元。
导出与要对其处理的图元有关的数据的采样点可类似地为任意 所需及适合的此类采样点(及采样点的集合)。在优选实施例中,它 们包括釆样点,且优选地包括要在对这些图元进行处理以供显示的时 候栅格化这些图元时所使用的采样点。图形处理系统以本发明的方式的操作可以任意所需及适合方式 进行触发,例如使用任意适当机制来触发此类操作。
在一种特别优选实施例中,以本发明的方式的才喿作通过将适当命 令包含在命令列表中以便触发该操作来进行触发。
最优选地,要触发本发明的处理经过的命令插入在命令列表中要 以本发明的方式进行处理的部分的起始(例如在运行不透明图元的绘 制的起始)。因此,该命令例如及优选将图形处理器设置到执行第一 处理经过的模式,例如及优选为仅Z渲染模式。
类似地,将命令优选插入在命令列表的该部分的结尾(例如及优 选地,在用于绘制不透明图元的运行的命令集合的结尾),以便使图 形处理返回并重新执行所述命令列表的该部分,但是这次是以不同模 式(例如及优选地,以正常(或所有)有效渲染状态)。
该后一 ("结尾")命令优选地为条件分支命令,如果图形处理 器当前处于第一经过(例如仅Z)模式则所述条件分支命令要触发返 回到命令列表的该部分的开始的分支以及处理模式的改变(即刚完成 本发明的第一处理经过),否则则不(即,分支条件是当前处理模式 是否为第一经过模式)。
使用该方式的条件分支命令在本发明的第一处理经过之后有助 于直接触发在命令列表的该部分上的第二处理经过,同时允许处理在 第二处理经过之后正常地继续。
如果需要,将能够把"部分的起始"及"部分的结尾"命令合并 成单个命令。例如,如果指令用操作码域的某数量的比特来标识,则
—个操作码可通过使用在指令字中其它位置的某些空闲比特来区别。
备选地,分支地址的方向、前向/后向或零地址可用来区別要执行的命令。
在优选实施例中,由标识命令列表中要以本发明的方式进行处理 的部分以及将适当命令插入在命令列表的适当部分的前面及结尾的 图形处理器驱动器将此类命令适当地包含在命令列表中。将还能够用其它方式对以本发明的方式的操作进行触发与控制。例如,图形处理器本身可例如在第一 (例如^叉Z)处理经过中标识命令列表中要用这种方式进行处理的部分(例如,通过考虑给每个图元所分配的渲染状态以了解它是否不透明),并例如将地址存储在该部分的开始命令的列表中,以1更一旦完成了第一处理经过该处理就能跳回到该地址(命令)。装置或外围寄存器可例如实现第一 (例如仅Z)处理经过,作为"新区块"命令列表命令的副作用。
作为替代或补充,命令列表中的命令可例如通过将所保留每命令比特用于该目的来标记为要经受以本发明的方式的处理。命令列表中
方式进行处理的命令(命令列表的部分)的运行。
相信,上述形式的分支命令的使用可为新的并具有自身优势,且不只是处于本发明的上下文中。
因此,依照本发明的第三方面,提供了控制图形处理系统的操作
的方法,包括
将分支命令包含在给图形处理系统所提供的命令列表中,也触发
至命令列表中其它点的分支的所述分支命令将在进行分支时还触发
图形处理系统的状态改变。
依照本发明的第四方面,提供了图形处理系统,包括
用于响应于图形处理系统接收到的以供执行的命令列表中的图
形命令而分支到命令列表中的其它点并改变图形处理系统的状态的部件。
依照本发明的第五方面,提供了控制图形处理系统的操作的方法,包括
将条件分支命令包含在给图形处理系统所提供的命令列表中,对于所述分支命令,进行分支的条件为图形处理系统的当前状态。依照本发明的第六方面,提供了图形处理系统,包括用于响应于图形处理系统接收到的以供执行的命令列表中图形命令的条件分支命令而根据图形处理系统的状态分支或不分支到命 令列表中其它点的部件。
如本领域技术人员可领会,适当时,本发明的这些方面及实施例
或全部。
因此,例如,图形处理系统的状态优选为其渲染状态,由分支命 令触发的状态改变优选地为对"所有"渲染状态的改变,和/或进行分 支的条件所基于状态优选为图形处理系统是否处于仅Z状态。类似地,
布置优选如下分支命令的条件基于图形处理系统的当前状态,且如 果进行分支则分支命令触发该状态的改变。
根据上文,将领会在特别优选实施例中,本发明包括执行第一 "仅Z,,处理经过以便填充深度緩冲器,然后执行第二处理经过以便 渲染用于显示的图元,但是使用早期Z测试及"所填充"深度緩冲器 来从第二处理经过拣选图元。
因此,依照本发明的第七方面,提供了操作图形处理器的方法, 其中要由图形处理器执行的、包含指示图形处理器绘制图元的命令的 图形命令列表在被图形处理器执行所述命令之前被存储在存储器中, 所述方法包括
在要响应于所存储命令列表的一部分中的命令而绘制的图元上 执行仅Z处理经过,以便用那些图元的适当深度值填充深度緩冲器; 以及
在要响应于所存储命令列表的该部分中的命令而绘制的图元上 执行第二处理经过,以便渲染那些用于的显示图元,使用所填充深度
緩冲器及早期Z测试来从该处理经过的处理中拣选图元。
依照本发明的第八方面,提供了图形处理系统,其中要由图形处 理系统执行的、包含指示图形处理系统绘制图元的命令的图形命令列 表在被图形处理系统执行所述命令之前被准备并存储在存储器中,所 述图形处理系统包括用于在要响应于所存储命令列表的一部分中的命令而绘制的图 元上执行仅Z处理经过以便用那些图元的适当深度值填充深度緩冲器
的部件;
用于要在响应于所存储命令列表的该部分中的命令而绘制的图 元上执行第二处理经过、使用所填充深度緩冲器及早期Z测试来从该 处理经过的处理中拣选图元的部件。
如本领域技术人员将理解的,本发明的这些方面能够并优选地包 括本文所述发明的任一或多个或全部优选及选4奪特征。因此,例如, 所存储命令列表中要进行处理的部分优选地为引起要绘制的不透明 图元的运行的部分。类似地,在第二处理经过中执行的深度测试优选 具有<=或者>=的形式,或者在第 一处理经过中确定的深度緩存值优选 地在用于第二经过中之前进行偏移,如上所述。
如本领域技术人员将理解的,可对本发明上述各种特征进行各种 改变、变化和/或添加。
例如,第一处理经过可并在优选实施例中使用隐藏表面去除4支 术,例如早期Z测试、分级Z测试、阻塞拣选技术等,以便设法尽可能 早地/人处理中消除图元和/或片元。
类似地,第二处理经过可并在优选实施例中使用隐藏表面去除技 术,例如分级Z测试、阻塞拣选技术等,以便设法尽可能早地乂人处理 中消除图元和/或片元。
要领会,在本发明中,要以本发明的方式进行处理的命令列表中 的部分被图形处理器从存储器中读出两次, 一次用于第 一处理经过, 然后再次用于第二处理经过。(换句话说,第一处理经过包括从存储 器中读出命令列表的该部分,且第二处理经过包括再次从存储器中读 出命令列表的该部分。类似地,本发明将包括读命令列表的该部分并 在命令列表的该部分上执行第一处理经过,然后再次读命令列表的该 部分并在命令列表的该部分上执行第二处理经过。)
将能够使命令列表的该部分每次从其初始位置(例如,外部存储器)读出,但在优选实施例中,从命令列表中为第一处理经过所读出凄t据的一些或全部在它对第一处理经过读出之后或之时能够并优选地存储在图形处理器本身上(例如,被缓存在图形处理器本身上),使得它接着在图形处理器上的"本地"存储器中(在片上存储器中)对第二处理经过可用。那么,这将避免必须从初始例如外部存储器读出该凄t据用于第二处理经过。
因此,在一种优选实施例中,从同一存储器读出所存储命令以用于第一及第二处理经过,但是在另一优选实施例中,命令列表的该部分中的一些或所有命令从不同存储器中读出用于第二处理经过。(但是,应该注意,在这些情况的每个中(及实际上, 一般在本发明中),被读出用于第二处理经过的(所存储)命令就是或者来自于供第一处
理经过使用的所存储命令不对第二处理经过新生成这些命令(在本发明中命令序列只生成一次它不对第二处理经过再次生成)。)
如果,例如可用片上存储器受到限制,那么命令列表中要用本发明的方式进行处理的那些部分可例如始终被限制到将适应片上存储器的大小(其中,例如,那些大于该大小的部分,例如命令不透明图元的运行的部分被分成若干要适合"片上"的较小部分),或者命令列表的一部分可存储在"片上,,存储器中(并从其中取出用于第二经过),其中该数据的其余部分则被从其它(外部)存储器取出用于第二经过。将还能够,例如使用这两种布置,其中例如如果命令列表的部分超过片上存储器容量多于阈值量则将它们分成较小部分。
为此,所提供的"片上"存储器的大小可按照需要、例如基于性能对"片上"存储器成本的折中来进行选择。
尽管如上所述,本发明在以上方面中要求从存储器对命令列表的该部分读出两次,但是申请人意识到还能够在不需要对命令列表的该部分读出两次的情况下利用本发明的目标及优点。在这种情况下,系统可改为生成并存储(緩存)来自第一处理经过的足够信息,以便允许系统在不需要再次读出命令列表的情况下执行第二处理经过。这可能因此付出必须存储来自第一处理经过的更多"片上,,数据并在那个 经过期间执行更多处理的代价,但是这将避免必须再次读出命令列表 的该部分。
因此,依照本发明的第九方面,提供了在图形处理系统中处理图
元的方法,该方法包4舌
在图元序列上执行第 一处理经过,以便对采样点集合的每个采样 点确定图元序列中要对该采样点进行处理的图元中的一个或多个图
元;
存储数据以便允许在每个相应采样点处理所确定的一个或多个
图元;以及
使用所存储数据执行第二处理经过以便对每个采样点处理图元
序列中的相应一个或多个图元。
依照本发明的第十方面,提供了一种图形处理系统,包括 用于在图元序列上执行第 一处理经过以便对采样点集合的每个
采样点确定图元序列中要对该采样点进行处理的图元中的一个或多
个图元的部件;
用于存储数据以便允许在每个相应采样点处理所确定的一个或 多个图元的部件;以及
用于使用所存储数据执行第二处理经过以便对每个采样点处理 图元序列中的相应一个或多个图元的部件。
如本领域技术人员要领会的,适当时,本发明的这些方面及实施 例能够并优选地包括本文所述发明的优选及选择特征中任一或多个 或全部。因此,例如,第二处理经过将优选(使用所存储数据)对用 于显示的图元进行渲染。
在本发明的这些方面及实施例中,图元序列优选地经过命令列表 的所存储部分的读出来提供,如上所述。但是,图元可还或者改为例 如被CPU—次一个地馈送给图形处理器,或者经由直接存储器访问 (dma)流入,等等。优选地,第一处理经过使用图形深度测试技术确定图元序列中哪 个或哪些图元要对每个采样点进行处理,如上所述。优选地,它确定 在每个采样点的单个图元(并存储其数据)。
在本发明的这些方面的一种优选布置中,第 一处理经过包括运行 任意必需的插入操作,但不对任意材质进行采样,以便生成每个采样 点的信息,所述信息在第 一处理经过之后被存储以便允许采样点例如 在第二经过中被渲染(并不针对每个采样点重新处理整个图元序列)。 然后,该数据可在第二经过中用来对用于显示的采样点进行渲染。
该布置具有不需要将命令列表再次读入的优点(如上所述),但 将要求在第一经过之后将对更多数据进行"片上"存储。它还要求 在第一经过中执行图元设置及插入(但还能在第二经过中避免材质的 读取及运行所阻塞片元(图元)的片元程序的代价)。
在本发明的这些方面的另 一优选实施例中,在第一处理经过之后 存储以允许执行第二处理经过的数据包括一组每图元的状态数据,包 括例如角索引、渲染状态数据(例如索引)等,在第一经过中发现其 为将写到所涉及采样点的图元状态。然后,第二处理经过可处理所存 储图元状态数据以便渲染采样点。
此外,该布置将要求将图元状态凄《据适当存储例如并优选地在片 上图元状态数据区块緩冲器中,但是将避免例如使第二处理经过重新 读取命令列表、例如解释命令列表、栅格化图元并执行Z緩存读、写 及比较的需要。在这种布置中,可还必需例如对后续图元具有副作用 的图元状态进行标识,且在此类命令的情况下将刷新"图元状态数据 緩冲器"。
在此类优选布置中,对每个采样点存储的图元数据包括图元命 令,发现该命令为将写到(被绘制于)所涉及采样点的命令。如果图 元命令本身包含渲染所涉及图元以供显示所需的所有(状态)数据,
那么这可特别i"更利。
用本发明的方式进行处理的图元可为任意合适及所需此类图元。它们优选具有简单多边形的形式,这在本领域是已知的。在优选实施 例中,图元为三角形。
在特别优选实施例中,在单个图形处理平台上执行本发明的各种 功能,所述图形处理平台生成并输出写到用于显示装置的帧緩沖器的 数据。
本发明的各种功能、要素等可按照需要实现,且例如并优选地包 括能够操作成执行本发明的各种步骤及功能等的适当功能单元、处理 器、处理逻辑、电路、微处理器布置等,和/或能够操作成由执行本发 明的各种步骤及功能等的适当功能单元、处理器、处理逻辑、电路、 微处理器布置等执行。
本发明可应用于任意形式或配置的图形处理器,例如具有"流水 线,,布置的图形处理器。在优选实施例中,它可被应用到硬件图形流 水线、优选应用到渲染流水线。
本发明可应用于所有形式的图形处理及渲染,例如2D图形处理、 3D图形处理、立即模式渲染、延迟模式渲染、基于区块的渲染等,虽 然它特别可应用于使用延迟模式渲染的图形渲染器,尤其可用于基于 区块的渲染器。
如从上文将领会到的,本发明尤其可应用于3D图形处理器及处理 装置,且因此扩展到包括本文所述方面的任意一个或多个方面的设 备、或者依照本文所述方面的任意一个或多个方面、或者依照本文所 述方面的任意一个或多个方面操作的用于处理3D图形的图形处理器、 图形处理平台和/或图形处理方法。服从于执行上述特定功能所需的任 意硬件,此类3D图形处理器能够另外包括3D图形处理器包含的有用功 能单元等中任意一个或多个或全部。
类似地,在优选实施例中,本发明扩展到包括本文所述方面的任 意一个或多个方面的设备、或者依照本文所述方面的任意一个或多个 方面、或者依照本文所述方面的4壬意一个或多个方面操:作的用于处理 2D图形的图形处理器、图形处理平台、和/或图形处理方法。服从于执行上述特定功能所需的任意硬件,此类2D图形处理器能够另外包括
2D图形处理器包含的有用功能单元等中任意一个或多个或全部。
还要领会,本发明可用于为任意合适及所需输出及输出装置、例 如合适的显示装置处理图形。因此它可用于例如图形处理以供在显示 屏幕上的显示,用于图形处理以供打印(例如在打印机渲染引擎中) 等。
如从上文要领会的,本发明将包括生成绘制图元的图形命令序 列,然后在该生成的图形命令序列上执行本发明的两个处理经过。
依照本发明的另 一 方面,提供了在图形处理系统中操作图形处理 器的方法,其中生成指示图形处理器绘制图元的图形命令列表以供执 行,该方法包括
图形处理器
在所生成图形命令序列上执行第一处理经过,以便导出能够帮助 从要响应于所生成图形命令序列而绘制的图元中选择一个或多个图 元用于针对采样点集合中每个采样点进行处理的数据;
存储该导出的数据,用于帮助要在每个采样点进行处理的图元的 选择;以及
在所生成图形命令序列上执行第二处理经过,以便对要响应于所 生成图形命令序列中的命令而绘制的图元进行处理,使用所存储数据 来帮助从要响应于所生成图形命令序列而绘制的图元中选择要在第 二处理经过中对每个采样点进行处理的一个或多个图元。
依照本发明的再一方面,提供了在图形处理系统中使用的图形处 理器,其中生成用于指示图形处理器绘制图元的图形命令列表供图形 处理器执行,所述图形处理器包括
用于在所生成图形命令序列上执行第一处理经过以便导出能够 帮助从要响应于所生成图形命令序列而绘制的图元中选择一个或多 个图元用于针对采样点集合中每个采样点进行处理的数据的部件;
用于存储该导出的数据以便帮助选择要在每个采样点进行处理
34的图元的部件;
用于完成以下功能的部件在所生成图形命令序列上执行第二处理经过以便对要响应于所生成图形命令序列中的命令而绘制的图元进行处理,使用所存储数据来帮助从要响应于所生成图形命令序列而绘制的图元中选择要在第二处理经过中对每个采样点进行处理的一个或多个图元。
本领域技术人员要领会,适当时本发明的这些方面及实施例能够并优选地包括本文所述优选及任选特征中任意一个或多个或全部。因此,例如,所生成图形命令列表优选地触发不透明图元的运行的绘制。
实际上,本领域技术人员要领会,本发明的全部所述方面及实施例适当时能够并优选地包括本文所述优选及任选特征中任意一个或多个或全部。
依照本发明的方法可至少部分使用软件、例如计算机程序来实现。因此将可见,在从其它方面审视时,本发明提供了计算机软件,它在安装在数据处理部件上时具体适合执行本文所述的方法,计算机
所述方法的计算机软件代码部分,且计算才几程序包括适合在该程序在
数据处理部件可为微处理器系统、可编程FPGA (现场可编程门阵列)等。
本发明还扩展到计算机软件载体,所述载体包括这样的软件在用于操作包括数据处理部件的图形处理器、渲染器或者微处理器系统时结合所述数据处理部件导致所述处理器、渲染器或者系统执行本发明的方法的步骤。这种计算机软件载体可为例如ROM芯片、CD ROM或盘的物理存储媒介,或者可为信号,例如线上的电信号、光信号或例如至卫星的无线信号等。
还要领会,不是本发明的方法的所有步骤都需要由计算机软件来执行,因此根据更广泛方面,本发明提供了计算机软件以及安装在计算机软件载体上用于执行本文所给方法的至少一个步骤的这种软件。
因此,本发明可适当地体现为与计算机系统配合使用的计算机程 序产品。这种实现可包括一系列计算机可读指令,所述指令固定到例
如诸如盘、CD-ROM、 ROM或者硬盘的计算机可读媒介的有形媒介, 或者经由调制解调器或其它接口装置通过包括但不限于光或模拟通 信线的有形媒介或者以无形方式使用包括但不限于微波、红外或其它 传输技术的无线技术可传送到计算机系统。所述系列的计算机可读指 令包含本文先前所述的功能性的全部或部分。
本领域技术人员要领会,能够用若干与很多计算机体系结构或操 作系统配合使用的编程语言来写这种计算机可读指令。此外,这种指 令可使用当前或以后的、包括但不限于半导体、-兹的或光的任意存储 器技术来存储,或者使用当前或以后的、包括但不限于光、红外、或 者微波的任意通信技术来传输。预期这种计算机程序产品可如可去除 媒介一样随附带的打印或电子文档进行分发,例如用收缩性薄膜包装 的软件,随计算机系统预先载入在例如系统ROM或者固定盘上,或者 从服务器或单子公告板通过网络、例如因特网或者万维网进行分发。
本发明的若干优选实施例将仅以示例方式参考附图进行描述,其
中
图l示意示出了其中可实现本发明的图形处理系统的第 一实施
例;
图2示意示出了可以本发明的方式进行处理的命令列表的第 一 实 施例;
图3示意示出了用于触发以本发明的方式的操作的命令列表的第 二实施例;
图4示意示出了其中可实现本发明的图形处理系统的第二实施
例;图5示意示出了依照本发明的实施例的Z值的偏移;
除非另外指明,否则在附图中相同参考标号用于类似组件及要素。
具体实施例方式
图1示出了本发明与可以本发明方式操作的示例图形处理系统的 第一实施例的实现有关的流水线阶段。图l示出在图形数据(顶点数 据)经过转换及光照操作之后的流水线阶段("向后转换"流水线阶 段)。
图1中示出的图形处理系统为基于区块的系统,但是本发明同样 可应用于其它系统,例如如上所述的立即才莫式渲染系统。
如图1所示,这个实施例的图形处理系统接收输入命令列表2。这 些列表由命令列表阅读器3从外部存储器读入,作为至图形处理系统 的输入。
图形处理系统1还包括顶点载入器4,它可读入与要处理的图元的 顶点有关的数据,例如位置及变化量数据。此外,可从外部存储器冲企 索这个数据。
如图1所示,读入的命令及顶点数据被提供给图元设置阶段5,它 响应于它接收到的命令及顶点数据设置要渲染的图元,这在本领域是 已知的。
命令列表阅读器还给渲染状态单元6提供输入,所述渲染状态单 元6将流水线控制并配置到由命令列表阅读器读入的命令所指明的适 当渲染状态。因此,如图l所示,这种渲染状态单元将图形处理器l的 阶段配置为适当状态以便在从图元设置阶段5经过流水线传递的图元 上执行适当操作。
在图1所示的图形处理体系结构中,图元保留Z测试阶,殳7在图元 设置阶段5之前。如本领域已知的,这种图元保留Z测试阶段7使用来 自分级Z緩沖器、Z锥体(Z-pyramid) 8的深度值数据来尝试有保留地拒绝可确定为要被已经处理的图元阻塞的图元(即,其深度值存在于Z锥体8中)。
接着,下一阶段是使处理流水线的"设置"在图元设置阶段5中
经过图元保留z测试的图元。
然后,那些图元被栅格化到适当样本位置及代表所生成的那些样
本位置的片元以供渲染。这在栅冲^f匕阶段9中执行。
栅格化的片元接着净皮提交到片元早期Z测试阶段IO,所述片元早期Z测试阶段10使用Z緩冲器16中的值来设法拣选能够已确定为被先前已处理的片元阻塞的片元,这在本领域是已知的。
然后,将经过片元早期Z测试阶I殳10的片元发送到对片元进行着色的片元着色阶段ll。如本领域已知的,这种着色可包括任意合适及所需片元着色处理,例如对片元执行片元着色器程序,对片元应用材质(使用例如材质高速緩存12),对片元应用混合、雾化或其它操作等,这在本领域是已知的。片元着色阶段ll还可使用其它输入,例如图l所示的片元着色器程序及均衡(uniform) 13。
接着是片元测试阶段14,其中它对该片元执行流水线深度测试的结束,以便使用本领域公知的该片元的位置的Z緩存值16并还使用例如任意必需a和/或;漠版测试来确定所渲染片元是否在最后图像中真正可见。
然后,将经过片元测试阶段14的片元被传递到片元揭:作阶段l5,所述片元操作阶段15在片元上执行任意必需的剩余操作,例如与帧緩存混合、抖动等
最后,输出片元、颜色等值被写入到适当颜色缓沖器17,它们可例如从所述颜色緩冲器17输出到帧緩冲器以供显示。片元的深度值还被适当地写到Z緩冲器16,这在本领域是已知的。
如本领域已知的,对于緩冲器提供的每个采样点(实质上对于要处理的区块的每个采样点),颜色緩冲器17与Z緩沖器16将分别存储适当颜色等或者Z值。图1示出了具有四个颜色緩冲器17及Z緩冲器16的布置。但是,本 领域技术人员要领会,按照需要可在渲染流水线结束使用输出緩冲器 的不同组合及布置。
要理解,图l所示(下文在图4中描述)的图形处理器的阶段、要 素及单元等的每一个可按照需要执行,并因此将包括例如适当电路和 /或处理逻辑等以执行必需的操作与功能。
现在将依照本发明的实施例描述图l所示图形处理系统的操作。
如上文所述,本发明包括经过图形处理系统两次发送要响应于图 形命令列表的一部分的命令而绘制的图元, 一次是在旨在确定哪个图 元将出现在每个采样点的第一经过中,然后另 一次是在更彻底地对出 现在每个采样点的图元进行处理例如并优选地以便准备显示图元所 需的数据的第二经过中。
因此,在以本发明的方式的操作中,命令列表阅读器3将首先对 命令列表中可应用本发明的方式的操作的部分读入并进行标识(用于 触发此类操作的合适机制将在下文更详细地描述)。
响应于对命令列表的这个部分进行标识,命令列表阅读器3将向 渲染状态单元6发送适当命令,以便将处理器1配置成对命令列表的该
部分以在本发明中为仅z模式的处理进行处理。在这种仅a莫式的处理
中,图形处理系统l这样配置有效的仅写入状态为Z及Z测试的读与 写。
与命令列表中该部分的命令对应的图元接着正常地、但是以这个 特定仅Z模式的处理集合通过处理流水线。
这允许用图元列表的该部分中的图元的适当Z值来填充Z緩沖器 16及分级Z锥体8,但是同时存储器进行存取且使例如片元处理及着色 最小化。
在到达命令列表中要用本发明的方式进行处理的部分的结束时 (此外,将这向命令列表阅读器3指明的机制将在下文更详细地描 述),则命令列表阅读器3识别这种情况并触发再次在命令列表的该部分上的处理(即,从存储器第二次读入命令列表中的该部分),但 是这次在本实施例中将用于命令列表中该部分(命令列表中与该部分 对应的图元的)的处理的渲染状态设置为由对于命令列表中所涉及部 分所接收到的命令所指明的正常渲染状态。换句话说,命令列表阅读
器3使渲染状态单元6将图形处理器1配置成对在命令列表的该部分上 的第二经过用"正常"方式处理图元。
这意味着,在第二处理经过中,图元将被正常地处理,但是,例 如在执行图元保留Z测试7及片元早期Z测试10时,那些测试将使用已 经存储在Z緩冲器16与Z锥体8的、来自第一处理经过的Z值及数据。这 将导致那些测试从所述处理中拣选除要对所涉及采样点进行处理的 实际图元(及片元)以外的所有图元(并只使用图形处理系统的正常 Z测试等硬件)。
换句话说,来自第 一处理经过的所填充Z緩冲器16与在第二处理 经过中执行的Z测试一起,允许该系统确定哪个图元将在第二处理经 过中对每个采样点进行处理。
这允许该系统在第二处理经过中避免实际上将被要响应于命令
的任意图元的不必要处理、例如片元着色,因此使在命令列表的该部 分上的第二处理经过更为有效。
图2及3示意示出了用于在本实施例中触发以本发明的方式操作 的布置。
图2示出在存储器中的命令列表流包括用于绘制单个图元的命令 的情况下这样做的优选实施例。图3示出了命令列表流包含用于绘制 从存储器请求图元数据的多个图元的命令的情形。
在图2及3中所示的列表均与基于区块的渲染系统有关,且因此包 括开始新区块命令"T"及将处理分支到新区块的无条件分支命令"B,,, 如图2及3中所示。但是,如果忽略图3所示的区块相关命令,则该命 令列表流将还与输入到立即模式、非区块化的图形处理单元的命令列
40首先描述图2所示的布置。
如图2所示,命令列表30包括如上所述的开始新区块命令3 l及无 条件分支命令32 (以便触发新区块的开始),这在本领域是已知的。 组合的命令列表30还包括指示绘制图元的命令33的运行。在这种实施 例中,"绘制图元"命令33还包含绘制图元所需的所有数据。这些命 令将由图形处理器的驱动器生成,并存储在存储器中,使得它们可被 图形处理器的命令列表阅读器3访问。
图2还示出了插入到命令列表中的两条新命令,即"有效的仅Z模 式"命令"Z" 34及"基于仅Z模式的分支条件"命令"Zb,, 35。这些 新命令被驱动器插入到预期用本发明的方式进行处理的命令列表的 部分的周围,并进行操作,如下文将进一步描述的,以便触发用本发 明的方式的操作。
在本实施例中,在命令列表序列上执行用本发明的方式的操作, 以便用不改变它们的Z值的着色器绘制不透明图元(即,不可能通过 其显示某些东西(显示其后面的某些东西)的图元),因此驱动器识 別这些序列并将有效的仅Zi莫式命令34插在这种命令(图元)序列之 前,并把基于仅Z模式的分支条件命令35插在这种序列(序列38、 37、 36)的结尾,如图2所示。
然后,在命令列表阅读器3在图元列表中识别到有效的仅3莫式命 令34时,它触发图形处理器l转换为"仅Z"处理模式,在该模式中, 有效的仅渲染状态为Z及Z测试的读与写,如上所述。然后,命令序列、 例如图2所示的序列38用这种模式进行处理,直到命令列表阅读器识 别到在该序列的结尾的基于仅3莫式的分支条件命令35为止。
基于仅Z模式的分支条件命令对条件分支进行编码,其中分支条 件为当前渲染模式为"正常,,还是"仅Z"。作为进行分支的副作用, 它还触发从仅Z模式向正常渲染模式的转换。
这样的作用是在命令列表中相关部分的第 一处理经过的结束时(例如图2中的部分38),命令列表阅读器将触发由基于仅》漠式的分支条件命令35所指明的条件分支(因为在那个点,图形处理器l将处于如被有效的仅Z模式命令34所触发的仅Z^莫式),以便分支回命令列表的部分38的首部,但是还将图形处理切换到正常渲染模式。
这些命令表示的命令列表的部分38将接着被图形处理器1第二次横过,如上所述,但是这次要绘制的图元可为早期力东选的,如上所述,以便只有例如最近的表面将生成用于着色的采样点及片元。
接着,在该第二经过期间第二次到达基于仅Z模式的分支条件命令35时,将不触发该分支命令,因为该处理器将接着用正常方式进行处理(即,图形处理将不处于^f叉Z冲莫式),因此将不进行分支且命令列表剩余部分以正常方式的处理可继续下去。
图3示出了稍微不同的命令列表布置。图3再次示出了命令列表45,其中包括"新区块,,命令31及"绘制三角形"命令40。但是,在这种情况下,绘制三角形命令40本身不包含所有必需的图元数据,因此改为触发从与命令40指明将绘制的三角形对应的图元列表读出适当图元(三角形)数据。
如图3所示,适当的有效仅》漠式命令34以及基于仅&漠式的分支条件命令35被再次插入到命令列表中在本发明要应用的绘制三角形(图元)命令40的序列的周围,例如在图3所示的序列41、 42及43的周围。
然后,这些命令触发用上文结合图2所述的方式进行的操作。根据上文将理解,在图2和图3的布置中,作用是用本发明的方式处理(不透明)图元的序列,因为例如图3所示的命令序列41事实上表示与要响应于包含在序列41中的绘制三角形命令40而绘制的图元对应的对应图元序列。
虽然图2及3示出通过将适当命令包含在提供给图形处理器的命令列表中来触发本发明的操作,但是如果需要这种操作可用其它方式进行触发。例如,图形处理器可自己识别到要绘制不透明图元的运行的命令,例如然后对这种运行触发用本发明的方式的操作(并例如存 储通过这种运行允许这两个处理经过必需的数据、例如地址)。
对于响应于包含在命令列表中的命令的以适当及所需方式的上 述操作,图形处理器1可配置成适当的仅Z模式及正常模式。例如,适 当时,可存在为将处理流水线设置为仅Z模式或正常渲染模式所触发 的全局渲染状态变化。
如果像在申请人的稍早UK专利申请No. GB-A-2420261中所述的 系统中那样,图元及片元等在内部域中携带对若干预定渲染状态中之 一的索引,那么优选地,这些预定渲染状态中之一被设置到仅Z模式 渲染状态。在这种情况下,在触发仅Z模式时,则可将每个图元的渲 染状态索引改写为特定仅Z模式预定渲染状态(例如,渲染状态索引 0),然后将它经过图形处理器传递到栅格化器。因此,图元将通过 处理器自动拾取用于仅》漠式经过的仅Z渲染状态。
类似地,将还能够且优选地为仅Z模式渲染状态保留片元程序地 址(如果使用片元着色)。然后优选地,该地址将触发避开片元着色 器(因为片元程序通常对于仅Z模式渲染状态是不需要的)。
在本实施例中,如果通过图元序列的第二处理经过要使用<=(小 于或等于)或者>=(大于或等于)的Z比较函数来执行,那么在第二 处理经过中使用该Z比较函数。
但是,如果指明的Z比较函数对于所涉及图元为〈(小于)或者〉 (大于),那么该(通过初始图形绘制指令)指明的Z比较函数在第 二处理经过中分别改变为<=(小于或等于)或者>=(大于或等于)的 Z比较函数。
这是为了确保预期图元(片元)将还在第二处理经过中通过Z比 较测试,假定Z緩冲器16与Z锥体18将已经包含那个图元(片元)对所 涉及采样点的深度值。这将确保始终生成与将在没有本发明的情况下 绘制的相同图元(片元),且该Z测试中的联系的结果不对第二处理 经过产生影响。在本实施例中,这种对第二处理经过的Z比较功能的改变如果必需则在驱动器支持软件中执行。例如,能够将此4是供为使驱动器因而允许平台集成人员决定是否进行这种改变的编译选项。
例如,将还能够在为图元列表的该部分所指定的深度测试为<或者> (小于或大于)的情况下禁止用本发明的方式的操作(即在任意情况下只激活本发明用于深度测试对其指定为<=或>=(小于或等于,或者大于或等于)的图元的运行)。那么,这将避免在实现本发明时对深度测试的Z比较函数的变化的需要。
上文的两种变化可用驱动器中的仅软件变化来实现,因此它们将允许本发明例如以对其的最小及仅局部变化而用于现有i殳计中。
在备选布置中,为同样确保正确图元及片元在第二处理经过中通
过z测试,代替如上所述必需的对z比较函数进行改变,将能够对在第一处理经过中写入的z值进行偏移,对于z比较函数的〈(小于)系列则远离观察点或者对于z比较的〉(大于)系列则朝向观察点,以便再
次确保在第二处理经过中对正确片元(图元)进行着色。
图5示出这种情况,并示出在第一处理经过中确定的Z值70远离观察点71的偏移,以便提供一组偏移Z值72供〈(小于)的Z比较函数时使用。
在该布置中,在第一处理经过中确定的Z值70以可能的最小量进行偏移,所述最小量可以任意效果加到来自第 一处理经过的所确定Z值(或者适当时从其减去)。
因此,在整数Z緩存的情况下,适当时,在第一处理经过中写入的Z值以 一 递增或递减。
在浮点Z值的情况下,要应用的最小偏移将根据Z值本身而变化,但是可加到当前Z值或从其减去的最小数在该情况下可根据Z值的指数(exponent)以及其尾数(mantissa)的固定大小来轻易确定。
然后,将在第一处理经过中的所确定Z值写到Z緩存16 (因此也写到Z锥体8)之前,4巴所确定偏移应用到所述Z值。
44在如上所述偏移Z值或者改变Z比较函数的备选布置中,将能够给
Z緩冲器增设图元ID緩冲器,在第一处理经过中将确定成应用到每个 采样点的图元的标识存储在所述图元ID緩冲器。然后,在第二处理经 过中,不使用每片元测试的Z緩冲器,每个片元(对于该片元对应的 采样点)将具有其与先前为该片元而存储在图元ID緩冲器中的图元ID 相比较的ID,且在第二处理经过中只有与存储在图元ID緩冲器中的ID 相匹配的那些片元被着色和读出。
换句话说,在第二处理经过中,每片元(每采样点)早期深度测 试将被与片元相关联的图元标识与在第一处理经过中已经生成的存 储在图元ID緩沖器中的图元标识之间的标识比较取代。
在这种布置中,图元标识可例如通过使用计数器来进行分配,所 述计数器对作为输入的每个图元递增,这些图元在它们流到渲染流水 线时被从该计数器分配ID。然后,对于第二处理经过,图元计数器可 复位,使得图元在它们流入到该流水线时再次获得适当标识。
图4示出了图形处理系统的第二实施例,它示意示出了上文备选 布置的一些布置。
如图4所示,该实施例的图形处理系统50包^"若干与图1所示实施 例相同的组成部分。但是,它还具有对那个实施例的某些添加件,所 述添加件可用于合并上文的备选布置。
图4还示意示出了外部存储器接口 51,所述外部存储器接口 51由 图形处理系统、例如命令列表阅读器3及顶点载入器4用来从外部存储 器访问相关数据,例如命令列表及顶点数据。
图4首先示意示出了Z偏移阶段52,如上所述,它可用于将适当偏 移应用到在第一仅Z模式处理经过中确定的Z值,然后将它们写到Z缓 存,如上所述。
图4还示意示出了图元ID计数器53及图元ID緩冲器54,所述图元 ID缓冲器54如上所述可用来标识要在第二处理经过中进行处理的适 当图元。如上所述,在该布置中,图元ID计数器53在本实施例中为16比特 计数器,它在命令列表的 一部分要被用本发明的方式进行处理时复 位,然后对作为输入的、由命令列表中该部分所表示的该序列的每个 图元递增。然后,图元在流到渲染流水线时从该计it器获得适当ID。
在第 一处理经过中,给给定采样点的给定片元所分配的图元标识 (计数器值)被写到图元ID緩冲器54,同时其深度值被写到Z緩冲器 16的对应Z缓冲器单元。在本实施例中,图元ID緩冲器54为16比特每 采样点緩冲器,但是当然可使用其它布置。
然后,在命令列表的该部分上的第二处理经过(其所有渲染状态 经过)中,首先将图元计数器53复位,使得对应于命令列表的该部分 的图元将/人该计数器获得与在第 一处理经过中在它们流到渲染流水 线时相同的ID。
但是,在该第二处理经过中,对于每样本点测试不使用Z緩冲器 16 (虽然可还有保留地使用Z锥体18)。每个片元改为具有其与存储 在图元ID緩冲器54中的那个样本位置或那些样本位置的对应ID相比 较的所分配图元ID,其中,拣选那些不匹配的片元且将那些不匹配片 元着色并读出到颜色緩冲器,等。
图4还示意示出了片上緩冲器55,它可用来存储从在图形处理平 台50本身上的外部存储器取出的数据。其中,该缓沖器可用来避免或 降低在执行本发明时例如从外部存储器两次读图元列表及顶点位置 的需要。
为了使用该緩冲器,当在本实施例中在第一处理经过期间从外部 存储器读图元列表及顶点位置时,将该数据存储在緩冲器55中,使得 数据在该緩沖器中对通过图元列表的那个部分的第二处理经过可用。
优选地,緩冲器55通过仅Z命令复位(即,使得它可接着用与新 的仅Z命令有关的命令列表的该部分的新数据来填充)。
图4所示的緩冲器55示出为具有长度K的大小,即存储等于K个图 元的运行(序列)的数据。该緩冲器可以例如以下方式中之一来使用。首先,在緩冲器55具有固定长度K时,如果命令列表中用本发明的方式进行处理的部分长于緩沖器55的长度K,那么命令列表可分成将各自适合緩冲器55的子长度,使得命令列表的整个部分的每个这种子长度将实际上具有其自身的仅Z第一处理经过布置。
备选地,緩冲器55可例如用第一K个命令列表条目以及要用本发明的方式进行处理的命令列表的给定部分的关联顶点位置来填充。在这种情况下,对于在命令列表的那部分上的第二处理经过,第一K个命令等将从缓冲器55中取得,但是任何余下命令等将再次从外部存储器取得。
例如,将还能够定义某种多个长度K的緩冲器55,命令列表超出它的一部分将分成子部分,则每个子部分具有其自身的按本发明方式的处理。
虽然以上实施例在命令列表被图形处理器读或执行两次的布置的上下文中进行了描述,但是能够具有其中虽然将需要在第一处理经过之后将更多数据存储在片上但那不是必需的布置。
例如,在第一处理经过中,将能够运行包括材质及所涉及图元的任意其它变化量的插入操作,但是不需要对材质进行采样,然后对每采样点緩存足够的信息以便允许第二处理经过在不需要对命令列表再解析的情况下进行。 一旦确定了要处理的图元(片元),则它们能够在第二处理经过中使用缓存的信息来进行处理。
这种布置将避免例如第二次读入命令的需要,但是将要求更大的内部存储器及在第一处理经过中的更多处理步骤。
另一备选是对每个采样点存储写到如在第一处理经过中所确定的那个采样点的图元命令。具有全部渲染状态的第二处理经过则将不需要再读入命令,而是可改为在緩沖器的采样点上运行,使用所存储图元命令来确定要设置哪个状态以供在第二处理经过中处理采样点。
在这种布置中,将优选使用64比特图元命令区块緩沖器。
从上文可见,本发明在其优选实施例中,至少提供改进技术来避免渲染不可见片元。
因此,本发明可在其优选实施例中至少减少外部存储器带宽的使 用,且因此减少功率使用。它还能帮助增加渲染的速度并增加处理复 杂场景的能力,并能够以对应用透明的方式这样进^f亍。
理系统配置成对要响应于命令列表中 一部分的命令而绘制的图元处 理两次, 一次以仅Z渲染^^莫式且然后再次用有效的所有渲染状态,但
是使用从第 一处理经过所确定的z值来从在第二处理经过的处理中拣
选图元及片元。在优选实施例中,将命令插入到命令列表中在不透明 图元的绘制运行的命令的运行的首部及尾部以便触发这种操作。
权利要求
1.一种操作图形处理器的方法,其中要由所述图形处理器执行的、包括指示所述图形处理器绘制图元的命令的图形命令列表在所述命令被所述图形处理器执行之前被准备并存储在存储器中,所述方法包括所述图形处理器在所存储命令列表的一部分中的命令序列上执行第一处理经过,以便导出可帮助从要响应于所述命令列表的所述部分中的命令而绘制的图元中选择用于对采样点集合中每个采样点进行处理的一个或多个图元的数据;存储所述所导出数据,以用于帮助选择要在每个采样点进行处理的图元;以及在所述命令序列上执行第二处理经过以便对要响应于所存储命令列表的所述部分中的命令而绘制的图元进行处理,使用所存储数据来帮助从要响应于所述所存储命令列表的所述部分中的命令而绘制的图元序列中选择要在所述第二处理经过中对每个采样点进行处理的所述一个或多个图元。
2. 如权利要求l所述的方法,其中,所述第一处理经过包括在每 个样本位置执行深度测试,以便基于所述图元的深度值确定在每个样 本位置的可见图元。
3. 如权利要求1或2所述的方法,其中,在所述命令列表部分上 的所述第一处理经过包括在要响应于所述命令列表的所述部分中的 命令而绘制的图元上执行仅深度渲染经过。
4. 如前述权利要求中任一项所述的方法,其中,在所述第一处理 经过中导出并在所述第一处理经过之后存储的所述数据包括从所述 第 一处理经过导出的深度緩存。
5. 如前述权利要求中任一项所述的方法,其中,对于每个采样点,在所述第一处理经过中导出并存储的、用于帮助要在所述第二处理经 过中在每个采样点进行处理的图元的选择或标识的所述数据包括可 用来对要在所述第二处理经过期间在所述采样进行处理的图元进行 标识的标识符。
6. 如前述权利要求中任一项所述的方法,其中,在经历了所述第一处理经过的命令列表的所述部分中的命令上执行的所述第二处理 经过包括提供在显示器上显示所述图元所需的数据的渲染经过。
7. 如前述权利要求中任一项所述的方法,其中,所述第二处理经 过使用来自所述第一处理经过的所存储图元标识符来确定要在所述 笫二处理经过中对每个采样点进行处理的图元,或者所述第二处理经 过使用来自所述第一处理经过的所存储深度緩存值来确定要在所述 第二处理经过中对每个采样点进行处理的所述一个或多个图元。
8. 如前述权利要求中任一项所述的方法,包括 将条件分支命令包含在给所述图形处理系统所提供的所述命令列表中,以便在所述第一处理经过之后触发所述第二处理经过的执 行,所述条件分支命令既触发至所述命令列表中另一点的分支还将在 进行所述分支时触发所述图形处理系统的状态改变,且对于所述条件 分支命令,进行所述分支的条件是所述图形处理系统的当前状态。
9. 如前述权利要求中任一项所述的方法,包括将来自所述第一处理经过的所述命令列表的所读数据的一些或 全部存储在所述图形处理器本身上,使其接着在所述图形处理器上的 存储器中对所述第二处理经过可用。
10. —种在图形处理系统中处理图元的方法,所述方法包括在图元序列上执行第 一处理经过,以便为采样点集合的每个采样 点确定在所述图元序列中要对所述采样点进行处理的图元的一个或 多个图元;存储数据以便允许在每个相应采样点处理所述所确定一个或多 个图元;以及使用所述所存储数据来执行第二处理经过以便对每个采样点处 理所述图元序列的所述相应一个或多个图元。
11. 一种图形处理系统,其中要由所述图形处理系统执行的、包 括指示所述图形处理系统绘制图元的命令的图形命令列表在所述命 令被所述图形处理系统执行之前被准备并存储在存储器中,所述图形处理系统包括用于在所存储命令列表的一部分中的命令序列上执行第 一处理绘制的图元中选择用于对釆样点集合中每个采样点进行处理的一个 或多个图元的邀:据的部件;处理的图元的部件;以及用于完成以下功能的部件在所述命令序列上执行第二处理经过行处理,使用所存储数据来帮助从要响应于所述所存储命令列表的所 述部分中的命令而绘制的图元序列中选择要在所述第二处理经过中 对每个采样点进行处理的所述一个或多个图元。
12. 如权利要求11所述的系统,其中,所述用于执行第一处理经 过的部件包括用于在每个样本位置执行深度测试以便基于所述图元 的深度值确定在每个样本位置的可见图元的部件。
13. 如权利要求11或12所述的系统,其中,所述用于在所述命 令列表部分上执行第一处理经过的部件包括用于在要响应于所述命 令列表的所述部分中的命令而绘制的图元上执行仅深度渲染经过的 部件。
14. 如权利要求11-13中任一项所述的系统,其中,在所述第一 处理经过中导出并在所述第一处理经过之后存储的所述数据包括从 所述第一处理经过导出的深度緩存。
15. 如权利要求11-14中任一项所述的系统,其中,对于每个采样点,在所述第一处理经过中导出并存储的、用于帮助要在所述第二 处理经过中在每个采样点进行处理的图元的选择或标识的所述数据 包括可用于对要在所述第二处理经过期间在所述采样进行处理的图 元进4亍标识的标识符。
16. 如权利要求11-15中任一项所述的系统,其中,所述用于在 经历了所述第一处理经过的命令列表的所述部分中的命令上执行所 述第二处理经过的部件包括用于执行渲染经过以便提供在显示器上 显示所述图元所需的凝:据的部件。
17. 如权利要求11-16中任一项所述的系统,其中,所述用于执 行第二处理经过的部件包括使用来自所述第一处理经过的所存储图元标识符来确定要在所述第二处理经过中对每个采样点进行处理的 图元的部件、和/或使用来自所述第一处理经过的所存储深度緩存值来 确定要在所述第二处理经过中对每个采样点进行处理的所述一个或 多个图元的部件。
18. 如权利要求11-17中任一项所述的系统,包括用于响应于所述图形处理系统所接收以供执行的命令列表中的 特定条件分支命令根据所述图形处理系统的状态分支或不分支到所 述命令列表中的另 一点、且如果进行所述分支就改变所述图形处理系 统的状态的部件。
19. 如权利要求11-18中任一项所述的系统,包括用于将来自所述第一处理经过的所述命令列表的所读数据的一 些或全部存储在所述图形处理器本身上使其接着在所述图形处理器 上的存储器中对所述第二处理经过可用的部件。
20. —种图形处理系统,包括用于在图元序列上执行第 一处理经过以便为采样点集合的每个 采样点确定在所述图元序列中要对所述采样点进行处理的图元的一 个或多个图元的部件;用于存储数据以便允许在每个相应采样点处理所述所确定一个或多个图元的部件;以及用于使用所述所存储数据来执行第二处理经过以便对每个采样 点处理所述相应一个或多个图元的部件。
21. —种计算机程序单元,包括计算机软件代码部分,用于在 所述程序单元在数据处理部件上运行时执行权利要求1-10中任一项 所述的方法。
全文摘要
在图形处理系统中,命令列表阅读器3首先读入并标识命令列表的一部分。对应于命令列表中该部分的命令的图元接着经受仅Z处理经过。这允许Z缓冲器16及分级Z锥体18被用命令列表中该部分的图元的适当Z值来填充。然后图元经受第二正常渲染处理经过,但从第一处理经过填充的Z缓冲器16及Z锥体18与在第二处理经过中执行的Z测试7、10一起使用,以便确定哪个图元将在第二处理经过中对每个采样点进行处理。
文档编号G06T15/40GK101639929SQ20091014068
公开日2010年2月3日 申请日期2009年6月5日 优先权日2008年6月5日
发明者A·H·科克斯, R·埃利奥特, R·费尔, S·艾利斯 申请人:Arm有限公司