使用图形管线对二维曲线的细化方法、系统和存储介质技术方案

技术编号:14504939 阅读:51 留言:0更新日期:2017-01-31 13:46
提供了用于使用运行在图形处理单元(GPU)上的图形管线来高效地细化二维(2D)曲线的方法、系统和计算机存储介质。中央处理单元(CPU)将具有一个或多个2D曲线的几何图形转换成具有至少一个贝塞尔扇形的中间细化,所述贝塞尔扇形具有扇形原点和四个控制点。将中间细化发送到图形管线上。图形管线中的外壳着色器被配置成通过基于包含贝塞尔扇形的四个控制点的定界框的宽度或高度的最大值来将贝塞尔扇形曲线再分为定义数目的三角形而近似该曲线。图形管线中的域着色器被配置成沿着贝塞尔扇形的曲线确定对于每个定义的三角形的顶点位置。

【技术实现步骤摘要】
【国外来华专利技术】
技术介绍
二维(2D)图形库的主要任务之一是取得场景数据,将其细化(tessellate)成诸如弧线、贝塞尔(Bezier)曲线和线段这样的高级图元(primitive),并将所述数据光栅化以用于在计算机显示器上输出或用于以位图文件格式存储。为了速度,图形库可以将呈现(render)的一些级(stage)卸载到图形处理单元(GPU)上。诸如弧线和贝塞尔曲线这样的几何图形典型地对卸载提出了特殊的挑战,因为GPU通常不能使用(consume)这样的几何图形或者只能以高的每像素成本来使用这些类型的几何图形。因此,在卸载之前,中央处理单元(CPU)必须首先将弧线和贝塞尔曲线转变成GPU可以处理的低级图元,比如三角形。这耗用了宝贵的CPU处理能力并且常常在呈现过程中导致瓶颈。
技术实现思路
本概要被提供来以简化的形式介绍概念的选择,这些概念还将在下面的详细说明中进行描述。本概要既不打算标识所要求保护的主题的关键特征或必要特征,也不打算在确定所要求保护的主题的范围时被用作为帮助。本专利技术的实施例涉及尤其(amongotherthings)用于使用运行在GPU上的图形管线来高效地细化2D曲线的系统、方法和计算机存储介质。CPU将具有一个或多个2D曲线的场景数据和/或对象转换成具有至少一个贝塞尔扇形的中间细化(tessellation)。中间细化被发送到图形管线(graphicspipeline)上。图形管线中的外壳着色器(hullshader)被配<br>置成通过基于包含贝塞尔扇形的控制点的定界框的宽度或高度的最大值来将贝塞尔扇形曲线再分(subdivide)为定义数目的三角形而近似该曲线。图形管线中的域着色器被配置成沿着贝塞尔扇形的曲线确定对于每个所定义的三角形的顶点位置。本专利技术的实施例可以与目标独立光栅化(TIR)相结合地使用。TIR使得能独立于为所呈现的图像分配的存储器来指定在图形管线中的光栅化级期间采用的像素采样的数目(称为“采样率”)。附图说明以下参考附图详细地描述了本专利技术,其中:图1是适合在实现本专利技术的实施例时使用的示范性计算环境的框图;图2是适合在实现本专利技术的实施例时使用的示范性计算系统架构的框图,该示范性计算系统架构用于定义针对二维曲线的细化方法学;图3是适合在实现本专利技术的实施例时使用的图形管线的图,该图形管线在将具有一个或多个三角形和一个或多个贝塞尔扇形的中间细化光栅化中使用;图4是根据本专利技术的实施例的贝塞尔扇形的图示;图5是根据本专利技术的实施例的中间细化的图示;图6是根据本专利技术的实施例的、在运行于图形处理单元上的图形管线中已被细化的中间细化的图示;图7是根据本专利技术的实施例的、包围贝塞尔扇形的四个控制点的定界框的图示;图8是根据本专利技术的实施例的、在运行于图形处理单元上的图形管线中已被细化的中间细化的图示;图9是根据本专利技术的实施例的、呈现抗锯齿(antialias)的二维曲线的示范性方法的流程图;以及图10是根据本专利技术的实施例的、指令图形处理单元来细化二维曲线的示范性方法的流程图。具体实施方式本专利技术的主题在这里用特异性来描述,以满足法定要求。然而,描述本身不打算限制本专利的范围。而是,本专利技术人预期所要求保护的主题也可以与其它当前的或将来的技术相结合地以其它方式来具体化,以便包括不同的步骤或类似于在本文档中描述的步骤的步骤组合。而且,虽然术语“步骤”和/或“方块”在这里可被使用来意指所采用的方法的不同单元,但这些术语不应当被解译为暗示在这里公开的各种步骤中间或之间的任何特定的次序,除非且除了是在个体步骤的次序被明确地描述时。本文描述的技术的各方面总体上针对尤其用于使用运行在GPU上的图形管线来高效地细化2D曲线的系统、方法和计算机存储介质。CPU将具有一个或多个2D曲线的场景数据对象转换成具有至少一个贝塞尔扇形的中间细化,所述贝塞尔扇形具有扇形原点和四个控制点。中间细化被发送到图形管线上。图形管线中的外壳着色器被配置成通过基于包含贝塞尔扇形的四个控制点的定界框的宽度或高度的最大值来将贝塞尔扇形曲线再分为定义数目的三角形而近似该曲线。图形管线中的域着色器被配置成沿着贝塞尔扇形的曲线确定对于每个所定义的三角形的顶点位置。本专利技术的实施例可以与目标独立光栅化(TIR)相结合地使用。TIR使得能独立于为所呈现的图像分配的存储器来指定在图形管线中的光栅化级期间采用的像素采样的数目(称为“采样率”)。因此,在一个实施例中,本专利技术针对一个或多个计算机存储介质,在所述计算机存储介质上体现有计算机可执行指令,所述计算机可执行指令在被执行时履行呈现抗锯齿的2D曲线的方法。所述方法包括将场景数据转换成中间细化,所述中间细化包括从场景数据中的对象细化的几何形状组。几何形状组包括至少一个具有四个控制点和扇形原点的贝塞尔扇形。生成第一指令,该第一指令用以将图形管线中的外壳着色器配置成尤其通过基于包含所述至少一个贝塞尔扇形的四个控制点的最小定界框的宽度或高度的最大值来将所述至少一个贝塞尔扇形的曲线再分成定义数目的三角形而近似该曲线。生成第二指令,该第二指令用以将图形管线中的域着色器配置成沿着所述至少一个贝塞尔扇形的曲线确定对于所述定义数目的三角形中每个三角形的顶点位置。中间细化被传达至图形管线。在另一实施例中,本专利技术针对一种在运行于GPU上的图形管线中将对象的中间细化光栅化的方法,其中,所述中间细化包括至少一个贝塞尔扇形,所述贝塞尔扇形具有四个控制点和扇形原点。所述方法包括:从计算设备的CPU接收中间细化,并接收第一指令,该第一指令用以将图形管线中的外壳着色器配置成尤其通过将所述至少一个贝塞尔扇形的曲线再分成定义数目的三角形而近似该曲线。基于第一指令来通过计算设备配置外壳着色器。接收第二指令,所述第二指令用于将图形管线中的域着色器配置成沿着所述至少一个贝塞尔扇形的曲线确定对于所述定义数目的三角形中每个三角形的顶点位置。基于第二指令来通过计算设备配置域着色器。在又一实施例中,本专利技术针对一种计算机存储介质,其存储用于控制GPU的应用程序接口(API)。所述API包括再分因子性质,所述再分因子性质定义了被外壳着色器组件使用来尤其通过基于最小定界框的宽度或高度的最大值来将至少一个贝塞尔扇形的曲线再分成定义数目的三角形而近似该曲线的参数,所述最小定界框包含定义了贝塞尔扇形的四个控制点。所述API还包括位置因子性质,所述位置因子性质定义了被域着色器组件使用来沿着所述至少一个贝塞尔扇形的曲线确定对于所述定义数目的三角形中本文档来自技高网...

