CN108416729B - Gpu中一种线段反走样的实现装置和方法 - Google Patents

Gpu中一种线段反走样的实现装置和方法 Download PDF

Info

Publication number
CN108416729B
CN108416729B CN201810261849.2A CN201810261849A CN108416729B CN 108416729 B CN108416729 B CN 108416729B CN 201810261849 A CN201810261849 A CN 201810261849A CN 108416729 B CN108416729 B CN 108416729B
Authority
CN
China
Prior art keywords
line
segment
line segment
segments
area ratio
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201810261849.2A
Other languages
English (en)
Other versions
CN108416729A (zh
Inventor
焦永
石大勇
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Changsha Jingjia Microelectronics Co ltd
Original Assignee
Changsha Jingjia Microelectronics Co ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Changsha Jingjia Microelectronics Co ltd filed Critical Changsha Jingjia Microelectronics Co ltd
Priority to CN201810261849.2A priority Critical patent/CN108416729B/zh
Publication of CN108416729A publication Critical patent/CN108416729A/zh
Application granted granted Critical
Publication of CN108416729B publication Critical patent/CN108416729B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了GPU中一种线段反走样的实现装置和方法,该装置包括:接收数据FIFO、线段端点重排序、扫描线范围确定、片段生成、面积比计算和融合六个模块,实现方法为:通过构造一个由四条直线围成的区域,通过生成扫描线,生成扫描线上片段,将片段划分成子片段,利用子片段与边界直线的位置关系和到原线段的距离确定子片段与线段扩展矩形的位置关系,进而得到片段面积比,最后利用面积比执行融合操作,以实现线段反走样的效果。

Description

GPU中一种线段反走样的实现装置和方法
技术领域
本发明主要涉及到GPU设计领域,特指GPU中点线段反走样实现领域。
背景技术
线段是GPU的基本图元之一,线段是连续信号,而光栅扫描显示器是由离散的点构成的,为了在光栅设备上显示线段就必须在离散位置上采样,这时就会出现走样现象,为了减小走样效果的影响,目前一般采用的反走样方法:一种超采样方法称为全屏反走样,即通过高分辨率绘制场景,然后把相邻的采样点进行加权平均得到一幅图形,这种方法由于场景需要绘制多次,对速度影响较大;另外一种方法是将像素看做一个区域而不是一个点,对每个像素区域的不同位置多次采样,将采样结果加权平均得到该像素的alpha值,与背景融合达到反走样效果,该方法无需多次绘制同一帧,特别是在线段反走样领域比较常用,这种做法需要将线段扩展成一个矩形,在计算矩形四个顶点坐标时需要用到三角函数和开方等超越函数运算,这些运算对系统的效率影响较大。
发明内容
本发明要解决的问题就在于:去掉采用超采样方法实现线段反走样的线段扩展操作,生成一个由四条直线围成的区域,通过生成扫描线,生成扫描线上片段,将片段划分成子片段,利用子片段与边界直线的位置关系和到原线段的距离确定子片段与线段扩展矩形的位置关系,进而得到片段面积比。
发明内容:
本发明公开了GPU中一种线段反走样的实现装置,其特征为:由以下模块构成:
(1)接收数据FIFO模块:用于接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性;
(2)预处理模块:用于将线段L端点排列成从左向右的顺序,同时分别生成经过线段两个端点并且与待绘制线段垂直的直线L0和L1
(3)扫描线范围确定模块:用于根据线段的主要方向将线段L沿与主要方向垂直的方向,以线段L为起点分别向两个方向进行平移,得到两条线段,根据主要方向确定扫描线范围;
(4)片段生成模块:用于逐个生成扫描线上的片段;
(5)面积比计算模块:用于将片段划分成子片段,通过判断子片段与L0和L1的位置关系以及与线段L的距离确定子片段的权值,所有子片段的权值相加得到片段的权值作为面积比;
(6)融合模块:将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,最后写入帧存;
本发明还公开了GPU中一种线段反走样的实现方法,其特征为:按照以下步骤执行:
步骤1:接收数据:接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性以及线段宽度,设读取到的线段两个端点坐标为A(xA,yA)、B(xB,yB),线段的宽度为w;
步骤2:预处理:将线段按照从左到右的方向重排列,设重排列后线段的左侧端点坐标为P0(x0,y0)右侧端点坐标为P1(x1,y1),那么线段的点向式方程为(x-x0)·(y1-y0)-(y-y0)·(x1-x0)=0,线段的方向为从P0→P1,经过P0点与L垂直的线段方程为L0:(x-x0)·(x1-x0)+(y-y0)·(y1-y0)=0,经过P1点与L垂直的线段方程为L1:(x-x1)·(x1-x0)+(y-y1)·(y1-y0)=0;
步骤3:确定扫描范围:当水平方向为主要方向即|x1-x0|≥|y1-y0|时,将直线L在垂直方向分别向下、向上平移w,分别得到两条直线方程
Figure BDA0001609518400000021
此时扫描线范围为x=x0-w至x=x1+w之间的整数;当垂直方向为主要方向即|x1-x0|<|y1-y0|时,将直线L在水平方向向左、向右平移w,分别得到两条直线方程
Figure BDA0001609518400000022
此时扫描线范围为y=y0-w至y=y1+w之间的整数;
步骤4:生成片段:当水平方向为主要方向时,分别计算扫描线与L3和L2的交点纵坐标PL3y和PL2y,然后生成PL3y和PL2y之间的垂直线上片段;当垂直方向为主要方向时,分别计算扫描线与L4和L5的交点横坐标PL4x和PL5x,然后生成PL4x和PL5x之间的水平线上片段;
步骤5:确定片段的面积比:将片段划分成m×m的网格,共计(m+1)2个网格点,设片段最小网格点的坐标为(a,b),那么所有网格点的坐标(xn,yn)=(a+i,b+j),其中i,j∈{0,1/m,2/m,3/m,…,(m-1)/m,1},若网格点满足:在直线L0和L1之间并且到L的距离小于w/2则该点权值为1否则为0;将所有权值相加除以总权值(m+1)2即得到当前片段的面积比Ratio;
步骤6:在片段融合阶段将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,写入帧存,完成反走样线段的生成;
对于本发明实现方法的进一步限定,所述步骤5中网格点权值的确定采用如下公式:
a)满足如下不等式,则网格点在L0和L1之间:
Figure BDA0001609518400000031
b)满足如下不等式,则网格点到L的距离小于w/2:
Figure BDA0001609518400000032
其中A=(y1-y0)、B=-(x1-x0)、C=-x0·(y1-y0)+y0·(x1-x0);同时满足上述两个条件该点权值为1否则为0;
本发明的优点就在于:避免了传统做法中的线段扩展,节省硬件资源;
附图说明
图1是本发明GPU中一种线段反走样的实现装置结构;
图2是本发明GPU中一种线段反走样的实现方法流程;
图3是本发明实现的线段反走样执行效果。
具体实施方式
以下将结合附图和具体实施例对本发明做进一步详细说明。
如图1所示为本发明GPU中一种线段反走样的实现装置结构,该装置由以下模块构成:
(1)接收数据FIFO模块:用于接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性;
(2)预处理模块:用于将线段L端点排列成从左向右的顺序,同时分别生成经过线段两个端点并且与待绘制线段垂直的直线L0和L1
(3)扫描线范围确定模块:用于根据线段的主要方向将线段L沿与主要方向垂直的方向,以线段L为起点分别向两个方向进行平移,得到两条线段,根据主要方向确定扫描线范围;
(4)片段生成模块:用于逐个生成扫描线上的片段;
(5)面积比计算模块:用于将片段划分成子片段,通过判断子片段与L0和L1的位置关系以及与线段L的距离确定子片段的权值,所有子片段的权值相加得到片段的权值作为面积比;
(6)融合模块:将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,最后写入帧存;
如图2所示为本发明GPU中一种线段反走样的实现方法流程,经过以下处理步骤:
步骤1:接收数据:接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性以及线段宽度,设读取到的线段两个端点坐标为A(xA,yA)、B(xB,yB),线段的宽度为w;
步骤2:预处理:将线段按照从左到右的方向重排列,设重排列后线段的左侧端点坐标为P0(x0,y0)右侧端点坐标为P1(x1,y1),那么线段的点向式方程为(x-x0)·(y1-y0)-(y-y0)·(x1-x0)=0,线段的方向为从y0→P1,经过P0点与L垂直的线段方程为L0:(x-x0)·(x1-x0)+(y-y0)·(y1-y0)=0,经过P1点与L垂直的线段方程为L1:(x-x1)·(x1-x0)+(y-y1)·(y1-y0)=0;
步骤3:确定扫描范围:当水平方向为主要方向即|x1-x0|≥|y1-y0|时,将直线L在垂直方向分别向下、向上平移w,分别得到两条直线方程
Figure BDA0001609518400000041
此时扫描线范围为x=x0-w至x=x1+w之间的整数;当垂直方向为主要方向即|x1-x0|<|y1-y0|时,将直线L在水平方向向左、向右平移w,分别得到两条直线方程
Figure BDA0001609518400000042
此时扫描线范围为y=y0-w至y=y1+w之间的整数;
步骤4:生成片段:当水平方向为主要方向时,分别计算扫描线与L3和L2的交点纵坐标PL3y和PL2y,然后生成PL3y和PL2y之间的垂直线上片段;当垂直方向为主要方向时,分别计算扫描线与L4和L5的交点横坐标PL4x和PL5x,然后生成PL4x和PL5x之间的水平线上片段;
步骤5:确定片段的面积比:以将片段划分成4×4的网格为例,共计25个网格点,设片段最小网格点的坐标为(a,b),那么所有网格点的坐标(xn,yn)=(a+i,b+j),其中i,j∈{0,1/4,2/4,3/4,1},若网格点满足:在直线L0和L1之间并且到L的距离小于w/2则该点权值为1否则为0,具体判别方法:满足不等式
Figure BDA0001609518400000051
则网格点在L0和L1之间;满足不等式
Figure BDA0001609518400000052
其中A=(y1-y0)、B=-(x1-x0)、C=-x0·(y1-y0)+y0·(x1-x0),则网格点到L的距离小于w/2,同时满足上述两个条件该点权值为1否则为0;将所有权值相加除以总权值25即得到当前片段的面积比Ratio;
步骤6:在片段融合阶段将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,写入帧存,完成反走样线段的生成;
如图3所示为本发明实现的线段反走样执行效果,(a1)和(a2)为本发明实现方法执行线段反走样的效果,其中的(a1)为原始图形,(a2)为(a1)放大后的效果;作为对比,(b1)和(b2)是线段不作反走样的效果,其中的(b1)为原始图形,(b2)为(b1)放大后的效果;本发明的实现方法提供了较好的线段反走样效果。

