单通道边框计算的制作方法

文档序号:6348251阅读:148来源:国知局
专利名称:单通道边框计算的制作方法
单通道边框计算背景在3维渲染中,组成多边形模型的几何图元(例如三角形)可以被投影到2维表面上(例如显示屏区域)。投影的几何图元可以被栅格化和渲染为完成的图像。屏幕扩展报告(SER)是使用投影三角形的2维坐标以为这些三角形的渲染区域计算2维边框的图形功能。计算得到的三角形的边框可以进一步用于三角形碰撞检测、三角形遮挡检测、以及去除冗余的三角形渲染。SER图形功能可以由专门的图形处理单元(GPU)实现,该专门的图形处理单元包括诸如各游戏系统中包括的GPU等的专用SER硬件。尽管一般地使用GPU上的专用SER硬件来实现SER,但是也可能通过在图形渲染期间执行多个处理通道或者将计算转移到中央处理单元(CPU),来在没有专用SER硬件的情况下实现SER功能。例如,在一些多通道基于区块(tile-based)的渲染过程中,2维渲染目标(例如显示屏区域)可以首先被再划分为一组矩形区块。在矩形上的初始处理通道中,GPU可以通过为每个矩形区块中的三角形计算边框来执行SER功能。在第二处理通道中,GPU可以执行基于区块的渲染。基于区块的渲染过程可以使用屏幕扩展信息,即在初始处理通道期间计算边框以确定实际为每个矩形区块做出贡献的三角形(例如每个矩形区块表面上可见的三角形)。因此,基于区块的渲染可以在过程期间仅渲染有贡献的三角形,而不是每个矩形区块所包含的所有三角形。概述提供本概述以便用一种简单的形式介绍将在以下详细描述中进一步描述的一些概念。本概述并不旨在确定所要求保护的主题的关键或必要特征,也不旨在用于限制所要求保护的主题的范围。此处描述的是用于实现使用通用图形处理单元(GPU)来执行2维边框计算的单通道图形渲染过程的实施例。如此处所使用的,通用GPU指不包括专用屏幕扩展报告(SER) 硬件的GPU。依照各实施例执行的2维边框计算等效于由在包括专用SER硬件的GPU上执行的SER功能所执行的计算。作为单通道图形渲染过程一部分的SER等效的2维边框计算的实现,相比于独立的处理通道,可以通过降低处理开销来提高处理效率。或者说,作为单通道图形渲染过程一部分的SER等效的2维边框计算的实现可以降低或去除在由通用GPU处理图形期间给中央处理单元(CPU)施加SER计算的负担的需要。在一个实施例中,单通道边框计算包括渲染第一目标至2维屏幕空间,该第一目标包括至少六个像素。计算进一步包括基于应用程序指定的变换来产生一组几何图元中变换的顶点。计算还包括为一组几何图元中每个变换的顶点生成六个新的点。计算另外包括通过渲染为每个像素生成的至少六个新的点至每个对应的像素,来产生每个像素的初始第三坐标值。计算进一步包括通过栅格化用每个对应像素渲染至每个像素的至少六个新的点,来产生每个像素的栅格化后(post-rasterization)的值。最后,计算包括基于产生的第三坐标值来为几何图元集合计算边框信息。
通过结合附图时给出的以下详细描述,其它实施例将变得更加显而易见。附图简述详细描述包括对附图的参考。在附图中,标号最左边的数字标识了该标号最先出现的附图。在不同附图中使用相同的标号指示相似或相同的项目。