【技术保护点】
一种或多种计算机存储介质,在所述计算机存储介质上体现有计算机可执行指令,所述计算机可执行指令在被执行时履行呈现抗锯齿的二维曲线的方法,所述方法包括:通过生成从场景数据中的对象细化的几何形状组而将场景数据转换成中间细化,所述几何形状组包括至少一个具有四个控制点和扇形原点的贝塞尔扇形;生成第一指令,该第一指令用以将图形管线中的外壳着色器配置成尤其通过以下方式来近似所述至少一个贝塞尔扇形的曲线,即:基于包含所述至少一个贝塞尔扇形的四个控制点的最小定界框的宽度或高度的最大值来将该曲线再分成定义数目的三角形;生成第二指令,该第二指令用以将图形管线中的域着色器配置成沿着所述至少一个贝塞尔扇形的曲线确定对于所述定义数目的三角形中每个三角形的顶点位置;以及将中间细化传达至图形管线。

【技术特征摘要】
【国外来华专利技术】2013.04.30 US 13/8734031.一种或多种计算机存储介质,在所述计算机存储介质上体现有计算机可执行指令,
所述计算机可执行指令在被执行时履行呈现抗锯齿的二维曲线的方法,所述方法包括:
通过生成从场景数据中的对象细化的几何形状组而将场景数据转换成中间细化,所述
几何形状组包括至少一个具有四个控制点和扇形原点的贝塞尔扇形;
生成第一指令,该第一指令用以将图形管线中的外壳着色器配置成尤其通过以下方式
来近似所述至少一个贝塞尔扇形的曲线,即:基于包含所述至少一个贝塞尔扇形的四个控
制点的最小定界框的宽度或高度的最大值来将该曲线再分成定义数目的三角形;
生成第二指令,该第二指令用以将图形管线中的域着色器配置成沿着所述至少一个贝
塞尔扇形的曲线确定对于所述定义数目的三角形中每个三角形的顶点位置;以及
将中间细化传达至图形管线。
2.根据权利要求1所述的介质,还包括:
生成第三指令以定义图形管线中的呈现目标存储值;以及
生成第四指令以定义图形管线中的光栅化器的采样率,所述采样率是独立于呈现目标
存储值而被定义的。
3.根据权利要求2所述的介质,还包括:将第一指令、第二指令、第三指令和第四指令传
达至应用编程接口,所述应用编程接口配置图形处理单元中的功能。
4.根据权利要求2所述的介质,其中,三角形的所述定义数目是基于查找表而被确定
的,所述查找表包括最大高度或宽度值的一个或多个范围和对应的再分因子。
5.根据权利要求2所述的介质,其中,对于所述定义数目的三角形中的每个三角形的顶
点位置是部分地使用伯恩斯坦多项式而被确定的。
6.一种在运行于图形处理单元(GPU)上的图形管线中将对象的中间细化光栅化的方
法,所述中间细化包括至少一个贝塞尔扇形,所述贝塞尔扇形具有四个控制点和扇形原点,
所述方法包括:
从计算设备的中央处理单元(CPU)接收中间细化;
接收第一指令,该第一指令用以将图形管线中的外壳着色器配置成尤其通过将所述至
少一个贝塞尔扇形的曲线再分成定义数目的三角形而近似该曲线;
基于第一指令来通过计算设备配置外壳着色器;
接收第二指令,该第二指令用于将图形管线中的域着色器配置成沿着所述至少一个贝
塞尔扇形的曲线确定对于所述定义数目的三角形中每个三角形的顶点位置;以及
基于第二指令来通过计算设备配置域着色器。
7.根据权利要求6所述的方法,还包括:
所述外壳着色器相对于输入覆盖掩模的至少一个贝塞尔扇形执行第一指令;以及
所述域着色器相对于输入覆盖掩模的至少一个贝塞尔扇形执行第二指令。
8.根据权利要求7所述的方法,其中,外壳着色器相对于中间细化...

【专利技术属性】
技术研发人员:AJR霍兹顿BD佩尔顿
申请(专利权)人:微软技术许可有限责任公司
类型:发明
国别省市:美国;US

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

1