Claims (3)

1.GPU中一种线段反走样实现装置,其特征为:由以下模块构成:
接收数据FIFO模块:用于接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性;
预处理模块:用于将线段L端点排列成从左向右的顺序,同时分别生成经过线段两个端点并且与待绘制线段垂直的直线L0和L1
扫描线范围确定模块:用于根据线段的主要方向将线段L沿与主要方向垂直的方向,以线段L为起点分别向两个方向进行平移,得到两条线段,根据主要方向确定扫描线范围;
片段生成模块:用于逐个生成扫描线上的片段;
面积比计算模块:用于将片段划分成子片段,通过判断子片段与L0和L1的位置关系以及与线段L的距离确定子片段的权值,所有子片段的权值相加得到片段的权值作为面积比;
融合模块:将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,最后写入帧存。
2.GPU中一种线段反走样实现方法,其特征为:按照以下步骤执行:
步骤1:接收数据:接收经过顶点处理、裁剪、屏幕坐标变换后的线段顶点及对应的属性以及线段宽度,设读取到的线段两个端点坐标为A(xA,yA)、B(xB,yB),线段的宽度为w;
步骤2:预处理:将线段按照从左到右的方向重排列,设重排列后线段的左侧端点坐标为P0(x0,y0)右侧端点坐标为P1(x1,y1),那么线段的点向式方程为(x-x0)·(y1-y0)-(y-y0)·(x1-x0)=0,线段的方向为从P0→P1,经过P0点与L垂直的线段方程为L0:(x-x0)·(x1-x0)+(y-y0)·(y1-y0)=0,经过P1点与L垂直的线段方程为L1:(x-x1)·(x1-x0)+(y-y1)·(y1-y0)=0;
步骤3:确定扫描范围:当水平方向为主要方向即|x1-x0|≥|y1-y0|时,将直线L在垂直方向分别向下、向上平移w,分别得到两条直线方程
Figure FDA0003916647330000011
此时扫描线范围为x=x0-w至x=x1+w之间的整数;当垂直方向为主要方向即|x1-x0|<|y1-y0|时,将直线L在水平方向向左、向右平移w,分别得到两条直线方程
Figure FDA0003916647330000012
此时扫描线范围为y=y0-w至y=y1+w之间的整数;
步骤4:生成片段:当水平方向为主要方向时,分别计算扫描线与L3和L2的交点纵坐标PL3y和PL2y,然后生成PL3y和PL2y之间的垂直线上片段;当垂直方向为主要方向时,分别计算扫描线与L4和L5的交点横坐标PL4x和PL5x,然后生成PL4x和PL5x之间的水平线上片段;
步骤5:确定片段的面积比:将片段划分成m×m的网格,共计(m+1)2个网格点,设片段最小网格点的坐标为(a,b),那么所有网格点的坐标(xn,yn)=(a+i,b+j),其中i,j∈{0,1/m,2/m,3/m,…,(m-1)/m,1},若网格点满足:在直线L0和L1之间并且到L的距离小于w/2则该点权值为1否则为0;将所有权值相加除以总权值(m+1)2即得到当前片段的面积比Ratio;
步骤6:在片段融合阶段将面积比作为源融合因子,一减面积比作为目的融合因子将片段颜色与背景颜色进行融合,写入帧存,完成反走样线段的生成。
3.根据权利要求2所述的GPU中一种线段反走样实现方法,其特征为:所述步骤5中网格点权值的确定采用如下公式:
a)满足如下不等式,则网格点在L0和L1之间:
Figure FDA0003916647330000021
b)满足如下不等式,则网格点到L的距离小于w/2:
Figure FDA0003916647330000022
其中A=(y1-y0)、B=-(x1-x0)、C=-x0·(y1-y0)+y0·(x1-x0);同时满足上述两个条件该点权值为1否则为0。
CN201810261849.2A 2018-03-27 2018-03-27 Gpu中一种线段反走样的实现装置和方法 Active CN108416729B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201810261849.2A CN108416729B (zh) 2018-03-27 2018-03-27 Gpu中一种线段反走样的实现装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201810261849.2A CN108416729B (zh) 2018-03-27 2018-03-27 Gpu中一种线段反走样的实现装置和方法

