目标独立光栅化的制作方法

文档序号:6434594阅读:189来源:国知局
专利名称:目标独立光栅化的制作方法
目标独立光栅化
背景技术
光栅化(rasterizing)是一种常常被描述成图形管线的过程,它把景象数据转换成再现图像,其中基于穿过图形管线的数据为图像中的每个像素(图片元素)分配颜色。光栅化过程可以每像素多次采样景象数据以改进分配给每个像素的颜色的准确性。例如,按四的采样速率,光栅化过程将会向每个像素内的四个子像素分配颜色。图形管线中的后续步骤使用分配给四个子像素的颜色来计算该像素的单个颜色。以大于每像素一个样本来采样帮助平滑显示器上非竖直和非水平线的外观;然而,这带来额外处理时间和资源使用的成本。常常把此平滑过程称作抗锯齿(antialiasing)。

发明内容
提供此发明内容以用简化的形式介绍概念的选择,这些概念下面在具体实施方式
中进一步描述。此发明内容并非意在识别要求保护主题的必要特征或关键特征,它也并非意在孤立地用作协助确定要求保护主题的范围。本发明的实施例总体上涉及目标独立光栅化。目标是为再现图像分派的存储器。 本发明的实施例允许独立于为再现图像分派的存储器来指定光栅化过程的采样速率。本发明的实施例还允许按并非对应于为再现目标分派的存储器的速率执行光栅化过程。例如, 本发明的实施例允许在图像中每像素存储一个颜色需要的存储器分派以及图像的光栅化期间采样速率为每像素4次,而非如在目标和采样速率彼此对应的情况下将会使用的图像中像素的4倍。


