当前位置: 首页 > 专利查询>辉达公司专利>正文

用于将经修改的覆盖数据输入像素着色器的系统和方法技术方案

技术编号:10068790 阅读:165 留言:0更新日期:2014-05-23 11:47
提供用于将经修改的覆盖数据输入像素着色器的系统、方法和计算机程序产品。在使用中,将由深度/模板测试所修改的覆盖数据输入像素着色器。此外,利用经修改的覆盖数据在像素着色器处实施一个或多个动作。

【技术实现步骤摘要】
【专利摘要】提供用于将经修改的覆盖数据输入像素着色器的系统、方法和计算机程序产品。在使用中,将由深度/模板测试所修改的覆盖数据输入像素着色器。此外,利用经修改的覆盖数据在像素着色器处实施一个或多个动作。【专利说明】
本专利技术涉及计算机图形,并且更具体地涉及实施图形渲染。
技术介绍
像素着色器通常在图形渲染期间使用。例如,像素着色器可以在渲染过程期间在逐像素的基础上计算效果。在另一个示例中,可以在像素内的多个位置(例如子样本等)处计算覆盖,其中这类位置可以之后被转发到Z/模板(Z/Stencil)测试以确定将写哪些样本。此外,之后可以将覆盖发送到一个或多个像素着色器。然而,当前用于将数据传达到像素着色器的技术一直与各种限制相关联。例如,当前的像素着色器不直接接收深度/模板测试信息。结果,由像素着色器所实施的某些图形处理任务可能不被优化。因此存在对于解决与现有技术相关联的这些和/或其他问题的需要。
技术实现思路
提供用于将经修改的覆盖数据输入像素着色器的系统、方法和计算机程序产品。在使用中,将由深度/模板测试所修改的覆盖数据输入像素着色器。此外,利用经修改的覆盖数据在像素着色器处实施一个或多个动作。【专利附图】【附图说明】图1示出了根据一个实施例的、用于将经修改的覆盖数据输入像素着色器的方法。图2示出了根据另一个实施例的示例性渲染管线。图3示出了在其中可以实现各种先前实施例的各种架构和/或功能性的示例性系统。【具体实施方式】图1示出根据一个实施例的、用于将经修改的覆盖数据输入像素着色器的方法100。如在操作102中所示的,将由深度/模板测试所修改的覆盖数据输入像素着色器。在一个实施例中,可以由深度/模板测试对未经修改的覆盖数据进行修改以创建由深度/模板测试所修改的覆盖数据。在另一个实施例中,未经修改的覆盖数据可以代表光栅覆盖数据。例如,未经修改的覆盖数据可以包括关于在经多重采样的图案内的哪些子样本由所生成的基元所覆盖的指示。在又一个实施例中,未经修改的覆盖数据可以与将被显示的一个或多个像素相关联。此外,在一个实施例中,未经修改的覆盖数据可以利用覆盖位掩码来代表。例如,位掩码可以指示在经多重采样的图案内的哪些子样本由输入基元所覆盖。例如,由基元所覆盖的样本可以在位掩码中利用I加以注释,而未被基元所覆盖的样本可以在位掩码中利用O加以注释。在另一个实施例中,可以在由深度/模板测试修改覆盖数据之前由光栅化器创建未经修改的覆盖数据。例如,光栅化器可以接收输入几何体并且可以在这类几何体上实施光栅化以创建覆盖数据。在另一个示例中,光栅化器可以包括在光栅化模块内。进一步地,在一个实施例中,可以将未经修改的覆盖数据从光栅化器输入深度/模板测试(例如Z/模板测试等)。例如,光栅化器可以将未经修改的覆盖数据提供到深度/模板测试模块。在另一个实施例中,深度/模板测试可以包括对未经修改的覆盖数据实施的深度测试和模板测试二者。例如,深度/模板测试可以包括可将用于与经光栅化的输入几何体相关联的像素的深度值和深度缓冲区中的深度值作比较的深度测试。在又一个实施例中,深度/模板测试可以包括可将深度缓冲区中的深度值与指定的最小和最大深度值作比较的深度测试。还进一步地,在另一个示例中,深度/模板测试可以包括可将与经光栅化的输入几何体相关联的参考值与模板缓冲区中的值作比较的模板测试。在另一个实施例中,可以基于深度/模板测试对未经修改的覆盖数据进行修改。例如,未经修改的覆盖数据可以包括覆盖位掩码,并且覆盖位掩码中的一个或多个位可以作为深度/模板测试的结果而被更改。在另一个示例中,深度/模板测试可以通过关闭覆盖位掩码内用于在经多重采样的图案内的、使深度/模板测试失败的子样本的位来修改覆盖位掩码。另外,在一个实施例中,可以在管线内由深度/模板测试对未经修改的覆盖数据进行修改。在另一个实施例中,可以利用多路复用器将经修改的覆盖数据输入像素着色器,其中多路复用器可以用来在经修改的覆盖数据和未经修改的覆盖数据之间进行选择。在又一个实施例中,像素着色器可以包括像素着色器模块。另外,如在操作104中所示的,利用经修改的覆盖数据在像素着色器处实施一个或多个动作。在一个实施例中,像素着色器可以在像素内的多个位置处实施着色操作。在另一个实施例中,像素着色器可以在由经修改的覆盖数据所指定的位置处实施着色操作。例如,像素着色器可以在经多重采样的图案内尚未使深度/模板测试失败的位置(例如,未被确定由深度/模板测试遮掩/覆盖的位置等)处实施着色运算。此外,在一个实施例中,像素着色器可以将经修改的覆盖数据存储到存储器。例如,像素着色器可以将经修改的覆盖数据写到存储器用于稍后通过一个或多个进程(例如,顺序无关透明度(OIT)处理、混合渲染、反锯齿等)进行处理。在另一个实施例中,像素着色器可以接收由深度/模板测试所修改的覆盖数据以及未经修改的覆盖数据二者。在又一个实施例中,像素着色器可以在已被接收的未经修改的覆盖数据和经修改的覆盖数据之间进行选择。以此方式,可以将已经由深度/模板测试所修改的覆盖数据读入像素着色器,并且像素着色器可以之后具有基于经修改的覆盖来改变其行为的机会。此外,覆盖数据可以指示在经多重采样的图案内的哪些子样本对于显示器的每个像素是不可见的,并且该信息可以用来为每个像素计算特有属性,同时以更高效和直接的方式来解释在重叠几何体之间的遮蔽而非必须求助于附加的渲染通道。现在将关于各可选架构和特征来阐述更多示例性的信息,根据用户的期望可以采用所述架构和特征来实现或不实现前述的框架。应该强烈注意下面的信息出于示例性的目的而阐述并且其不应该被认为是以任何方式进行限制。下面特征中的任何一个可以可选地合并,排斥或无需排斥所述的其他特征。图2示出根据另一个实施例的示例性渲染管线200。作为选项,渲染管线200可以在图1的功能性的上下文中实行。然而当然,渲染管线200可以在任何期望的环境中实现。还应该注意前述定义可以在本描述期间应用。如所示的,渲染管线200包括接收输入几何体204并且输出二维(2D)光栅覆盖数据206的光栅化模块202。在一个实施例中,输入几何体204可以包括一个或多个形状。例如,输入几何体204可以包括以矢量图形格式所描述的图像或图像的一部分。在另一个实施例中,渲染管线200可以包括Z前(early-Z)管线(例如,以Z前模式运行的管线,其中在二维(2D)光栅覆盖数据206被发送到像素着色器模块210之前,由深度/模板测试模块208对这类二维(2D)光栅覆盖数据206实施深度/模板测试)。此外,在一个实施例中,光栅化模块202可以利用输入几何体204实施一个或多个光栅化操作。在一个实施例中,光栅化模块202可以将输入几何体204转化为光栅图像(例如一个或多个像素等)用于输出在显示器上。在另一个实施例中,光栅化模块202可以确定与输入几何体相关联的片段覆盖。例如,光栅化模块202可以通过确定在光栅图像的经多重采样的图案内的哪些子样本由所生成的基元所覆盖来实施经多重采样的光栅化。在另一个示例中,二维(2D)光栅覆盖数据206可以包括对由光栅化模块所确定的、将由输入基元覆盖的子样本的指示。进一步地,在一个实施例中,二维(2D)光栅覆盖数据206可以包本文档来自技高网...
<a href="http://www.xjishu.com/zhuanli/55/201310485125.html" title="用于将经修改的覆盖数据输入像素着色器的系统和方法原文来自X技术">用于将经修改的覆盖数据输入像素着色器的系统和方法</a>

【技术保护点】
一种方法,包括:将由深度/模板测试所修改的覆盖数据输入像素着色器;以及利用经修改的覆盖数据在所述像素着色器处实施一个或多个动作。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:尤里·乌拉尔斯基亨利·帕尔德·莫尔顿
申请(专利权)人:辉达公司
类型:发明
国别省市:美国;US

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

1