Publications (2)

Publication Number Publication Date
CN108416729A CN108416729A (zh) 2018-08-17
CN108416729B true CN108416729B (zh) 2022-12-06

Family

ID=63133740

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201810261849.2A Active CN108416729B (zh) 2018-03-27 2018-03-27 Gpu中一种线段反走样的实现装置和方法

Country Status (1)

Country Link
CN (1) CN108416729B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110335215B (zh) * 2019-07-09 2021-07-02 格兰菲智能科技有限公司 图像反走样方法及图像反走样装置
CN110648386B (zh) * 2019-07-23 2024-01-09 完美世界(北京)软件科技发展有限公司 一种用于图元的反走样的方法和系统
CN111784795B (zh) * 2020-06-01 2024-11-01 北京像素软件科技股份有限公司 线段走样的处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337404A (en) * 1989-04-24 1994-08-09 Digital Equipment International Limited Process and system for making computer-aided drawings using a contour inclusion tree associated planar map data structure
CN102063523A (zh) * 2010-11-22 2011-05-18 长沙景嘉微电子有限公司 基于超采样算法的浮点定点相结合的线段反走样的实现
CN102096935A (zh) * 2011-03-17 2011-06-15 长沙景嘉微电子有限公司 基于分块渲染的gpu中反走样线段的生成

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110137822A1 (en) * 2007-12-21 2011-06-09 Chapman Gerald E Computer-implemented pattern charting

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5337404A (en) * 1989-04-24 1994-08-09 Digital Equipment International Limited Process and system for making computer-aided drawings using a contour inclusion tree associated planar map data structure
CN102063523A (zh) * 2010-11-22 2011-05-18 长沙景嘉微电子有限公司 基于超采样算法的浮点定点相结合的线段反走样的实现
CN102096935A (zh) * 2011-03-17 2011-06-15 长沙景嘉微电子有限公司 基于分块渲染的gpu中反走样线段的生成

