当前位置: 首页 > 专利查询>英特尔公司专利>正文

高效Z测试制造技术

技术编号:2947688 阅读:256 留言:0更新日期:2012-04-11 18:40
计算机图形渲染期间的Z测试的执行方式是为了优化渲染。不可提升的像素状态可使用像素状态阵列(PSA)来跟踪。每个PSA行可包括对应于像素的不可提升状态的位。每行可包括5位,其中的首4位代表子块中的像素。如果行对应于合法子块,则可确定该子块中是否有任何像素被表示为1,即表明该像素是不可提升的。此行对应于已被送到渲染流水线的在先子块。如果出现1,则可阻滞当前子块,直到在先子块的像素已通过色彩计算。如果在刚读取的行中没有像素表示为1,则可确定当前子块中是否有任何像素是不可提升的。如果有,则可将当前PSA行中的对应位设置为1。否则,可对当前子块的每个像素执行Z测试。

【技术实现步骤摘要】

在此描述的本专利技术的实施方案涉及计算机图形,更具体地说涉及渲染(rendering)。
技术介绍
一般地说,计算机图形渲染是这样一个过程,通过此过程可接收并处理图形指令和数据以可产生图像数据。然后将该图像数据发送到输入/输出(I/O)设备例如显示器。渲染操作创建可被显示为图像的数据。计算机图形渲染的过程可包括多个离散操作。例如,可能需要计算物体或背景的特定颜色。还可能需要将纹理(texture)应用到给定的表面。计算机图形渲染中可能执行的另一个操作是确定给定物体是否在另一个物体或背景的前面。如果前景物体是不透明的,则背景物体可被遮挡,而背景物体被遮挡的部分可能不需要被渲染。这一深度分析一般称为Z测试。在渲染的三维场景中,物体或像素和假想的照相机或观测者的眼睛之间的距离可被确定。类似地,可确定照相机和第二可能遮挡的物体或像素之间的可比较的距离。这些距离可以在假想的Z轴上测量,因此有了术语“Z测试”。如果较近的物体是不透明的,则较远的像素或物体可能不需要被渲染。但是要注意,Z测试在某些实现方式中可能更为复杂。例如,当一个物体可能在前景中时,该物体可能是半透明或透明的。在这一情形中,可能需要渲染背景物体。这些条件也可被设计到Z测试中。如上所述,Z测试处理可能只是渲染期间发生的几个处理中的一个。而且,图像可能需要近乎实时地生成、修改和显示。如果这样,由于计算机图形渲染经常意味着大量数据的处理,渲染处理必须高效而迅速地进行。因此,出现若干设计问题,涉及如何最佳地排序这些处理以及如何实现它们,以可最大化渲染吞吐率。
技术实现思路
根据本专利技术的一个方面,提供了一种方法,包括读像素状态阵列(PSA)的两行的容器标志,所述行对应于在先子块和当前子块;以及,确定所述当前子块是否包括不可提升的像素并且与所述在先子块重叠,并且,如果是,则阻滞所述当前子块,直到所述在先子块被渲染流水线的色彩计算逻辑处理;否则,将所述当前子块转发通过所述渲染流水线。根据本专利技术的另一个方面,提供了一种方法,包括确定在先行是否出现在像素状态阵列(PSA)中,所述在先行对应于在先子块;确定所述PSA的当前行中是否表明有不可提升的像素;如果表明有不可提升的像素,则阻滞对应于所述当前行的当前子块,直到所述在先子块被渲染流水线的色彩计算逻辑处理;如果未表明有不可提升的像素,则确定所述当前子块是否包括不可提升的像素;如果所述当前子块包括不可提升的像素,则设置对应于所述当前子块的所述不可提升的像素的PSA位置;以及,如果所述当前子块只包括可提升的像素,则对所述可提升的像素进行Z测试。根据本专利技术的又一个方面,提供了一种计算机图形渲染器,包括进行下述操作的中间Z单元对可提升的像素执行Z测试;如果所述Z测试失败,则丢弃所述可提升的像素;以及,如果所述Z测试通过,则将所述像素转发通过渲染流水线。附图说明下面将参考附图来描述本专利技术。某个元件首次在其中出现的附图由对应标号中的最左位表示。图1表示根据本专利技术实施方案的像素状态阵列。图2的流程图示出了根据本专利技术的实施方案,使用所述像素状态阵列来执行Z测试的过程。图3的流程图示出了根据本专利技术的实施方案,校验像素状态阵列中的一行的容器(bin)标志并对其操作的过程。图4的方框图示出了根据本专利技术实施方案的计算机图形渲染器。具体实施例方式这里描述的本专利技术例如可表示为一种方法和系统,用于在计算机图形渲染期间执行Z测试,以优化渲染吞吐率效率。为了本专利技术的目的,像素可被安排成子块(subspan),每个子块可以是在计算机显示器上显示的2像素乘2像素的阵列。子块可进一步组合成更大的集合,在此称为容器(bin)。每个容器因此可代表一组子块,并可代表显示在计算机显示器上的场景(scene)的离散区域。一些像素可被指定为不可提升的。如果像素是不可提升的,则意味着即使该像素相对于背景中的像素可能位于前景中,该前景中不可提升的像素也未必遮挡所述背景像素。不可提升的像素例如可能是透明或半透明的物体或表面的一部分。不可提升的像素状态可使用称为像素状态阵列(PSA)的数据结构来跟踪。在本专利技术的实施方案中,像素状态阵列可包括多个行。每行可包括多个位,每个位对应于像素的不可提升状态。在本专利技术的实施方案中,PSA的每行可包括5个位,其中的首4位可代表单个子块中的像素。如果像素是不可提升的,则PSA中的对应位可在对应于该像素的子块的行中被设置。PSA可实现为硬件或软件,或其结合。在本专利技术的实施方案中,本专利技术的处理可开始于读PSA的行。可确定子块的合法性,即该处理可确定子块是否包括至少一个像素。可确定该行中的首4个位置中是否有任何一个出现1。1表明对应的像素是不可提升的。注意,此行可对应于一个在先的像素子块,该子块已经被送进渲染流水线中进行色彩计算和其他操作。如果出现1,则当前子块可在渲染流水线之前被阻滞,直到在先子块的像素已经完成色彩计算。如果已经读取的行中没有像素表示为1,则可确定当前子块中是否有任何像素是不可提升的。如果是,则可将对应于当前子块的PSA行中的对应位设置为1。否则,可对当前子块的4个像素中的每一个进行Z测试。以这种方式,可在Z测试期间分析已知为可提升的像素,并可能在发现它们将被另一个像素遮挡时将起丢弃。这一被丢弃的像素因此绝不再会转到其他处理如色彩计算。这可消除不需要被处理的像素。下面将参考附图描述本专利技术的实施方案。如上所述,给定像素可被看作为可提升的或不可提升的。给定像素的可提升性或不可提升性可在PSA中跟踪。图1示出了根据本专利技术实施方案的示例性PSA。PSA可组织为二维阵列。阵列的每一行可对应于一个像素子块。在所示出的实施方案中,每个子块包括4个像素,因此PSA的每行包括4位,每像素1位,后跟第五位。行中的第五位在此可称为容器标志。容器标志的作用将在下面更详细地描述。因此在所示出的实施方案中,PSA的每行是5位。图2示出了本专利技术的处理的实施方案。该处理开始于方框205。在方框210中,读PSA的行。PSA的该行可和已经转发到通过渲染流水线进行色彩计算处理的在先像素子块相关联。如果在方框215中确定该子块是合法的,则处理可继续到方框220。这里可考虑当前子块。这一子块还未被转发到渲染流水线中的色彩计算。在方框220,确定当前子块中是否有任何像素表示为1。如上所述,1表明对应的像素是不可提升的。如果出现1,则在方框225中,阻滞当前子块,直到色彩计算逻辑完成了在先子块的解析。否则,处理继续到方框230。这里,确定当前子块中是否有任何像素是不可提升的。如果有,则处理继续到方框235。这里,将适当的PSA位置设置为1。如果当前子块中没有像素是不可提升的,则处理继续到方框240。这里,可对当前子块中的像素进行Z测试。由于当前子块中的所有像素都是可提升的,如在方框230中确定的那样,因此此时可进行Z测试。按照这种方式,被可提升的像素遮挡的像素可被丢弃而不进行进一步的处理。因此,在方框250中,可确定是否已通过Z测试。如果是,则在方框270,被测试的像素可被转到渲染流水线上的色彩计算逻辑。否则,可在方框260丢弃该像素。在本专利技术的实施方案中,当前子块可能被发现是不可提升的,同时PSA中没有匹配的条目。在这一情形下,然后可对该子块的像素进行Z测试。本文档来自技高网...

【技术保护点】
一种方法,包括:    读像素状态阵列(PSA)的两行的容器标志,所述行对应于在先子块和当前子块;以及    确定所述当前子块是否包括不可提升的像素并且与所述在先子块重叠,并且    如果是,则阻滞所述当前子块,直到所述在先子块被渲染流水线的色彩计算逻辑处理;    否则,将所述当前子块转发通过所述渲染流水线。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:托马斯派亚扎埃里克萨姆森纳塞赫阿卡邦恩迪纳卡穆纳伽拉
申请(专利权)人:英特尔公司
类型:发明
国别省市:US[美国]

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

1