图形处理系统中的基元处理的制作方法

文档序号:8396422阅读:425来源:国知局
图形处理系统中的基元处理的制作方法
【专利说明】
【背景技术】
[0001]在3D图形处理系统中,场景的对象利用基元(primitive)的群组进行表示,它们通常在场景的渲染期间被投射、扫描转换、纹理化和阴影化。基元具有经常由能够对其应用纹理的一个或多个顶点(例如,在基元为三角形的情况下的三个顶点)所定义的简单的几何形状,其经常为三角形。3D场景处理的渲染对基元进行处理以形成包括图像像素阵列的图像。该渲染处理中的一个步骤是针对图像的多个样本位置中的每一个确定哪个/哪些基元是可见的。该处理被称作隐藏面消除(HSR)。被其它基元所隐藏的基元或者基元的部分未来在渲染中并不需要被考虑。为了执行HSR,针对每个样本位置考虑场景中的基元的深度(即,距视点的距离)以便确定哪些基元在每个像素位置是可见的。基元可以是非透明或透明的。使用纹理在本来为非透明的基元中创建孔洞的渲染技术被称作“穿通(punchthrough)”。针对非透明基元,在像素位置(其可以对应于样本位置中的一个或多个样本位置)最终所渲染的像素值可以由在该像素位置具有最小深度值的带纹理基元所给出。对于透明基元而言,在像素位置最终渲染的像素值可以由在该像素位置具有最小深度值的多于一个的带纹理基元的混合所给出。当场景包含其纹理包括穿通的基元时,在像素位置最终渲染的像素值可以由在该像素位置具有最小深度值的基元以外的基元所确定。
[0002]图1示出了图形处理系统100,其包括可以被称作图像合成处理器(ISP)的处理模块102、可以被称作Z缓冲器的深度缓冲器104、标签分类器模块106、可以被称作统一阴影聚类器(USC)的纹理和阴影引擎108,以及像素缓冲器110、在操作中,在ISP 102接收基元(例如,顶点坐标和基元标识符),并且该ISP对基元执行HSR以确定哪些基元在所要渲染的图像的多个样本位置中的每一个处是可见的。为了针对典型渲染实施HSR,ISP被编程为针对每个样本位置在深度缓冲器104中存储表示ISP 102截止目前已经处理过的最接近基元的深度的深度值,而使得ISP 102能够将当前正在处理的基元的深度与深度缓冲器104中所存储的深度值进行比较以确定当前基元是否可见。ISP 102所执行的HSR的结果被用来相应地更新深度缓冲器104中所存储的深度值。所要注意的是,在一些系统中,深度缓冲器104和标签分类器模块106可以被描述为ISP 102的组件。
[0003]标签分类器模块106包括标签缓冲器,其被配置为针对每个样本位置存储由ISP102执行的HSP所确定的该样本位置处的可见基元的基元标识符(ID)。标签分类器模块106还包括控制器以对标签缓冲器的更新和冲刷进行控制。基元标识符被冲刷到USC 108。响应于接收到被冲刷的基元标识符,USC 108将获取所标识的基元并且将获取纹理数据以便对被冲刷的基元ID所标识基元应用纹理和阴影。标签分类器模块106中的控制器控制基元标识符何时被冲刷到USC 108。例如,基元标识符可以在图像的基元已经全部被ISP 102处理时被冲刷到USC 108。基元标识符也可以在透明基元或者具有包括穿通的纹理的基元的基元标识符被存储到标签缓冲器中时被冲刷到USC 108。这是为了这些基元能够被正确混合。

【发明内容】

[0004]提供该
【发明内容】
而以简化形式对随后在【具体实施方式】中进一步进行描述的概念的选择进行介绍。该
【发明内容】
并非意在标识出所请求保护主题的关键特征或必要特征,也并非意在被用来对所请求保护主题的范围加以限制。
[0005]提供了一种图形处理系统,其具有被细分为瓦片的渲染空间,该图形处理系统包括:多个深度缓冲器,所述深度缓冲器中的每个深度缓冲器被配置为动态地每次与一个瓦片相关联,并且被配置为针对该瓦片内的每个样本位置来存储深度值;以及处理模块,其被配置为接收基元和瓦片数据,其中针对每个基元,该瓦片数据指示将在其中对该基元进行处理的一个或多个瓦片,并且其中该处理模块被配置为通过将针对瓦片的基元的深度值和与瓦片相关联的深度缓冲器中所存储的深度值进行比较而针对该瓦片的该基元执行隐藏面消除,同时另一个深度缓冲器存储针对不同的部分被处理的瓦片的深度值。
[0006]还提供了一种图形处理系统中处理基元的方法,该图形处理系统具有被细分为瓦片的渲染空间,该方法包括:在多个深度缓冲器中存储深度值,所述深度缓冲器中的每个深度缓冲器被配置为动态地每次与一个瓦片相关联,并且被配置为针对该瓦片内的每个样本位置存储深度值;在处理模块处接收基元和瓦片数据,其中针对每个基元,该瓦片数据指示将在其中对该基元进行处理的一个或多个瓦片;以及在该处理模块处通过将针对瓦片的基元的深度值和与瓦片相关联的深度缓冲器中所存储的深度值进行比较而针对该瓦片的该基元执行隐藏面消除,同时另一个深度缓冲器存储针对不同的部分被处理的瓦片的深度值。
[0007]还提供了一种计算机可读代码,当该代码在计算机上运行时其适于执行这里所描述的示例的任意方法的步骤。此外,可以提供一种用于生成这里所描述的示例的任意图形处理系统的计算机可读代码。该计算机可读代码可以被编码在计算机可读存储介质上。
[0008]如对本领域技术人员而言明显的,以上特征可以被适当组合并且可以与这里所描述示例的任意方面进行组合。
【附图说明】
[0009]现在将参考附图对实施例进行详细描述,其中:
[0010]图1是图形处理系统的示意图;
[0011]图2表示了渲染空间的四个瓦片;
[0012]图3是实施多个深度缓冲器的图形处理系统的示意图;
[0013]图4是在图3所示的图形处理系统中处理基元的方法的流程图;
[0014]图5a是示出在第一示例的瓦片中可见的基元的示图;
[0015]图5b示出了存储图5a所示的基元的基元标识符的多个标签缓冲器的相对应列;
[0016]图5c是示出在第二示例的瓦片中可见的基元的示图;
[0017]图5d示出了存储图5c所示的基元的基元标识符的多个标签缓冲器的相对应列;
[0018]图6是实施多个标签缓冲器的图形处理系统的示意图;
[0019]图7是在图6所示的图形处理系统中处理基元的方法的流程图;
[0020]图8是实施多个深度缓冲器和多个标签缓冲器的图形处理系统的示意图;以及
[0021]图9a和9b示出了对标签缓冲器的选择和对标签缓冲器的冲刷进行控制的方法的流程图。
[0022]本领域技术人员将会意识到的是,附图中所图示的要素划界(例如,方框、方框群组或者其它形状)表示划界的一个示例。在一些示例中,一个要素可以被设计为多个要素或者多个要素可以被设计为一个要素。在适当的情况下,贯穿附图使用同样的参考标号来指示相似的特征。
【具体实施方式】
[0023]以上【背景技术】部分中所描述的图形处理系统100之所以有效的原因在于,隐藏面消除是在ISP 102中执行并且仅发送可见表面以便在USC 108进行纹理化和阴影化。在隐藏面消除之前执行纹理化和阴影化可能较不有效,因为在对对象进行纹理化和阴影化时所做的工作在该对象随后被场景中的其它对象所隐藏的情况下被浪费。
[0024]当可以在纹理化和阴影化开始之前对整个场景或部分场景完成隐藏面消除时,图1的系统在仅处理非透明基元时最为有效。非透明对象的基元ID由标签分类器106所收集,而使得当每个非透明基元已经被ISP 102所处理时,标签缓冲器存储每个样本位置处可见的基元的标识符。标签缓冲器随后可以被冲刷,将基元ID发送至USC108而使得相对应的所标识基元可以被纹理化和阴影化。标签分类器106被如此称谓是因为基元ID可以在他们从缓冲器冲刷时进行分组或分类,而使得在任何可能的情况下,USC 108都能够对来自单个基元的ID进行处理,或者将来自作为群组的具有相似纹理化和阴影化要求的基元的ID进行处理。对基元ID进行分类因此使得USC 108中的高速缓存性能有所提高。当场景仅由非透明基元组成时,标签缓冲器仅需要被冲刷一次。
[0025]图1的系统在一些情况下会遇到问题,诸如在场景包含透明或穿通基元时。
[0026]透明性(translucency)意味着光线能够通过对象。当渲染透明对象时,仅渲染具有最小深度值的基元是不够的,因为可能必须要通过那些基元看到后面的基元。所渲染图像中的像素的颜色可以通过将透明基元的颜色与一个或多个其它基元的颜色进行混合而形成。通常,所渲染图像通过将以具有最大深度值的基元开始并且以具有最小深度值的基元结束的多层透明对象进行混合而构建。并非所有渲染系统都能够对透明对象进行分类,从而经常需要软件应用(例如,游戏)来渲染预先排序为从后往前的顺序的基元。在透明性处理的一个示例中,透明基元在ISP 102中进行处理(例如为了确定它们是否被隐藏在任意样本位置的现有非透明对象之后),并且标签缓冲器在每个透明基元之后被冲刷而使得基元能够被纹理化和阴影化,并且与像素缓冲器中之前被纹理化和阴影化的基元进行混合。如果应用在透明基元之后发送了另外的非透明基元,则混合的结果可以被隐藏。
[0027]穿通是指其中可以使用纹理向本来非透明的基元增加孔洞的渲染技术。基元中的孔洞应当使得ISP 102对深度缓冲器104进行更新,但是图1的系统仅对纹理进行评估,并且因此确定孔洞在USC 108中位于何处。图1的系统因此必须采用一些附加步骤来渲染穿通对象。在穿通处理的示例中,到达ISP 102的穿通基元被采样,并且可以相对深度缓冲器104进行测试以确定隐藏在现有非透明对象之后的任意部分。穿通对象中并未被隐藏的任意部分被发送至标签分类器106,但是深度缓冲器104并不进行更新。标签缓冲器被立即冲刷,这可以涉及冲刷标签缓冲器的任意现有内容,随后将穿通基元发送至USC 108.USC 108至少执行所需的纹理化和阴影化操作以确定是否有基元的任何部分具有孔洞,并且将非透明部分通过被标记为“PT反馈”的路径返回至ISP 102,上述路径在图1中以虚线示出。ISP102执行另一深度测试,这是因为深度缓冲器104的状态可能在用来对穿通基元进行纹理化和阴影化的时间中发生变化,并且基元中保持可见的任意部分作为基元ID而存储在标签缓冲器中。当基元ID最终第二次被冲刷至USC 108时,执行其余的纹理化和阴影化,并且图像像素被存储在像素缓冲器110中。
[0028]如之前所描述的,针对透明或穿通基元冲刷基元标识符可能是低效的,因为一些被冲刷的基元标识符可能与随后被ISP 102还要处理的其它基元所隐藏。此外,无论透明基元或具有穿通纹理的基元何时被处理都冲刷基
当前第1页1 2 3 4 5 6 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1