Also Published As

Publication number Publication date
CN108416729A (zh) 2018-08-17

Similar Documents

Publication Publication Date Title
CN108416729B (zh) Gpu中一种线段反走样的实现装置和方法
US6323874B1 (en) System and method for rendering an image
EP1127337B2 (en) Shading 3-dimensional computer generated images
US8269788B2 (en) Vector graphics anti-aliasing
CN101887592B (zh) 一种矢量图形地图符号的绘制方法
CN109978750B (zh) 执行基于采样的渲染的图形处理器和操作其的方法
US20200279415A1 (en) Efficiently Computed Distance Fields
JP2018512644A (ja) 低品質タイルを使用してメモリ帯域幅を減らすためのシステムおよび方法
CN100377578C (zh) 一种电视字幕文字的处理方法
CN114693851A (zh) 基于gpu的实时网格轮廓向量化与渲染系统
CN111145286A (zh) 一种基于gpu的用于边缘计算场景的点九图片贴图绘制方法
CN108537718B (zh) Gpu中一种实现点图元反走样的装置和方法
US8537173B2 (en) Graphics rendering apparatus, graphics rendering method, Recording medium having recorded therein graphics rendering program, and integrated circuit for rendering a high-quality image using a scaling coefficient
US8134557B2 (en) Image processing apparatus and image processing method
CN109741433B (zh) 一种基于Tile的三角形多向并行扫描方法及结构
CN101901590B (zh) 用于抗锯齿的多边形栅格化的方法和系统
JP2010515131A (ja) ベクトルグラフィックをラスター化するプロセスにおいて境界を発生させるための方法およびシステム、ならびに、システムを製造するための方法
US6445386B1 (en) Method and apparatus for stretch blitting using a 3D pipeline
CN102096935B (zh) 基于分块渲染的gpu中反走样线段的生成
CN108519867B (zh) Gpu中一种实现三角形反走样的装置和方法
CN108510565A (zh) Gpu中一种实现线段转三角形绘制的装置与方法
JP2002519793A (ja) グラフィックエレメントをレンダリング処理する方法及びシステム
CN103106395A (zh) 车牌字符实时识别系统的几何归一化内核装置
CN111127589B (zh) 顾及线宽一致性的矢量地图圆形虚线符号绘制方法
JP3747859B2 (ja) 画像処理装置およびその方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant