用于抗锯齿的多边形栅格化的方法和系统的制作方法

文档序号:2568684阅读:155来源:国知局
专利名称:用于抗锯齿的多边形栅格化的方法和系统的制作方法
技术领域
本发明涉及图形处理领域,更具体地涉及一种用于抗锯齿的多边形栅格化的方法 和系统。
背景技术
图形的栅格化是一种将矢量图转换为位图的处理过程(即,对图形进行像素化的 处理过程)。对光栅图形显示子系统上的多边形进行扫描转换的任务是确定位于二维光栅 格上的多边形内的像素的坐标。完全照亮包括该多边形在内的多条线段上的像素将产生近 似于该多边形的阶梯型图案。现有的用于抗锯齿(即,抗阶梯型图案)的多边形栅格化的技术通常采用的是多 重采样的方法,即,对栅格化片断的多个点进行采样并计算各采样点的采样值,然后对多个 采样值进行滤波从而得到栅格化片断的颜色值。由以上所述可以看出,现有的用于抗锯齿的多边形栅格化的技术不仅耗时且计算 复杂,而且在以硬件形式实现时将需要昂贵的额外硬件的支持。如果光栅图形显示子系统 是一个性能足够高的子系统,则上述的用于抗锯齿的多边形栅格化的技术将可以很好地实 现多边形栅格化。然而,对于低成本的图形处理系统,则需要在光栅图形显示处理速度方面 做出妥协,以具有价格上的竞争力。在这种图形处理系统中,精简指令集计算机(RISC)中 央处理单元(CPU)的使用将使处理器性能方面所需要的妥协程度最小。但是,使用传统的 抗锯齿的多边形栅格化方法将使这些图形处理系统中的图形响应显得缓慢。所以,需要一 种比传统技术快且计算相对简单的用于抗锯齿的多边形栅格化的系统和方法。

发明内容
鉴于以上所述的一个或多个问题,本发明提供了一种用于抗锯齿的多边形栅格化 的方法和系统。根据本发明的一方面的用于抗锯齿的多边形栅格化的方法,包括利用多边形的 顶点坐标计算多边形的各条边的边方程;利用各条边的边方程判断用于对多边形进行栅格 化的栅格化片断是否与多边形相交;如果相交,则计算栅格化片断与多边形的相交面积; 以及根据相交面积,对多边形和多边形所在的显示背景进行混合。根据本发明的另一方面的用于抗锯齿的多边形栅格化的系统,包括方程计算单 元,用于利用多边形的顶点坐标计算多边形的各条边的边方程;相交判断单元,用于利用各 条边的边方程判断用于对多边形进行栅格化的栅格化片断是否与多边形相交;面积计算单 元,用于在栅格化片断与多边形相交的情况下,计算栅格化片断与多边形的相交面积;以及 图形混合单元,用于根据相交面积,对多边形和多边形所在的显示背景进行混合。采用本发明进行抗锯齿的多边形栅格化,不需要对栅格化片断进行多重采样,从 而有效的减少了所需的计算量。