图1是示出依照各实施例,用于执行使用通用图形处理单元(GPU)来提供屏幕扩展报告(SER)等效的2维边框计算功能的单通道图形渲染过程的计算环境的简化框图。图2是示出依照各实施例,包括通用图形处理单元(GPU)并且提供屏幕扩展报告 (SER)等效的2维边框计算功能的一个示例性计算机设备的选定组件的简化框图。图3是示出依照各实施例,用于执行使用通用图形处理单元(GPU)来提供屏幕扩展报告(SER)等效的2维边框计算功能的单通道图形渲染过程的示例性过程的流程图。图4示出依照各实施例,用于实现用于执行使用通用图形处理单元(GPU)来提供屏幕扩展报告(SER)等效的2维边框计算功能的单通道图形渲染过程的技术和机制的典型计算系统。详细描述本公开被定向至使用通用图形处理单元(GPU)来执行屏幕扩展报告(SER)等效的 2维边框计算功能的单通道图形渲染实现。屏幕扩展报告(SER)是使用投影三角形的2维坐标以计算这些三角形的渲染区域的2维边框的图形功能。计算得到的三角形的边框可以进一步用于三角形碰撞检测、三角形遮挡检测、以及去除冗余的三角形渲染。在一些计算系统中,可以在图形渲染期间由装备有专用SER硬件的GPU来执行SER功能。在GPU缺少专用SER硬件的其它计算系统中,每个计算系统的GPU可以通过多通道处理来执行SER功能(例如在实际渲染图形图像之前处理将要渲染的图形图像以得到 SER信息)。在另一个计算系统中,每个计算系统中SER功能的实现可以从缺少专用SER硬件的GPU中转移到计算系统的中央处理单元(CPU)。但是,为了执行SER功能的多通道处理和转移到CPU的负担都可以导致另外的处理负担和/或处理低效率。此处的各实施例允许SER等效的2维边框计算功能的实现作为通用GPU的单通道图形渲染过程的一部分。如此处所使用,通用GPU指不包括专用SER硬件的GPU。使用GPU 在单通道渲染过程中执行SER功能的能力可以降低或消除在由通用GPU图形处理期间给中央处理单元(CPU)施加SER计算的负担的需要。此外,可以去除在实际图形渲染通道之前由通用GPU执行专用SER处理通道的需要。这一处理的去除可以提高处理效率、减少处理时间和/或在各个的处理器上的负担。参考图1-4,以下描述了依照各实施例使用通用GPU 来执行SER功能的单通道图形渲染实现的各示例。示例性方案图1示出依照各实施例,用于执行使用通用图形处理单元(GPU)来提供替代的屏幕扩展报告(SER)功能的单通道图形渲染过程的计算环境100。计算环境100可以包括多个图形处理组件,例如但不限于,顶点着色器102、栅格化器104、像素着色器106、几何着色器108、以及边框计算器110。图形处理组件可以以各种组合来从组成多边形模型的几何图元(例如三角形)中提取出SER信息,并且渲染该几何图元为在2维屏幕空间上显示的完成的图像。如以下参考图2进一步描述的,图形处理组件可以采用计算机可读指令、数据结构、程序模块和/或在通用GPU上执行的其它数据的形式。
6
在至少一个实施例中,顶点着色器102可以从软件应用程序处接收一组几何图元 (例如三角形112)。例如,但不作为限制,软件程序可以是需要渲染图形至显示器的任何程序、计算机可读指令或者数据结构。顶点着色器102可以使用GPU以将3维虚拟空间中每个几何图元112的每个顶点的3维位置变换为诸如屏幕空间114的屏幕空间的2维坐标。 在由顶点着色器102处理之后,栅格化器104可以使用GPU来用像素填充几何图元112。随后,像素着色器106可以使用GPU来为组成几何图元112的单独像素计算和提供颜色,以生成渲染目标,例如图像116。在一些实施例中,在由顶点着色器102处理之后,几何图元112可以在由栅格化器 104处理之前由几何着色器108进一步处理。在这些实施例中,几何着色器108可以从几何图元中添加或者删除顶点,以及向几何图元提供体积细节。如进一步所述,边框计算器110 可以杠杆调节几何着色器108以方便在图像渲染期间计算几何图元112的渲染区域的2维边框。在各实施例中,由{TQ,T1, ... Tn }表示的例如三角形112的一组几何图元可以包括顶点IVtl, V1, N2,... V3n,V3n+1, V3n+2, },其中每个V表示3维世界空间中的一个点的。顶点着色器102和像素着色器106可以使用GPU来执行用于渲染这些三角形112为一个或多个渲染目标的应用程序指定的变换和计算,包括渲染目标R0(图像116)。在各示例中,应用程序指定的变换和计算可以由游戏程序、图形编辑软件、视频编辑软件等的屏幕动画请求控制。如以下所述,三角形112的屏幕扩展信息还可以在各实施例中在同一渲染通道中计算。 在同一渲染通道中,边框计算器110可以激活顶点着色器102和像素着色器106 使用 GPU 以创建新的渲染目标 R1,其中 R1 = {(xQ,yQ),(X1J1),(x2,y2),(x3,y3)... (x5,y5)}。 新的渲染目标R1以包括其屏幕坐标即为2维空间中的坐标(XQ,yQ)... (x5,y5)的六个像素。 渲染目标R1可以被初始化为0.0。可以明白在其它实施例中,边框计算器110可以被配置为创建包括多于六个像素的新的渲染目标R115但是,如以下进一步所述,由于屏幕扩展信息包括六个不同的边界值(即xmin,,yfflin, yfflax, zfflin, zmax),其中每个边界值可以基于像素计算,因此边框计算器110 —般不使用多于六个的像素。在初始化之后,边框计算器110可以上传三角形112到GPU中以用于由顶点着色器102渲染。在各实施例中,顶点着色器102可以在渲染期间为三角形的所有顶点IVc^V1, V2, ...v3n v3n+1 v3n+2}执行应用程序指定的变换和计算。在这些实施例中,应用程序指定的变换可以是为渲染目标Rtl执行的相同的变换和计算。顶点着色器102的这一渲染可以为诸如屏幕空间102的屏幕空间产生变换的顶点118{V’ 0,r ”r 2,...V’ 3n V’ 3n+1 V’ 3n+2}。 例如,变换的顶点V’ i的屏幕坐标可以是(X’ i,y’ i,z’ i),x’i可以是顶点V’ ,的屏幕位置,并且ζ’ i可以是顶点V’ 1在
内的深度值。为了继续计算三角形112的屏幕扩展,边框计算器110可以调用几何着色器108 以为每个变换的三角形顶点118生成六个新的点。在至少一个实施例中,为{V’ μ V’” V’ 2,... V’ 3n V' 3 +1 V' 3n+2}中的每个变换的顶点V’ i (χ,ρ y’ ρ ζ’ i),几何着色器108可以生成六个新的点 V,i0 (X。,y。,X,i)、V,n (X1, yi; χ「χ,i)、V,i2 (χ2,y2,y,i)、V,i3 (χ3,y3, y「y,i)、V,i4(x4, Ji, z' i)、V,i5(x5, y5,1.0_z,》。随后,每个变换的三角形顶点110的每个新的点可以被几何着色器108以一对一的方式渲染为新的渲染目标礼中对应的像素(例如六个以前生成像素中的一个像素)。几何着色器108可以在边框计算器110的指导下完成这一操作。如在生成六个新的点中所使用的,X1和yi可以是大的常数值。例如,在至少一个实施例中,渲染目标Rtl的宽度测量可以当作X1的值,而渲染目标Rtl的高度测量可以当作yi 的值。每个渲染的像素的第三坐标值(即ζ-值或深度值)可以被存储在ζ-缓存中。在渲染之后,每个新的点可以被栅格化器104栅格化为渲染目标R1中对应的像素。随后,边框计算器110可以比较每个像素的当前(即栅格化后)第三坐标值与渲染目标R1冲像素以前的(即栅格化前)第三坐标值。在至少一个实施例中,边框计算器Iio可以访问ζ-缓存中的每个像素以前的第三坐标值。对于每个渲染的像素,如果像素当前的第三坐标值大于像素以前的第三坐标值, 则边框计算器110可以存储像素当前的第三坐标值到Z-缓存的对应阵列元素中。否则,边框计算器110可以忽略像素当前的第三坐标值,并且保留Z-缓存的对应阵列元素中以前的第三坐标值。采用这种方式,通过存储在ζ-缓存的阵列元素中的最终的第三坐标值,如由 r0, ri; r2,r3,r4,r5表示,边框计算器110可以为三角形112计算屏幕扩展信息120 :xmin = r0,xmax = Xfi^ymin = r2,ymax = y「r3,^in = r4 以及 ^iax = 1. 0_r5。在各实施例中,屏幕扩展信息120可以用于渲染目标Rtl(图像116)的后续渲染,和/或渲染目标Rtl(图像116)与另外的图像(例如用于碰撞检测、遮挡检测、以及去除冗余渲染)的渲染。因此,通过在渲染几何图元112 (例如三角形)为在2维屏幕空间上显示的完成的图像期间执行屏幕扩展计算,屏幕扩展信息120可以在一个渲染通道中用渲染的图像(例如渲染目标Rtl)生成。可以明白尽管在采用三角形形式的几何图元的上下文中描述了提供替代的屏幕扩展报告(SER)功能的单通道图形渲染过程的实现,但是这一实现可以使用采用其它多边形(例如矩形、正方形等)形式的几何图元进一步实现,只要这些多边形包括至少三个顶点。此外,尽管用一组三个几何图元(三角形)在图3中示出渲染过程的实现,应当明白提供SER功能的单通道图形渲染过程的实际实现可以在包括任意数量的几何图元的集合上用类似的方式实现。因此,此处描述的实施例不旨在作为限制。示例性组件图2是示出包括通用图形处理单元(GPU) 204的示例性计算机设备200的选定组件的框图。图1的计算环境100可以在计算设备200上实现。示例性计算设备200可以依照各实施例,使用通用GPU 204来执行提供屏幕扩展报告等效的边框计算功能的单通道图形渲染过程。计算设备200可以包括一个或多个中央处理单元202和存储器206。存储器 206可以包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等的信息的任何方法或技术实现的易失性和/或非易失性的存储器、可移动和/或不可移动的介质。这一存储器可以包括但不限于,随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、RAID存储系统、或能用于存储所需信息且能够由计算机系统访问的任何其它介质。图形处理单元(GPU) 204可以是用于处理在计算机设备200的显示界面(未示出) 上显示的2维和/或3维图形的专用图形渲染设备。在各实施例中,GPU 204可以是包括用于执行SER功能的专用硬件的GPU、或者不包括专用SER硬件的通用GPU中的一个。
存储器206可以存储程序指令。程序指令或模块可以包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件和数据结构。选定的程序指令可以包括顶点着色器模块102、栅格化器104、像素着色器106、几何着色器模块108、边框计算器110、边框计算器应用程序接口(API)模块208、用户界面模块210以及数据存储模块212。依次地,边框计算器110可以包括复制渲染组件214、顶点变换组件216、点生成组件218、点渲染组件 220、比较组件222以及边框计算组件224。顶点着色器102可以在GPU 204上执行。顶点着色器102可以将3维虚拟空间中几何图元的每个顶点的3维位置变换为屏幕空间的2维坐标。栅格化器104可以在GPU 204上执行。栅格化器104可以在几何图元已经由顶点着色器处理过之 后,用像素填充几何图元(例如三角形)。像素着色器模块像素着色器106可以在GPU 204上执行。像素着色器可以向组成几何图元(例如三角形)的个别像素计算和提供颜色,以生成诸如图像116(图1)的渲染的图像。几何着色器108可以在GPU 204上执行。几何着色器108可以为几何图元添加和删除顶点,并且向几何图元提供体积的细节。边框计算器模块110可以在GPU 204上执行。例如,边框计算器模块110的复制渲染组件214可以命令顶点着色器102渲染诸如目标R1的包括至少六个像素的目标。顶点变换组件216可以命令顶点着色器102为几何图元的顶点产生诸如变换的顶点118的变换的顶点。点生成组件218可以命令几何着色器108为诸如变换的顶点118的顶点生成点。点渲染组件220可以命令几何着色器108用由复制渲染组件214生成的像素来渲染由点生成组件218生成的点。点渲染组件220还可以将每个像素的初始(例如栅格化前)第三坐标值存储在存储器206中,诸如ζ-缓存中。同样地,点栅格化组件222可以命令几何着色器 108用由复制渲染组件214生成的像素来栅格化由点生成组件218生成的点。点栅格化组件222还可以将每个像素的栅格化后的第三坐标值存储在存储器206中,诸如ζ-缓存中。边框计算器模块110的比较模块2M可以比较每个像素栅格化前的第三坐标值与其栅格化后的第三坐标值,以确定两个值中较大的一个,并且保留或者存储该值于存储器 206中,诸如ζ-缓存中。计算组件2 可以允许通过存储在存储器206中的第三坐标值来计算2维边框信息。边框计算器应用程序接口(API)模块208可以被软件应用程序调用以激活边框计算器110。采用这种方式,软件应用程序可以在渲染几何图元到2维屏幕空间中的期间,使用边框计算器110来实现SER等效的边框计算功能。因此,几何图元的渲染区域的2维边框计算可以在通过几何图元渲染图像的相同通道中执行。在各实施例中,边框计算器API模块208可以使得软件应用程序能够杠杆调节边框计算器110以执行单通道图像渲染。单通道图像渲染被配置为使用通用GPU 204来计算 SER等效的边框信息。这一单通道图像渲染和SER信息计算可以取代多通道处理和/或将 SER计算转移到CPU 202。在GPU 204包括专用SER硬件的其它实施例中,边框计算器API 模块208可以使得软件应用程序能够选择性地执行至少某些SER信息计算而不使用专用 SER硬件,诸如在硬件故障的情况下。边框计算器API模块208还可以当作向软件应用程序提供一组几何图元的2维边框信息的界面。
用户界面模块210可以通过用户界面(未示出)与用户交互。用户界面可以包括诸如显示器等的数据输出设备,以及一个或多个数据输入设备。数据输入设备可以包括但不限于,小键盘、键盘、鼠标设备、触摸屏、话筒、语音识别包、以及其它合适设备或其它电子 /软件选择方法的一个或多个的组合。用户界面模块210可以被配置为使得用户能够激活或禁用边框计算器110。例如, 用户界面模块212可以使得用户能够选择性地禁用边框计算器110以便SER计算由通用 GPU 204或者由CPU 202在多个通道中执行。或者,用户界面模块210可以被配置为使显示器向用户输出边框计算器110的当前状态(例如活跃的、被禁用的、错误等)。数据存储模块212可以被配置为将数据存储在存储器206的一部分中(例如数据库)。在各实施例中,数据存储模块212可以被配置为存储在SER等效的边框计算期间由边框计算器110产生的SER等效的边框信息,以及由边框计算器110产生的任何中间数据。数据存储模块212还可以包括ζ-缓存。可以明白ζ-缓存一般被配置为存储生成的像素的深度(第三坐标值)。ζ-缓存通常被排列为每个元素对应一个像素的2维阵列(例如x-y), 阵列中的每个元素可以用像素的当前第三坐标值来连续地更新。示例件过稈图3示出依照各实施例,用于执行使用通用图形处理单元(GPU)来提供屏幕扩展报告(SER)等效的边框计算功能的单通道图形渲染过程的示例性过程300。图3中的示例性流程300被示出为逻辑流程图中的方框集合,这表示了能够用硬件、软件和两者组合实现的一系列操作。在软件的上下文中,方框表示在由一个或多个处理器执行时执行所述操作的计算机可执行指令。一般地,计算机可执行指令包括执行特定功能或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。所述操作的顺序不旨在被解释为限制,并且可以以任何顺序和/或并行地组合任何数量的所述方框以实现过程。为了论述的目的,参考图2的示例性计算设备200描述过程,尽管过程可以在其它系统体系结构中实现。在方框302处,顶点着色器102和像素着色器106可以使用图形处理单元(GPU)来执行用于渲染几何图元(例如三角形)为2维屏幕空间中的一个或多个渲染目标图像的应用程序指定的变换和计算,所述一个或多个渲染目标图像可以包括第一渲染目标Rtl(图1)。在方框304处,边框计算器110可以激活顶点着色器102和像素着色器106以使用 GPU来创建包括六个像素的第二渲染目标图像。第二渲染目标图像可以是渲染目标R1 (图 1)。在各实施例中,第二渲染目标图像可以包含其屏幕坐标即为2维空间中的坐标( , Y0)... (x5,y5)的六个像素。在这些实施例中,第二渲染目标可以被初始化为0.0。在方框306处,边框计算器110可以激活顶点着色器102以基于几何图元为2维屏幕空间产生变换的顶点。在各实施例中,顶点着色器102可以通过执行与在方框302处执行的相同的变换和计算来产生变换的顶点。在方框308处,边框计算器110可以使用几何着色器108来由每个几何图元(例如三角形)的每个变换的顶点生成六个新的点。在方框310处,边框计算器110可以使用几何着色器108来渲染每个变换的顶点的新的点为第二渲染目标图像中对应的像素(例如六个以前生成像素中的像素)。在各实施例中,可以采用一对一的方式来完成渲染每个变换的顶点的每个新的点为对应的像素。 换句话说,如图1中所示,对于每个变换的顶点,每个新的点被渲染为六个以前生成的像素中的一个唯一的像素。每个渲染的像素的第三坐标值(即Z-值或深度值)然后可以被存储在Z-缓存的阵列元素中。在方框312 处,边框计算器110可以激活栅格化器104栅格化用每个像素渲染为每个像素的新的点(来自所有变换的顶点)。可以明白栅格化可以造成每个像素第三坐标值的改变。在方框314处,边框计算器110可以将来自方框310处的像素栅格化前的第三坐标值以及来自方框312处的像素栅格化后的第三坐标值进行比较。在判定方框316处,边框计算器110可以确定像素栅格化后的第三坐标值是否大于栅格化前的第三坐标值。如果像素栅格化后的第三坐标值大于像素栅格化前的第三坐标值,(判定方框316处的“是”),则过程300可以进行到方框318处。在方框318处,边框计算器110可以将栅格化后的第三坐标值存储到存储像素栅格化前的第三坐标值的ζ-缓存的阵列元素中。换句话说,ζ-缓存中像素栅格化前的第三坐标值被像素栅格化后的值所取代。返回至方框316,如果边框计算器110确定像素栅格化后的第三坐标值不大于像素栅格化前的坐标值,(判定方框316处的“否”),则过程300可以进行到方框320处。在方框320处,边框计算器110可以忽略像素栅格化后的第三坐标值,并且保留像素的ζ-缓存阵列元素中栅格化前的第三坐标值。在判定方框322处,边框计算器110可以确定是否将为一个或更多另外的像素执行栅格化前和栅格化后的第三坐标值比较。换句话说,边框计算器110可以确定是否已经为至少六个像素中的全部实现了比较。如果边框计算器110确定可以为另外的像素执行比较,(判定方框322处的“是”),则过程300可以循环返回至方框314处。可以重复循环直至已经为至少的像素中的全部实现了栅格化前和栅格化后的第三坐标值比较为止。然而,如果边框计算器110确定已经为至少六个像素中的全部执行了栅格化前和栅格化后的第三坐标值比较(判定方框322处的“否”),则过程300可以进行到方框324 处。在方框324处,边框计算器110可以基于存储在z_缓存中的像素的第三坐标值来计算边框信息。如上所述,在第三坐标值可以由A,ri; r2, r3, r4,1~5表示的实施例中,边框计算器110可以计算几何图元的2维边框信息为xmin = r0, Xmax = X1T1, ymin = r2, ymax =
Υ _Γ3,Zmin — r4,和 Zmax —丄· 0_Γ5ο在方框326处,可以为使用提供计算的边框信息(例如用于碰撞检测、遮挡检测、 以及去除冗余渲染)。在各实施例中,计算的边框信息可以是显示的、向应用程序提供的、存储在数据存储中的、或者输入回用于渲染另外的图像的顶点着色器102、栅格化器104和/ 或像素着色器106中的至少一个。可以明白可以在与方框302相同的处理通道中实现方框304到324。因此,可以降低处理开销并且提高处理效率。示例性计算环境图4示出用于实现用于执行使用通用图形处理单元(GPU)来提供屏幕扩展报告 (SER)等效的边框计算功能的单通道图形渲染过程的技术和机制的典型计算系统400。如图2中所述的示例性计算设备200可以包括计算系统400的一个或多个组件。但是,可以容易地明白本技术和机制可以用其它计算设备、系统和环境实现。图4中所示的计算系统 400仅是计算设备的一个示例,并且不旨在暗示对计算机和网络体系结构的使用或功能的范围的任何限制。计算系统400也不应被解释为具有与在示例计算设备中所示的组件的任何一个或组合有关的任何依赖或需求。 在非常基本的配置中,计算系统400 —般包括至少一个处理单元402、图形处理单元(GPU) 404以及系统存储器406。取决于计算设备的确切配置和类型,系统存储器406可以是易失性的(诸如RAM)、非易失性的(诸如ROM、闪存等)、或者两者的某些组合。系统存储器406 —般包括操作系统408、一个或多个程序模块410、并且可以包括程序数据412。 操作系统408包括基于组件的框架414,该基于组件的框架414可以支持组件(包括属性和事件)、对象、继承、多态、反射,并且提供基于面向对象的组件的应用程序编程接口(API), 例如但不限于,由华盛顿州雷德蒙德市的微软公司制作的.NET 框架的API设备。设备400 具有由虚线416划分的非常基本的配置。此外,终端可以有更少的组件,但是将与具有这一基本配置的计算设备交互。计算系统400可以有另外的特征或功能。例如,计算系统400还可以包括另外的数据存储设备(可移动和/或不可移动的),例如磁盘、光盘或磁带等。这一另外的存储在图 4中由可移动存储418和不可移动存储420示出。计算机存储介质可以包括以用于存储例如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。系统存储器406、可移动存储418和不可移动存储 420都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、R0M、EEPR0M、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光学存储、磁带盒、磁带、磁盘存储或其它磁存储设备、或能用于存储所需信息且能够由计算设备400访问的任何其它介质。任何这样的计算机存储介质都可以是设备400的一部分。计算设备400还可以具有输入设备 422,诸如键盘、鼠标、笔、语音输入设备、触摸输入设备等。还可以包括输出设备424,诸如显示器、扬声器、打印机等。这些设备在本领域中公知并且无需在此处详细讨论。 计算系统400还可以包含允许该设备与其它计算设备428诸如通过网络通信的通信连接426。这些网络可以包括有线网络和无线网络。通信连接426是通信介质的若干示例。通信介质可以一般地由计算机可读指令、数据结构、程序模块等包含。可以明白所示计算系统400仅是合适设备的一个示例,并且不旨在暗示对所述各实施例的使用或功能范围的任何限制。适合于各实施例使用的其它公知的计算设备、系统、 环境和/或配置包括但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、游戏控制台、可编程消费者电子产品、网络计算机、 小型计算机、大型计算机、包括任何以上系统或设备的分布式计算环境等。作为通用GPU上单通道图形渲染过程一部分的SER等效的边框计算的实现,相比于独立的处理通道,可以通过降低处理开销来提高处理效率。或者说,作为单通道图形渲染过程一部分的SER等效的边框计算的实现可以降低或去除在由通用GPU处理图形期间给中央处理单元(CPU)施加SER计算的负担的需要。因此,依照本公开的各实施例可以提高通用GPU上图像处理和渲染的效率。Mrk最后,尽管用结构特征和/或方法动作专用的语言描述了各实施例,但是可以理解,所附权利要求书中定义的主题不必限于所述具体特征或动作。相反,所述具体特征和动作是作为实现所要求保护的主题的示例形式而公开的。
权利要求
1.一种系统,包括多个渲染组件,所述多个渲染组件基于一组几何图元(11 来渲染一个或多个目标至 2维屏幕空间(114),所述多个渲染组件包括顶点着色器(102)、栅格化器(104)、几何着色器(108)以及像素着色器(106),所述一个或多个目标包括第一目标(116);复制渲染组件014),所述复制渲染组件(214)命令顶点着色器(10 渲染第二目标至 2维屏幕空间(114),所述第二目标包括至少六个像素;顶点变换组件016),所述顶点变换组件(216)命令顶点着色器(10 为该组几何图元 (112)产生变换的顶点(118)点生成组件018),所述点生成组件(218)命令几何着色器(108)为每个变换的顶点 (118)生成至少六个新的点;点渲染组件020),所述点渲染组件(220)命令几何着色器渲染为每个变换的顶点 (118)生成的至少六个新的点为该至少六个像素中对应的像素,所述每个渲染为对应的像素产生对应像素的初始第三坐标值;点栅格化组件022),所述点栅格化组件(22 命令栅格化器(104)栅格化用每个对应像素渲染为每个对应像素的至少六个新的点,所述每个栅格化为对应的像素产生对应像素栅格化后的第三坐标值;比较组件0 ),所述比较组件(224)存储每个像素的初始第三坐标值和栅格化后的第三坐标值中较大的值;以及计算组件026),所述计算组件(226)基于至少六个像素的存储的较大值来为该组几何图元(112)计算边框信息。
2.如权利要求1所述的系统,其特征在于,还包括接口组件以向应用程序提供计算的边框信息,以用于几何图元碰撞检测、几何图元遮挡检测、或者去除冗余渲染中的至少一个。
3.如权利要求1所述的系统,其特征在于,所述边框计算模块通过将较大的值分别表示为rO, rl,r2,r3,r4,r5,并且计算边框信息为Xmin = r0, Xmax = Xfr1, ymin = r2, ymax = yfiv zmin = r4,禾口 ^ax = 1. 0_r5,其中 X1 和 Y1 是常数值,来为几何图元集合计算边框信息。
4.如权利要求3所述的系统,其特征在于,所述X1是第一目标的宽度测量,并且所述yi 是第一目标的长度测量。
5.如权利要求1所述的系统,其特征在于,还包括允许在边框计算器中激活或禁用组件之一的应用程序编程接口(API),所述边框计算器包括复制渲染组件、顶点变换组件、点渲染组件、点栅格化组件、比较组件、以及边框计算组件。
6.如权利要求1所述的系统,其特征在于,所述几何图元集合包括多边形。
7.一种方法,包括渲染第一目标至2维屏幕空间(114),所述第一目标包括至少六个像素; 基于应用程序指定的变换产生一组几何图元(108)中变换的顶点(118); 为该组几何图元(108)中每个变换的顶点生成至少六个新的点; 通过渲染为每个像素生成的至少六个新的点为每个对应的像素来产生每个对应像素的初始第三坐标值;通过栅格化用每个对应像素渲染为每个像素的至少六个新的点来产生每个像素栅格化后的值;存储每个像素的初始第三坐标值和栅格化后的第三坐标值中较大的值;以及基于至少六个像素的存储的较大值来为该组几何图元(108)计算边框信息。
8.如权利要求7所述的方法,其特征在于,还包括在渲染第一目标之前,基于该组几何图元以及应用程序指定的变换来渲染一个或多个其它目标至2维屏幕空间,所述一个或多个其它目标包括第二目标,所述渲染一个或多个其它目标在与计算边框信息相同的处理通道中进行。
9.如权利要求7所述的方法,其特征在于,所述为该组几何图元计算边框信息包括将较大的值分别表示为r0,rl, r2, r3, r4, r5,并且计算边框信息为Xmin = r0, Xmax = Xfr1, ymin = r2, ymax = yfiv zmin = r4,禾口 zmax = 1. 0_r5,其中 X1 和 y! 是常数值。
10.如权利要求9所述的方法,其特征在于,所述X1是第二目标的宽度测量,并且所述 Y1是第二目标的长度测量。
11.一种存储在执行时导致一个或多个处理器执行动作的计算机可执行指令的计算机可读介质,所述动作包括渲染第一目标至2维屏幕空间(114),所述第一目标包括至少六个像素;基于应用程序指定的变换产生一组几何图元(108)中变换的顶点(118);为该组几何图元(108)中每个变换的顶点生成至少六个新的点;通过渲染为每个像素生成的至少六个新的点为每个对应的像素来产生每个像素的初始第三坐标值;将每个像素的初始第三坐标值存储在缓存中;通过栅格化用每个对应像素渲染为每个像素的至少六个新的点来产生每个像素栅格化后的值;如果一个或多个像素中每个像素栅格化后的第三坐标值大于其对应的初始第三坐标值,则替换存储在缓存中的一个或多个像素的初始第三坐标值;以及基于至少六个像素的存储在缓存中的第三坐标值来为该组几何图元(108)计算边框 fn息ο
12.如权利要求11所述的计算机可读介质,其特征在于,所述计算机可执行指令在执行时,进一步导致一个或多个处理器执行包括向应用程序提供计算的边框信息的动作。
13.如权利要求11所述的计算机可读介质,其特征在于,所述计算机可执行指令在执行时,进一步导致一个或多个处理器执行包括基于该组几何图元以及应用程序指定的变换来渲染第二目标至2维屏幕空间的动作,所述渲染第二目标在与计算边框信息相同的处理通道中进行。
14.如权利要求11所述的计算机可读介质,其特征在于,所述为几何图元集合计算边框信息包括将较大的值分别表示为r0,rl, r2, r3, r4, r5,并且计算边框信息为Xmin = r0, Xmax = Xfr1, ymin = r2, ymax = yfiv zmin = r4,禾口 zmax = 1. 0_r5,其中 X1 和 y! 是常数值。
15.如权利要求14所述的计算机可读介质,其特征在于,所述X1是第二目标的宽度测量,并且所述Y1是第二目标的长度测量。
全文摘要
公开了用于单通道边框计算的实施例。依照一个实施例,单通道边框计算包括渲染第一目标至2维屏幕空间,该第一目标包括至少六个像素。计算进一步包括基于应用程序指定的变换来产生一组几何图元中变换的顶点。计算还包括为一组几何图元中每个变换的顶点生成六个新的点。计算另外包括通过渲染为每个像素生成的至少六个新的点至对应的每个像素,来产生每个像素的初始第三坐标值。计算进一步包括通过栅格化用每个对应像素渲染至每个像素的至少六个新的点,来产生每个像素的栅格化后的值。最后,计算包括基于产生的第三坐标值来为几何图元集合计算边框信息。
文档编号G06T17/10GK102301401SQ201080006307
公开日2011年12月28日 申请日期2010年1月12日 优先权日2009年1月29日
发明者C·李, J·李, X·童 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1