下面参照附图详细描述本发明的实施例,其中
图1是适合用于实施本发明实施例的示范性计算环境的方框图; 图2是适合用于在实施本发明实施例的过程中使用的示范性计算系统架构的方框图; 图3是按照本发明实施例、用于与目标独立光栅化一同使用的图形管线的图; 图4是按照本发明实施例、光栅化操作的图示;
图5是按照本发明实施例、通过着色(shading)操作产生的再现图像的图示; 图6是示出了按照本发明实施例的、再现抗锯齿二维图形的方法的流程图;以及图7是示出了按照本发明实施例的、指示图形处理单元执行目标独立光栅化的方法的流程图。
具体实施例方式在本文中通过具体性描述本发明实施例的主题以符合法定要求。然而,描述本身并非意在限制本专利的范围。相反,发明人构思了也可以通过其它方式实施要求保护的主题,以结合其它目前或未来技术,包括与本文件中描述的步骤类似的步骤的组合或不同步骤。此外,虽然在本文中会使用术语“步骤”和/或“块”意指采用的方法的不同元素,但除非和除了明确描述各步骤的次序时以外不应当把术语解释成暗示本文中公开的各种步骤之间或之中的任何特定次序。本发明的实施例总体上涉及目标独立光栅化。目标是为再现图像分派的存储器。 本发明的实施例允许独立于为再现图像分派的存储器指定光栅化过程的采样速率。本发明的实施例还允许按并非对应于为再现目标分派的存储器的速率执行光栅化过程。例如,本发明的实施例允许在图像中每像素存储一个颜色所需的存储器分派和在图像光栅化期间每像素4倍的采样速率,而非如在目标和采样速率彼此对应的情况下将会使用的图像中像素的4倍。把图形管线的元件配置成通过允许单独指定采样速率和目标存储器分派的应用程序接口(API)执行本发明的实施例。一旦指定采样速率和目标存储器,就把图形管线中的其它组件配置成使用该采样速率和存储器分派把景象数据处理成再现图像。后续更详细地描述这些配置细节。在一个方面中,提供了再现抗锯齿二维图形的方法。该方法包括通过生成从景象数据中的对象镶嵌的一套几何形状把景象数据转换成输入覆盖掩膜。该方法包括生成用以定义图形管线中再现目标存储值的第一指令。该方法还包括生成用以定义图形管线中光栅化器的采样速率的第二指令。独立于再现目标存储值定义采样速率。该方法还包括生成用以把像素着色器配置成通过图形管线处理输入覆盖掩膜的第三指令。方法还包括把输入覆盖掩膜传送给图形管线。在另一方面中,指示图形处理单元执行目标独立光栅化的方法。方法包括接收用以定义图形处理单元中运行的图形管线中的再现目标存储值的第一指令。方法还包括通过计算设备分派再现目标存储值对应的图形处理单元中的存储器的量。方法包括接收用以定义图形处理单元中的图形管线中的光栅化器的采样速率的第二指令。独立于再现目标存储值定义采样速率。方法还包括通过计算设备配置该光栅化器按该采样速率采样景象数据。在另一方面中,提供了计算机可读存储介质,存储用于控制图形处理单元(GPU)的应用程序接口(API)。API包括再现目标存储属性,其定义在GPU上分派给再现图像的存储器的量。API还包括定义光栅化器组件使用的采样速率的采样速率属性。简要描述了本发明实施例的概况,下面描述适合用于在实施本发明实施例的过程中使用的示范性操作环境。示范性操作环境
总体上参照各附图、以及特别是初始地参照图1,示出了用于实施本发明实施例的示范性操作环境并且将其整体标记为计算设备100。计算设备100只是合适计算环境的一个实例以及并非意在暗示对于本发明功能性或使用范围的任何限制。也不应当把计算设备100 解释成具有与示例组件的组合或任何一个有关的任何相关性或需求。可以在包括计算机或其它机器(如,个人数据助理或其它手持设备)执行的诸如程序组件的计算机可执行指令的、机器可用指令或计算机代码的总体环境中描述本发明。通常,包括例程、程序、对象、组件、数据结构等的程序组件是指执行特定任务、或者实施特定抽象数据类型的代码。可以在包括手持设备、消费类电子产品、通用计算机、专业计算设备等的各种系统配置中实践本发明的实施例。也可以在通过通信网络链接的远程处理设备执行任务的分布式计算环境中实践本发明的实施例。
继续参照图1,计算设备100包括总线110,其直接或间接耦合以下设备存储器 112、一个或更多个处理器114、一个或更多个呈现组件116、输入/输出(I/O)端口 118、I/ 0组件120、示例性电源122、以及图形处理单元(GPU) 124。总线110代表可以是一个或更多个总线(如,地址总线、数据总线、或者其组合)的内容。虽然为了清楚起见用线示出了图 1的各种块,但实际上,勾画各种组件并非如此清楚,比方说,线将会更准确地是灰色和模糊的。例如,可以认为诸如显示设备的呈现组件是I/O组件120。另外,CPU和GPU具有存储器。图1的图仅示例可以结合本发明的一个或更多个实施例使用的示范性计算设备。在诸如“工作站”、“服务器”、“膝上型电脑”、“手持设备”等的类别之间不做区分,因为所有这些设备都在图1的范围内构思并且被称为“计算机”或“计算设备”。计算设备100通常包括各种计算机存储介质。计算机存储介质可以包括随机存取存储器(RAM);只读存储器(ROM);电可擦除可编程只读存储器(EEPROM);闪存;压缩盘只读存储器(CDR0M)、数字多动能盘(DVD)或者其它光学或全息介质;磁盒、磁带、磁盘存储或其它磁存储设备。存储器112包括易失性和/或非易失性存储器形式的计算机存储介质。存储器 112可以是可移除的、不可移除的、或者其组合。示范性存储器包括固态存储器、硬盘驱动器、光盘驱动器等。计算设备100包括从诸如总线110、存储器112或I/O组件120的各种实体读取数据的一个或更多个处理器114。呈现组件116向用户或其它设备呈现数据指示。 示范性呈现组件116包括显示设备、扬声器、打印组件、振动组件等。I/O端口 118允许计算设备100在逻辑上耦合到I/O组件120的其它设备,这些设备中的一些可以是内置的。示例性I/O组件120包括麦克风、操纵杆、游戏手柄、碟形卫星天线、扫描仪、打印机、无线设备寸。可以在图像处理中使用计算设备100的组件。例如,可以使用计算设备100实施图形管线(与图3的图形管线300类似),其对原始图像进行处理和应用各种效果和调整。图形管线包括对数字图像执行的一系列操作。通常把这些管线设计成在运用可用硬件的情况下,允许数字图像的有效处理。为了实施图形管线,利用GPU IM上的一个或更多个过程着色器(procedural shader)0过程着色器是GPU IM中用于对图形数据执行专用操作的专用处理子单元。过程着色器的实例是通常在顶点上操作的顶点(vertex)着色器126。例如,顶点着色器126 可以向各顶点应用纹理坐标、颜色和位置的计算。顶点着色器126可以对图形管线的存储器中指定的顶点的流执行固定或者可编程函数计算。过程着色器的另一实例是像素着色器 128。例如,可以把顶点着色器126的输出递交给像素着色器128,像素着色器1 继而在每一个单独像素上操作。在过程着色器终结它的操作之后,可以把信息放置在GPU缓存器 130中。可以在附加显示设备上呈现信息或者向主机回送信息以便进一步操作。GPU缓存器130提供可以存储图像的GPU 124上的存储位置。随着针对图像执行各种图像处理操作,可以从GPU缓存器130访问、变换、以及随后在缓存器130上重新存储图像。GPU缓存器130允许处理的图像在通过图形管线进行变换的情况下保留在GPU 124 上。由于从GPU IM向存储器112传递图像是耗时的,优选地是保留图像在GPU缓存器130 上直到完成处理操作为止。针对像素着色器128,可以通过向像素着色器1 下载指令实现专用像素着色功能性。再者,可以通过针对诸如光栅化器的其它组件和像素着色器1 定制的指令集提供许多不同操作的功能性。例如,反色(negating)、重新映射、偏置、以及其它功能性对于许多图形应用是有用的。编程像素着色器128的能力对于图形操作是有益的,专用的指令集合可以通过促进开发和改进性能增值。通过执行这些指令,可以通过像素着色器1 执行各种功能,只要未超过像素着色器128的其它硬件限制和指令计数限制。像素着色器1 和其它组件可以通过一个或更多个应用程序接口接收指令。如先前所叙述的,本发明的实施例涉及用于目标独立光栅化的计算系统。参照图 2,图示了显示适合与目标独立光栅化一同使用的示范性计算系统架构200的方框图。图2 中示出的计算系统架构200仅是一个合适计算系统的实例并且不会限制本发明功能性或使用的范围。也不应当把计算系统架构200解释成具有与任何单个模块/组件或有模块/ 组件的组合关的任何相关性或需求。计算系统架构200包括计算设备206和显示器216。计算设备206包括图像模块 208、GPU驱动器210、API模块212和操作系统214。计算设备206可以是任何类型的计算设备,如,例如以上参照图1描述的计算设备100。作为示例而非限制,计算设备206可以是个人计算机、桌面计算机、膝上型计算机、手持设备、手机、消费电子设备等。图像模块208传输用于再现图像或景象的数据。图像模块208可以是要为其再现图像或景象的计算机程序。要再现的图像或场景可以包括但不限于视频游戏图像、视频剪辑、影片图像、以及静态屏幕图像。图像可以是三维或二维的。应用编程接口(API)模块 212是可以通过操作系统214提供的接口,用于支持计算机程序(如,图像模块208)做出的请求。Direct3D 和OpenGL 是支持图像模块208的请求的API的实例。设备206与显示设备216通信。图像模块208可以提供图形管线中一个或更多个组件的配置指令。也可以通过操作系统214提供指令。可以把指令递交给把GPU驱动器的功能展现给图像模块208的API 212。API 212可以基于接收的指令配置GPU驱动器中的功能。如后续更详细解释的,API 212具有用以设置GPU中处理的图像或景象的目标存储器的第一功能。API 212具有用以设置GPU中光栅化器组件的采样速率的单独功能。可以彼此独立地设置采样速率和目标存储器。图像模块208可以在再现单个景象或图像的情况下多次改变这些功能或者以每帧为基础提供这些功能的指令。参照图3,示出了示范性图形管线300。图形管线包括用于把数据转变成显示设备上可以显示的图像的各级。图形管线300包括输入汇编器305、顶点着色器310、几何着色器315、光栅化器320、像素着色器325、纹理采样器330、以及输出合并器335。可以把图形管线产生的图像写入到再现目标340。图3中描绘的图形管线是示范性的,可以添加额外组件或者移除组件。输入汇编器305从存储器读出顶点以及形成几何图形并创建管线工作项。顶点着色器310是用来通过在对象的顶点数据上执行数学运算而对3D环境中的对象添加特殊效果的图形处理功能。几何着色器315根据发送给图形管线起点的这些图元生成新图元,如, 点、线、以及三角形。光栅化器320把景象数据转换成光栅图像(例如,像素)以便向显示器或文件输出。光栅化器320可以每像素数个子像素地采样景象数据。像素着色器325用来操控像素颜色,通常用来对图像应用效果,例如;写实、凹凸映射、阴影、抗锯齿、以及爆炸效果。以每像素为基础计算效果是一种图形功能。顶点着色器310、几何着色器315、以及像素着色器325利用纹理采样器330从存储器获取数据。纹理采样器330可以执行纹理过滤操作、诸如夹取或包裹的纹理寻址模式,在读数上的不同格式之间转换以及基于细节层次 (LOD)值选择小而充实(MIP)层次。输出合并器335执行混合、深度和模版操作。把输出合并器335产生的图像写入到再现目标;340。现在转到图4,按照本发明的实施例,示出了光栅化操作的示例。只示出了景象 400的一部分以便示例。每个框代表像素。斑点代表子像素。每像素采样景象400四次,所以每像素四个斑点。初始地,在景象数据中识别几何形状,如,三角形430。为几何形状内的所有子像素分配同样的颜色。例如,为子像素414和416分配同样的颜色。可以基于景象数据的分析为子像素412和418分配不同的颜色。在光栅化过程中向每个子像素分配颜色。现在转到图5,按照本发明的实施例,示例了通过着色操作产生的再现图像500。 再现图像500包括用方形和斑点表示的像素,如,像素510。再现图像500具有每像素一个颜色。相应地,再现图像的存储只需要存储每像素一个颜色的足够存储器。需要的实际存储器将会根据图像的尺寸而变化。着色器在光栅化过程中把分配给子像素的颜色进行组合以向该像素分配单个颜色。例如,通过把子像素512、514、516、以及518中的颜色组合来计算分配给像素510的颜色。现在转到图6,按照本发明的实施例,描述了再现抗锯齿二维图形的方法600。抗锯齿图形是对角线显得笔直或平滑、而非阶梯状的再现图像。通过利用多个组件(如,光栅化器和像素着色器)的抗锯齿过程产生抗锯齿图像。二维图形的实例包括图表、电子表格、 任务、电子邮件、文本、以及文档。再现是根据数据结构生成图像的过程。实际上并不一定要显示再现图像以便完成再现过程。可以通过图像组件执行方法600。图像组件的实例包括文字处理应用、电子表格应用、呈现应用、个人联系应用、游戏、以及产生二维图像的其它应用。在步骤610,通过生成从景象数据中的对象镶嵌的一套几何形状把景象数据转换成输入覆盖掩膜。在一个实施例中,几何形状是三角形。三角形可以重叠或不重叠。景象数据内的凹陷形状会得到重叠几何形状。可以作为GPU上运行的图形管线中过程的一部分转换景象数据。在另一实施例中,通过CPU上运行的软件进行转换步骤。在步骤620,生成用以定义图形管线中再现目标存储值的第一指令。再现目标存储值定义分派给再现图像的存储器的量。再现图像可以是让图像通过图形管线的最终结果。 可以把第一指令传送给API,该API继而配置GPU上的过程。可以把第一指令传送给第一 API,该第一 API继而向第二 API传送指令。在步骤630,生成用以定义图形管线中光栅化器的采样速率的第二指令。独立于再现目标存储定义采样速率。因为单独定义这些项,所以不需要把他们的值绑定在一起。在一个实施例中,把存储器、或者再现目标存储值设置为Ix再现图像。例如,如果再现图像是 480个像素χ 480个像素,则分派的存储器可以足够存储230400个像素。由于独立定义采样速率,所以采样速率甚至可以是每像素四个子像素,其存储器分派针对480 χ 480再现图像上的230400个像素。在步骤640,生成用以把像素着色器配置成通过图形管线处理输入覆盖掩膜的第三指令。第三指令可以根据输入覆盖掩膜内的几何形状是否重叠或者不重叠而变化。在几何形状不重叠的场景中,把像素着色器配置成对输入覆盖掩膜中位设置的数量进行计数, 把结果归一化为实数,以及把该实数添加到再现目标的当前内容。另一方面,当几何形状之间存在重叠时,把像素着色器配置成使用逻辑进程把输入覆盖掩膜与再现目标的当前内容组合,以确定添加或者从再现目标中减掉哪个颜色。在一个实施例中,逻辑进程是位图异或 U0R)操作。在另一实施例中,逻辑过程是位图OR (或)操作。现在转到图7,按照本发明的实施例,描述了指示图形处理单元执行目标独立光栅化的方法700。可以通过应用程序接口执行方法700。可以执行方法700的应用程序接口的实例包括Direct3D 和OpenGL 。在步骤710,接收用以定义图形处理单元上运行的图形管线中的再现目标存储值的第一指令。可以从程序接收指令。在步骤720,分派再现目标存储值对应的图形处理单元中的存储器的量。可以通过图形处理单元的驱动器分派存储器。在步骤730,接收用以定义图形处理单元上图形管线中的光栅化器的采样速率的第二指令。独立于再现目标存储值定义采样速率。在步骤740,把光栅化器配置成按采样速率采样景象数据。可以通过图形处理单元中的驱动器配置光栅化器。如先前参照方法600 所述,采样速率和存储值可以彼此独立。本发明的实施例是作为示例性而非限制性而被描述的。将会理解某些特征和子组合是实用的以及可以在没有引用其它特征和子组合的情况下采用。这已经被权利要求所构思并且在权利要求的范围内。
权利要求
1.一个或更多个计算机存储介质,其上实施的计算机可执行指令用于执行再现抗锯齿二维图形的方法,该方法包括通过生成从景象数据中的对象镶嵌的一套几何形状把景象数据转换610成输入覆盖掩膜;生成620用以定义图形管线中再现目标存储值的第一指令;生成630用以定义图形管线中光栅化器的采样速率的第二指令,其中,独立于再现目标存储值定义采样速率;生成640用以把像素着色器配置成处理输入覆盖掩膜通过图形管线的第三指令;以及把输入覆盖掩膜传送650给图形管线。
2.如权利要求1所述的介质,其中,方法经一步包括把第一指令、第二指令、以及第三指令传送给配置图形处理单元中的功能的应用程序接口。
3.如权利要求1所述的介质,其中,把再现目标存储值定义成屏幕尺寸的一倍,以及其中,把采样速率设置为大于每像素1个子像素的值。
4.如权利要求1所述的介质,其中,当这套几何形状之间不存在重叠时,把像素着色器和阿尔法混合器配置成对输入覆盖掩膜中位设置的数量进行计数,把结果归一化为实数, 以及把实数添加到再现目标的当前内容。
5.如权利要求1所述的介质,其中,当这套几何形状之间存在重叠时,把像素着色器和阿尔法混合器配置成使用逻辑进程把输入覆盖掩膜与再现目标的当前内容组合以确定添加或者从再现目标中减掉哪个颜色。
6.一种指示图形处理单元执行目标独立光栅化的方法,方法包括接收710用以定义图形处理单元中运行的图形管线中的再现目标存储值的第一指令;通过计算设备分派720再现目标存储值对应的图形处理单元中的存储器的量;接收730用以定义图形处理单元中图形管线中光栅化器的采样速率的第二指令,其中,独立于再现目标存储值定义采样速率;以及通过计算设备配置740光栅化器以按采样速率采样景象数据。
7.如权利要求6所述的方法,其中,方法进一步包括把像素着色器和阿尔法混合器配置成使用逻辑进程把输入覆盖掩膜与再现目标的当前内容组合,以确定添加或者从再现目标中减掉哪个颜色。
8.如权利要求7所述的方法,其中,逻辑进程是位图异或(XOR)操作和位图OR操作之ο
9.如权利要求6所述的方法,其中,方法进一步包括把像素着色器和阿尔法混合器配置成对输入覆盖掩膜中位设置的数量进行计数,把结果归一化为实数,以及把实数添加到再现目标的当前内容。
10.如权利要求6所述的方法,其中,采样速率大于再现目标存储值。
11.如权利要求6所述的方法,其中,再现目标存储值等同于再现图像中每像素一个像素,以及采样速率被设置为每像素4个子像素。
12.—种计算机可读存储介质,存储用于控制图形处理单元(GPU)的应用程序接口 (API), API 包括定义在GPU上分派给再现图像340的存储器的量的再现目标存储属性;以及定义光栅化器组件320所使用的采样速率的采样速率属性。
13.如权利要求12所述的介质,其中,再现目标存储属性独立于采样速率。
14.如权利要求12所述的介质,其中,使用API配置用于再现二维图像的GPU。
15.如权利要求12所述的介质,其中,光栅化器组件在GPU上运行。
全文摘要
用于图像的目标独立光栅化的计算机存储介质、系统以及方法。目标是为图形管线内的再现图像分派的存储器。本发明的实施例允许独立于为再现图像分派的存储器指定光栅化过程的采样速率。本发明的实施例还允许按并非对应于为再现目标分派的存储器的速率执行光栅化过程。
文档编号G06T11/40GK102509326SQ20111029714
公开日2012年6月20日 申请日期2011年9月30日 优先权日2010年10月6日
发明者A.帕特尔, B.D.佩尔顿, C.N.博伊德, S.希尼茨 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1