从下面结合附图对本发明的具体实施方式
的描述中可以更好地理解本发明,其 中图1示出了根据本发明实施例的用于抗锯齿的多边形栅格化的系统的框图;图2示出了图1所示的系统中的遍历模块的详细框图;图3示出了根据本发明另一实施例的用于抗锯齿的多边形栅格化的系统的框图;图4示出了图1至图2所示用于抗锯齿的多边形栅格化的系统进行多边形栅格化 的主要过程的流程图;图5示出了不抗锯齿的多边形栅格化的方法/系统描画的多边形与抗锯齿的多边 形栅格化的方法/系统描画的多边形的对比示意图;图6示出了栅格化片断与多边形的一条边的各种关系的示意图;以及图7示出了栅格化片断与多边形相交且位于多边形的多条边外的情形的示意图。
具体实施例方式下面将详细描述本发明的各个方面的特征和示例性实施例。在下面的详细描述 中,提出了许多具体细节,以便提供对本发明的全面理解。但是,对于本领域技术人员来说 很明显的是,本发明可以在不需要这些具体细节中的一些细节的情况下实施。下面对实施 例的描述仅仅是为了通过示出本发明的示例来提供对本发明的更好的理解。本发明决不限 于下面所提出的任何具体配置和算法,而是在不脱离本发明的精神的前提下覆盖了元素、 部件和算法的任何修改、替换和改进。在附图和下面的描述中,没有示出公知的结构和技 术,以便避免对本发明造成不必要的模糊。图1示出了根据本发明实施例的用于抗锯齿的多边形栅格化的系统的框图。如图 1所示,该用于抗锯齿的多边形栅格化的系统100包括顶点信息存储器102,用于存储需要 进行栅格化的多边形的顶点坐标;变换和投射模块104,用于从顶点信息存储器中读取顶 点坐标,并将顶点坐标投射到装置坐标上;设置和遍历模块106,用于利用装置坐标找出位 于多边形内的像素(即,栅格化片断),并计算这些像素的显示参数(色彩/纹理);帧缓存 器108,用于对这些像素的显示参数进行缓存;以及图形显示模块110,用于显示栅格化处 理后的多边形。具体地,变换和投射模块104从顶点信息存储器102中读取需要进行栅格化的多 边形的顶点坐标,并将顶点坐标投射到装置坐标上;设置和遍历模块106利用装置坐标找 出位于多边形内的像素,并计算这些像素的显示参数(颜色或纹理),然后将这些参数写入 帧缓存器108。最后,图形显示模块110利用帧缓存器中的参数来显示栅格化后的多边形。图2示出了图1所示的系统中的设置和遍历模块的详细框图。如图2所示,设置和 遍历模块106中的设置单元1062获取多边形的各顶点的顶点坐标,并使用这些顶点坐标计 算多边形的各条边的边方程。设置单元1062将各条边的边方程的系数信息发送给设置和 遍历模块106中的遍历单元1064,以使遍历单元进行以下处理根据多边形的各条边的边 方程判断栅格化片断是否与多边形相交;如果相交,则计算栅格化片断与多边形的相交面 积;利用栅格化片断的顶点坐标对多边形的显示参数(例如,色彩/纹理参数)进行内插; 以及利用计算出的相交面积,对多边形的内插后的显示参数与显示背景的显示参数进行混合。图3示出了根据本发明另一实施例的用于抗锯齿的多边形栅格化的系统。如图 3所示,该用于抗锯齿的多边形栅格化的系统300包括方程计算单元302,用于利用多边 形的顶点坐标计算多边形的各条边的边方程;相交判断单元304,用于利用各条边的边方 程判断用于对多边形进行栅格化的栅格化片断是否与多边形相交;面积计算单元306,用 于在栅格化片断与多边形相交的情况下,计算栅格化片断与多边形的相交面积;以及图形 混合单元308,用于根据相交面积,对多边形和多边形所在的显示背景进行混合。其中,面 积计算单元306进一步包括第一计算单元3062和第二计算单元3064,并且第一计算单元 3062更进一步包括相交边获取单元3062-2、计算框设置单元3062-4以及片断面积计算单 元 3062-6。图4示出了图1至图3所示的用于抗锯齿的多边形栅格化的系统进行多边形栅 格化的主要过程的流程图。如图4所示,该过程包括S402,利用多边形的顶点坐标计算多 边形的各条边的边方程;S404,利用各条边的边方程判断用于对多边形进行栅格化的栅格 化片断是否与多边形相交;S406,如果相交,则计算栅格化片断与多边形的相交面积;以及 S408,根据相交面积,对多边形和多边形所在的显示背景进行混合。例如,步骤S402可以通过图1和图2中所示的设置和遍历模块106中的设置单元 1062完成,步骤S404 S408可以通过图1和图2中所示的设置和遍历模块106中的遍历 单元1064完成。或者,步骤S402 S408可以分别由图3中所示的方程计算单元302、相交 判断单元304、面积计算单元306以及图形混合单元308完成。在不抗锯齿的多边形栅格化方法中,仅判断栅格化片断的中心是否位于多边形 内。如果位于多边形内,则判断该栅格化片断为已经被描画。在抗锯齿的多边形栅格化方 法中,需要判断多边形的内部是否与栅格化片断内的部分相交。图5示出了不抗锯齿的多 边形栅格化的方法/系统描画的多边形与抗锯齿的多边形栅格化的方法/系统描画的多边 形的对比示意图。从图中可以看出,通过采用抗锯齿的多边形栅格化的技术可以使多边形 的边界与背景过渡的更加自然,从而可以避免产生锯齿状的边缘效果。下面具体描述步骤S404 S408的详细处理过程步骤S404,利用各条边的边方程判断用于对多边形进行栅格化的栅格化片断是否 与多边形相交。图6示出了栅格化片断与多边形的一条边的各种关系的示意图。假设η 边形(η 彡 3)的边方程为 ei(x,y) = ai*x+bi*y+ci,(i = 0,1,2,..., n-1),栅格化片断的中心坐标为(X,y),四个顶点为VO (χ-0. 5,y-0. 5)、Vl (x+0. 5,y-0. 5)、 V2 (x-0. 5,y+0. 5)、V3(x+0. 5,y+0. 5)。当满足以下条件时,判断栅格化片断与多边形相交 栅格化片断位于多边形的边界框(即,包括该多边形的最小矩形)内;对于多边形的任意一 条边,从栅格化片断的四个顶点中选择一个顶点Vt (xt,yt),该顶点对于这条边的边方程值 ei(xt,yt)为正。其中,Vt(xt,yt)的选择是通过这条边的边方程的系数(ai,bi)得到的。 当 ai > = 0 且 bi > = 0 时,Vt = V3 ;当 ai > = 0 且 bi < 0 时,Vt = Vl ;当 ai < 0 且 bi > =0时,Vt = V2 ;以及当ai < 0且bi < 0时,Vt = W。具体地判断过程实现如下for(i = 0 ;i < η ;i++ ={if (a[i]≥ 0)dx = 0· 5 ;else dx = -0. 5 ;
if (b[i] ^ 0) dy = 0. 5 ;else dy = _0· 5 ;xt = x+dx ;yt = y+dy ;if (a[i]*xt+b[i]*yt+c[i] ^ 0)return false ;}return true ;S406,如果相交,则计算栅格化片断与多边形的相交面积。该步骤包括5个子步 骤1)找出栅格化片断的一部分位于其外的多边形的边。此步骤例如可以通过相交边 获取单元3062-2完成。假设η 边形的边方程为 ei(x,y) = ai*x+bi*y+ci,(i = 0,1,2,.. .,n_l),栅格化 片断的中心的坐标为(X,y),四个顶点为 VO (χ-0· 5,y-0. 5)、Vl (x+0. 5,y-0. 5)、V2 (χ-0. 5, y+0. 5)、V3(x+0. 5,y+0. 5)。从栅格化片断的四个顶点中选择一个顶点Vt (xt, yt),如果该 顶点对于某一条边ei的边方程值不为正,则判断该栅格化片断具有这条边ei以外的区域。 具体地判断过程实现如下if (a[i]彡 0)dx = _0· 5 ;else dx = 0. 5 ;if (b[i] ^ 0) dy = -0. 5 ;else dy = 0. 5 ;xt = x+dx ;yt = y+dy ;if (a[i]*xt+b[i]*yt+c[i] ^ 0) return true ;else return false ;2)设置栅格化片断在步骤1)中得出的边的外部区域的计算框。此步骤例如可以 通过计算框设置单元3062-4完成。假设栅格化片断具有其外部区域的边为ei (x,y),并且e[i]的两个顶点的χ坐标 为 xmin[i]和 xmax[i] (xmin[i] < xmax[i]=。计算框的四个顶点为(xs,ys)、(xs, ye), (Xe,yS)、(Xe,ye)。其中,如果xmin[i]和xmax[i]不位于栅格化片断的内部,则计算框的 位置就是栅格化片断所在的位置;如果xmin[i]或者xmax[i]位于栅格化片断的内部,则相 应的xs,xe需要修正为xmin[i]和xmax [i],具体的计算过程如下if (xt == x+0. 5){if (xt > xmax [i]) xs = xmax [i] ;else xs = xt ;if (χ-0. 5 < xmin [i]) xe = xmin [i] ;else xe = x_0. 5 ;}else{//xt = = x-0. 5if (xt < xmin [i]) xs = xmin [i] ;else xs = xt ;if (x+0. 5 > xmax [i]) xe = xmax [i] ;else xe = x+0. 5 ;}if (yt == y-0. 5) 7 3)计算栅格化片断在步骤1)中得出的边的外部的区域的面积。计算框的四个顶点为VO (xs,ys)、Vl (xe,ys)、V2 (xs,ye)、V3 (xe,ye)。V0/V1/V2/ V3的e[i]值为e0[i]/el[i]/e2[i]/e3[i]。栅格化片断中的外部区域的面积Soe[i]如 下
e0[i]<0<0<0<0>=0e1[i]>=0<0<0>=0Ie2[i]>=0>=0<0<0ISoe[i]|e0[i]/a|*|e0[i]/b|/2(|e0[i]/b|+|e1[i]/b|)/21- (|e3[i]/a|*|e3[i]/b|/2)(|e0[i]/a|+|e2[i]/a|)/204)对栅格化片断在步骤1)中得出的边的所有外部区域的面积求和。for(i = 0 ;i < η ;i++){Sop+ = Soe [i]}其中,如果多边形的最左或最右侧顶点位于栅格化片断内,则需要累加外部区域。 图7示出了栅格化片断与多边形相交且位于多边形的多条边外的情形的示意图。假设多边形的最左侧顶点的χ坐标为gxmin,最右侧顶点的χ坐标为gxmax,如果 gxmin 位于栅格化片断内(χ-0· 5 < gxmin < x+0. 5 =,则 gxmin 左边的面积(gxmin-x+0. 5) 需要额外累加。同样,如果gxmax位于栅格化片断内(x-0. 5 < gxmax < x+0. 5),则gxmax 右边的面积(x+0. 5-gxmax)需要额外累加。If (x-0. 5 < gxmin < x+0. 5 = Sop+ = gxmin-x+0. 5 ;If (x-0. 5 < gxmax < x+0. 5 = Sop+ = x+0. 5-gxmax ;子步骤3)和4)例如可以由片断面积计算单元3062-6完成。从以上对于子步骤 1) 5)的描述可以看出,这些子步骤是计算栅格化片断位于多边形外的片断部分的面积 的处理过程,该过程例如可以由第一计算单元3062完成。5)最后,通过等式coverage = l_Sop得出相交面积。该步骤例如可以由第二计算 单元3064完成。S408,根据相交面积,对多边形和多边形所在的显示背景进行混合。将多边形的内 插后的参数与背景参数混合,以实现抗锯齿的效果。其中,混合比例为相交面积。P = Pb* (I-Coverage)+Pi^Coverage ;其中,Pb是背景参数,Pi是内插后的参数。综上所述,采用本发明进行抗锯齿的多边形栅格化不需要对栅格化片断进行多重 采样,从而有效的减少了所需的计算量。需要注意的是,以上所述的各模块和/或各单元可以使用预编程的硬件或者固件 元件(例如,专用集成电路(ASIC))实现,也可以使用包括可电擦除并可编程的只读存储器
8(EEPROM)的数据处理装置或者其它有关组件实现。 本领域技术人员将理解,还存在可用于实现本发明实施例的更多可选实施方式和 改进方式,并且上述实施方式和示例仅是一个或多个实施例的说明。因此,本发明的范围仅 由所附权利要求书限制。
权利要求
一种用于抗锯齿的多边形栅格化的方法,其特征在于,包括利用多边形的顶点坐标计算所述多边形的各条边的边方程;利用所述各条边的边方程判断用于对所述多边形进行栅格化的栅格化片断是否与所述多边形相交;如果相交,则计算所述栅格化片断与所述多边形的相交面积;以及根据所述相交面积,对所述多边形和所述多边形所在的显示背景进行混合。
2.根据权利要求1所述的用于抗锯齿的多边形栅格化的方法,其特征在于,当所述栅 格化片断位于所述多边形的边界框内且所述栅格化片断的至少一个顶点相对于所述多边 形的任意一条边的边方程值都大于零时,所述栅格化片断与所述多边形相交,其中,所述边 界框是包括所述多边形的最小矩形。
3.根据权利要求1所述的用于抗锯齿的多边形栅格化的方法,其特征在于,计算所述 栅格化片断与所述多边形的相交面积的处理包括计算所述栅格化片断位于所述多边形外的片断部分的面积;通过将所述栅格化片断的总面积与所述片断部分的面积相减,计算所述栅格化片断与 所述多边形的相交面积。
4.根据权利要求3所述的用于抗锯齿的多边形栅格化的方法,其特征在于,计算所述 片断部分的面积的处理包括根据所述栅格化片断的各个顶点相对于所述多边形的各条边的边方程值,找出所述栅 格化片断的一部分位于其外侧的所述多边形的一条边;根据所述栅格化片断的各个顶点的坐标值和所述多边形的一条边的两个端点的坐标 值,设置用于计算所述栅格化片断位于所述多边形的一条边的外侧的片断部分的面积的计 算框;利用所述计算框,计算所述栅格化片断位于所述多边形的一条边的外侧的片断部分的 面积。
5.根据权利要求4所述的用于抗锯齿的多边形栅格化的方法,其特征在于,当所述多 边形的最左侧或最右侧顶点位于所述计算框内时,将所述栅格化片断位于所述多边形的多 条边外侧的片断部分的面积累加,将累加结果作为所述栅格化片断位于所述多边形外的片 断部分的面积。
6.一种用于抗锯齿的多边形栅格化的系统,其特征在于,包括方程计算单元,用于利用多边形的顶点坐标计算所述多边形的各条边的边方程;相交判断单元,用于利用所述各条边的边方程判断用于对所述多边形进行栅格化的栅 格化片断是否与所述多边形相交;面积计算单元,用于在所述栅格化片断与所述多边形相交的情况下,计算所述栅格化 片断与所述多边形的相交面积;以及图形混合单元,用于根据所述相交面积,对所述多边形和所述多边形所在的显示背景 进行混合。
7.根据权利要求6所述的用于抗锯齿的多边形栅格化的系统,其特征在于,在所述栅 格化片断位于所述多边形的边界框内且所述栅格化片断的至少一个顶点相对于所述多边 形的任意一条边的边方程值都大于零的情况下,所述栅格化片断与所述多边形相交,其中,所述边界框是包括所述多边形的最小矩形。
8.根据权利要求6所述的用于抗锯齿的多边形栅格化的系统,其特征在于,所述面积 计算单元包括第一计算单元,用于计算所述栅格化片断位于所述多边形外的片断部分的面积;第二计算单元,用于通过将所述栅格化片断的总面积与所述片断部分的面积相减,计 算所述栅格化片断与所述多边形的相交面积。
9.根据权利要求8所述的用于抗锯齿的多边形栅格化的系统,其特征在于,所述第一 计算单元包括相交边获取单元,用于根据所述栅格化片断的各个顶点相对于所述多边形的各条边的 边方程值,找出所述栅格化片断的一部分位于其外侧的所述多边形的一条边;计算框设置单元,用于根据所述栅格化片断的各个顶点的坐标值和所述多边形的一条 边的两个端点的坐标值,设置用于计算所述栅格化片断位于所述多边形的一条边的外侧的 片断部分的面积的计算框;片断面积计算单元,用于利用所述计算框,计算所述栅格化片断位于所述多边形的一 条边的外侧的片断部分的面积。
10.根据权利要求9所述的用于抗锯齿的多边形栅格化的系统,其特征在于,在所述多 边形的最左侧或最右侧顶点位于所述计算框内的情况下,所述用于多边形栅格化的系统将 所述栅格化片断位于所述多边形的多条边外侧的片断部分的面积累加,将累加结果作为所 述栅格化片断位于所述多边形外的片断部分的面积。
全文摘要
公开了一种用于抗锯齿的多边形栅格化的方法和系统。其中,该用于抗锯齿的多边形栅格化的方法包括利用多边形的顶点坐标计算多边形的各条边的边方程;利用各条边的边方程判断用于对多边形进行栅格化的栅格化片断是否与多边形相交;如果相交,则计算栅格化片断与多边形的相交面积;以及根据相交面积,对多边形和多边形所在的显示背景进行混合。采用本发明进行抗锯齿的多边形栅格化,不需要对栅格化片断进行多重采样,从而有效的减少了所需的计算量。
文档编号G09G5/36GK101901590SQ20091014211
公开日2010年12月1日 申请日期2009年5月25日 优先权日2009年5月25日
发明者洲镰康, 白向晖, 谭志明 申请人:富士通株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1