CN115063509B - 一种基于daa直线表示的光栅化方法、装置及存储介质 - Google Patents

一种基于daa直线表示的光栅化方法、装置及存储介质 Download PDF

Info

Publication number
CN115063509B
CN115063509B CN202210991806.6A CN202210991806A CN115063509B CN 115063509 B CN115063509 B CN 115063509B CN 202210991806 A CN202210991806 A CN 202210991806A CN 115063509 B CN115063509 B CN 115063509B
Authority
CN
China
Prior art keywords
pixel
line
tile
pixels
current
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
CN202210991806.6A
Other languages
English (en)
Other versions
CN115063509A (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.)
Icube Corp ltd
Original Assignee
Icube Corp 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 Icube Corp ltd filed Critical Icube Corp ltd
Priority to CN202210991806.6A priority Critical patent/CN115063509B/zh
Publication of CN115063509A publication Critical patent/CN115063509A/zh
Application granted granted Critical
Publication of CN115063509B publication Critical patent/CN115063509B/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
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Theoretical Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Analysis (AREA)
  • Data Mining & Analysis (AREA)
  • Computational Mathematics (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

本发明公开了一种基于DAA直线表示的光栅化方法、装置及存储介质,方法包括生成线图元的包围盒并且根据线宽和顶点获得线图元边界方程;根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;对有效Tile以x‑major或y‑major方式进行遍历绘制像素;对有效Tile中绘制的像素进行属性插值。本发明并行性高,像素之间的光栅化过程没有互相依赖的关系;支持Tile为单位的光栅化,可以和其他图元光栅化流程进行逻辑复用,同时降低了硬件设计复杂度;同时对线图元顶点的位置无特殊要求。

Description

一种基于DAA直线表示的光栅化方法、装置及存储介质
技术领域
本发明涉及计算机绘图领域,尤其涉及一种基于DAA直线表示的光栅化方法、装置及存储介质。
背景技术
将二维图形转化为计算机显示器的栅格形式时,需要利用计算机图形学的相关内容。在进行光栅化的过程中需要支持对于线图元的光栅化,而直线光栅化过程的本质就是在屏幕像素中,选择并且确认一条最逼近直线的像素序列并且填入颜色的过程。目前常用的算法有DDA、Bresenham、中点画线法。同时在直线光栅化的过程中为了避免斜率绝对值过大或者过小导致屏幕上的点过于稀疏,一般当斜率的绝对值小于1时,通过在x轴方向递增计算对应y值和像素,并且称这种情况为x-major。当斜率的绝对值大于1时,为y-major,通过在y轴方向递增计算对应x值从而确定像素。
以x-major情况为例,假设线图元的两个端点分别为
Figure 68743DEST_PATH_IMAGE001
Figure 37968DEST_PATH_IMAGE002
。令
Figure 100602DEST_PATH_IMAGE003
,则DDA算法的原理如下:已知线段的两个端点,由两个点的坐标可以得到直线方程:
Figure 912700DEST_PATH_IMAGE004
,其中
Figure 679667DEST_PATH_IMAGE005
Figure 955928DEST_PATH_IMAGE006
,当要确定需要绘制的像素时,首先可以通过将x轴方向
Figure 127146DEST_PATH_IMAGE007
之间的像素中心代入直线方程从而得到一组在直线上的点
Figure 488858DEST_PATH_IMAGE008
,通过找到与直线上的点距离最近的像素来完成对线的光栅化。但是由于在计算直线上的点的y坐标时,会进行乘法运算,DDA算法将乘法运算化为加法运算从而提高效率。
Figure 279090DEST_PATH_IMAGE009
,即x坐标每向右偏移一个单位,对应的y坐标会偏移k个单位,只需要通过加法偏移就可以得到所有像素中心所在x坐标下对应的直线上的点的y坐标。对应
Figure 409857DEST_PATH_IMAGE010
列中的像素,选择绘制像素中心坐标和
Figure 751977DEST_PATH_IMAGE011
最相近的像素。DDA算法的优点是逻辑简单,同一条直线像素之间光栅化的依赖性较小。但是也存在明显缺点:包含大量浮点数运算,光栅化过程是像素级别,没有Tile的概念。在实际多种图元类型进行光栅化的过程中,在硬件上难以复用。
发明内容
本发明针对上述问题,提供了一种基于DAA直线表示的光栅化方法、装置及存储介质。
本发明的第一方面,提供了一种基于DAA直线表示的光栅化方法,方法包括以下步骤:
步骤一、根据线图元的顶点和线宽生成线图元的包围盒和线图元边界方程;
步骤二、根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;
步骤三、对有效Tile以x-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 928880DEST_PATH_IMAGE012
Figure 444175DEST_PATH_IMAGE013
计算直线的点斜式方程
Figure 632711DEST_PATH_IMAGE014
,其中
Figure 208049DEST_PATH_IMAGE015
Figure 622981DEST_PATH_IMAGE016
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值区间:[y,y+线宽];
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
步骤四、对有效Tile中绘制的像素进行属性插值。
本发明进一步的技术方案是:所述方法还包括对有效Tile以y-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 879650DEST_PATH_IMAGE017
Figure 985009DEST_PATH_IMAGE018
计算直线的点斜式方程
Figure 793565DEST_PATH_IMAGE019
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值区间:[x,x+线宽];
S4、遍历当前Tile当前像素所在行的所有像素,确定各像素的x是否在x值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在行的所有像素后,返回S2。
本发明的第二方面,一种基于DAA直线表示的光栅化装置,包括:
边界方程获取模块,用于根据线图元的顶点和线宽生成线图元的包围盒和线图元边界方程;
有效Tile获取模块,用于根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;
第一遍历绘制模块,用于对有效Tile以x-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 351585DEST_PATH_IMAGE020
Figure 411945DEST_PATH_IMAGE021
计算直线的点斜式方程
Figure 371811DEST_PATH_IMAGE022
,其中
Figure 93212DEST_PATH_IMAGE023
Figure 404107DEST_PATH_IMAGE024
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值区间:[y,y+线宽];
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
插值模块,用于对有效Tile中绘制的像素进行属性插值。
本发明进一步的技术方案是:所述装置还包括第二遍历绘制模块,用于对有效Tile以y-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 2579DEST_PATH_IMAGE025
Figure 816951DEST_PATH_IMAGE026
计算直线的点斜式方程
Figure 232889DEST_PATH_IMAGE027
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值区间:[x,x+线宽];
S4、遍历当前Tile当前像素所在行的所有像素,确定各像素的x是否在x值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在行的所有像素后,返回S2。
本发明的第三方面,提供了一种基于DAA直线表示的光栅化装置,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行上述基于DAA直线表示的光栅化方法。
本发明的第四方面,一种存储介质,其上存储有计算机程序,所述程序被处理器执行时实现上述基于DAA直线表示的光栅化方法。
本发明提供的一种基于DAA直线表示的光栅化方法、装置及存储介质,其有益效果有:
1、在继承了DDA算法的原有的优点基础上,逻辑简单,同时像素之间的光栅化过程没有互相依赖的关系;
2、并行性高,像素之间的光栅化过程没有互相依赖的关系;
3、Tile之间可以并行执行,Tile内部行或者列之间的光栅化也可以并行执行,可以有效的增加并行性从而增加运行速度,摆脱了中点画线法和Bersenham算法像素光栅化之间的依赖性;
4、通过实现以Tile为单位的光栅化流程,对于后续流程的传输也以Tile为单位,可以极大的减少需要处理的命令数量;
5、由于三角形光栅化算法中也多使用Tile为单位,所以在整体光栅化模块和后续CORE和ROP的处理中,两者的逻辑可以复用。因此可以有效减少硬件的实现逻辑和面积;
6、本发明方法可支持线宽、线型、抗锯齿等多种线的光栅化实现 ,具有较大的应用价值;
7. 支持Tile为单位的光栅化,可以和其他图元光栅化流程进行逻辑复用,同时降低了硬件设计复杂度;
8. 对线图元顶点的位置无特殊要求。
附图说明
图1是本发明实施例中基于DAA直线表示的光栅化方法流程示意图;
图2是本发明实施例中以x-major方式进行遍历绘制像素流程示意图;
图3是本发明实施例中以y-major方式进行遍历绘制像素流程示意图;
图4是本发明实施例中基于DAA直线表示的光栅化装置结构示意图;
图5是本发明实施例中计算机设备的架构图。
具体实施方式
为进一步对本发明的技术方案作详细说明,本实施例在以本发明技术方案为前提下进行实施,给出了详细的实施方式和具体的步骤。
本公开所描述的特征、结构或特性可以以任何合适的方式结合在一个或更多实施方式中。在下面的描述中,提供许多具体细节从而给出对本公开的实施方式的充分理解。然而,本领域技术人员将意识到,可以实践本公开的技术方案而省略特定细节中的一个或更多,或者可以采用其它的方法、组元、装置、步骤等。在其它情况下,不详细示出或描述公知方法、装置、实现或者操作以避免模糊本公开的各方面。
在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各步骤描述成顺序的处理,但是其中的许多步骤可以被并行地、并发地或者同时实施。此外,各步骤的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。
附图仅为本公开的示意性图解,图中相同的附图标记表示相同或类似的部分,因而将省略对它们的重复描述。附图中所示的一些方框图不一定必须与物理或逻辑上独立的实体相对应。可以采用软件形式来实现这些功能实体,或在一个或硬件获取模块或集成电路中实现这些功能实体,或在不同网络和/或处理器装置和/或微控制器装置中实现这些功能实体。
此外,术语“第一”、“第二”等可在本文中用于描述各种方向、动作、步骤或元件等,但这些方向、动作、步骤或元件不受这些术语限制。这些术语仅用于将第一个方向、动作、步骤或元件与另一个方向、动作、步骤或元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一遍历绘制模块称为第二遍历绘制模块,且类似地,可将第二遍历绘制模块称为第一遍历绘制模块。第一遍历绘制模块和第二遍历绘制模块两者都是遍历绘制模块,但其不是同一遍历绘制模块。术语“第一”、“第二”等不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征。在本发明的描述中,“多个”的含义是至少两个,例如两个,三个等,除非另有明确具体的限定。
本发明实施例针对一种基于DAA直线表示的光栅化方法、装置及存储介质,提供了如下实施例:
基于本发明的实施例1
本发明实施例提供了一种基于DAA直线表示的光栅化方法,如图1所示,方法包括以下步骤:
S100、根据线图元的顶点和线宽生成线图元的包围盒和线图元边界方程;
具体实施过程中,已知线图元的两个顶点(x1,y1)、(x0,y0)可以确定两个x值和两个y值里面较大和较小的,假设为xmin,xmax,ymin,ymax,线宽为w,那么包围盒为[xmin-w,xmax+w]*[ymin-w,ymax+w],线图元边界方程为表示线段的矩形所在的四条边的直线方程。
S200、根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;
具体实施过程中,令Tile宽W高H,将包围盒从左到右从上到下,分为宽W高H的小区间,若边界方程直线穿过了Tile所在区域,则两者之间有交集,穿过的Tile即为有效Tile。
S300、对有效Tile以x-major方式进行遍历,具体遍历过程如图2所示,包括:
S1、根据公式
Figure 968764DEST_PATH_IMAGE028
Figure 433243DEST_PATH_IMAGE029
计算直线的点斜式方程
Figure 915171DEST_PATH_IMAGE030
,其中
Figure 439694DEST_PATH_IMAGE031
Figure 397285DEST_PATH_IMAGE032
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
具体实施过程中,像素对应的线型存在两种情况,虚线和实线,虚线的线型为0,这种情况不参与绘制,实线为1。
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值区间:[y,y+线宽];
具体实施过程中,线宽取值大于等于1,优选实施例选取线宽为1,每一个像素中心在屏幕上的坐标是固定的,当前像素的x和本列像素的x坐标是相同的,得到y’之后只要找到和y’的差的绝对值最小的y,即为像素的y坐标。具体为:对于本列像素的y坐标,计算|y-y’|,使得这个公式的值最小的y,即为需要绘制的像素的y。
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
具体实施过程中,遍历当前Tile当前坐标(x,y)对应的像素所在列的所有像素。
S400、对有效Tile中绘制的像素进行属性插值。
优选实施方式中,对有效Tile中绘制的像素进行属性插值是根据OpenGL规范中的既有公式进行插值。
在一些优选实施例中,所述方法还包括对有效Tile以y-major方式进行遍历,具体遍历过程如图3所示,包括:
S1、根据公式
Figure 399876DEST_PATH_IMAGE033
Figure 251158DEST_PATH_IMAGE034
计算直线的点斜式方程
Figure 946581DEST_PATH_IMAGE035
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值得区间:[x,x+线宽];
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的x是否在x值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2。
基于本发明的实施例2
本发明实施例2所提供的一种基于DAA直线表示的光栅化装置400,如图4所示,包括:边界方程获取模块401,用于生成线图元的包围盒并且根据线宽和顶点获得线图元边界方程;有效Tile获取模块402,用于根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;第一遍历绘制模块403,用于对有效Tile以x-major方式进行遍历,插值模块404,用于对有效Tile中绘制的像素进行属性插值。其中第一遍历绘制模块403具体遍历过程包括:
S1、根据公式
Figure 391469DEST_PATH_IMAGE036
Figure 10800DEST_PATH_IMAGE037
计算直线的点斜式方程
Figure 919851DEST_PATH_IMAGE038
,其中
Figure 458279DEST_PATH_IMAGE039
Figure 452780DEST_PATH_IMAGE040
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值得区间:[y,y+线宽];
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
在一些优选实施例中,装置400还包括第二遍历绘制模块405,用于对有效Tile以y-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 859491DEST_PATH_IMAGE041
Figure 826310DEST_PATH_IMAGE042
计算直线的点斜式方程
Figure 597957DEST_PATH_IMAGE043
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值得区间:[x,x+线宽];
S4、遍历当前Tile当前像素所在行的所有像素,确定各像素的x是否在x区间内,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在行的所有像素后,返回S2。
除了上模块以外,装置400还可以包括其他部件,然而,由于这些部件与本公开实施例的内容无关,因此在这里省略其图示和描述。
一种基于DAA直线表示的光栅化装置400的具体工作过程参照上述一种基于DAA直线表示的光栅化方法实施例1的描述,不再赘述。
基于本发明的实施例3
根据本发明实施例的装置也可以借助于图5所示的计算设备的架构来实现。图5示出了该计算设备的架构。如图5所示,计算机系统501、系统总线503、一个或多个CPU 504、输入/输出502、存储器505等。存储器505可以存储计算机处理和/或通信使用的各种数据或文件以及CPU所执行包括上述实施例中任一所述的基于多线程计算处理器的线程调度方法的程序指令。图5所示的架构只是示例性的,在实现不同的设备时,根据实际需要调整图5中的一个或多个组件。
基于本发明的实施例4
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现上述实施例中所述的基于DAA直线表示的光栅化方法,
本发明实施例的计算机可读存储介质,可以采用一个或多个计算机可读的介质的任意组合。计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本文件中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。
计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。
存储介质上包含的程序代码可以用任何适当的介质传输,包括——但不限于无线、电线、光缆、RF等等,或者上述的任意合适的组合。
综合上述各实施例提供的本发明提供的一种基于DAA直线表示的光栅化方法、装置及存储介质,在继承了DDA算法的原有的优点基础上,逻辑简单,同时像素之间的光栅化过程没有互相依赖的关系;并行性高,像素之间的光栅化过程没有互相依赖的关系;Tile之间可以并行执行,Tile内部行或者列之间的光栅化也可以并行执行,可以有效的增加并行性从而增加运行速度,摆脱了中点画线法和Bersenham算法像素光栅化之间的依赖性;通过实现以Tile为单位的光栅化流程,对于后续流程的传输也以Tile为单位,可以极大的减少需要处理的命令数量;由于三角形光栅化算法中也多使用Tile为单位,所以在整体光栅化模块和后续CORE和ROP的处理中,两者的逻辑可以复用。因此可以有效减少硬件的实现逻辑和面积;本发明方法可支持线宽、线型、抗锯齿等多种线的光栅化实现 ,具有较大的应用价值; 支持Tile为单位的光栅化,可以和其他图元光栅化流程进行逻辑复用,同时降低了硬件设计复杂度; 对线图元顶点的位置无特殊要求。
注意,上述仅为本发明的较佳实施例及所运用技术原理。本领域技术人员会理解,本发明不限于这里所述的特定实施例,对本领域技术人员来说能够进行各种明显的变化、重新调整和替代而不会脱离本发明的保护范围。因此,虽然通过以上实施例对本发明进行了较为详细的说明,但是本发明不仅仅限于以上实施例,在不脱离本发明构思的情况下,还可以包括更多其他等效实施例,而本发明的范围由所附的权利要求范围决定。

Claims (6)

1.一种基于DAA直线表示的光栅化方法,其特征在于,方法包括以下步骤:
步骤一、根据线图元的顶点和线宽生成线图元的包围盒和线图元边界方程;
步骤二、根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;
步骤三、对有效Tile以x-major方式进行遍历绘制像素,具体遍历过程包括:
S1、根据公式
Figure DEST_PATH_IMAGE001
Figure 573220DEST_PATH_IMAGE002
计算直线的点斜式方程
Figure DEST_PATH_IMAGE003
,其中
Figure 777543DEST_PATH_IMAGE004
Figure DEST_PATH_IMAGE005
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值区间:[y,y+线宽];
其中,每一个像素中心在屏幕上的坐标是固定的,当前像素的x和本列像素的x坐标是相同的,对于本列像素的y坐标,计算|y-y’|,使得|y-y’|值最小的y,即为需要绘制像素的y;
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
步骤四、对有效Tile中绘制的像素进行属性插值。
2.根据权利要求1所述的基于DAA直线表示的光栅化方法,其特征在于,步骤三中用对有效Tile以y-major方式进行遍历绘制像素代替对有效Tile以x-major方式进行遍历绘制像素,具体遍历过程包括:
S1、根据公式
Figure 175027DEST_PATH_IMAGE006
Figure DEST_PATH_IMAGE007
计算直线的点斜式方程
Figure 966265DEST_PATH_IMAGE008
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值区间:[x,x+线宽];
其中,当前像素的y和本行像素的y坐标是相同的,对于本行像素的x坐标,计算|x-x’|,使得|x-x’|值最小的x,即为需要绘制像素的x;
S4、遍历当前Tile当前像素所在行的所有像素,确定各像素的x是否在x值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在行的所有像素后,返回S2。
3.一种基于DAA直线表示的光栅化装置,其特征在于,包括:
边界方程获取模块,用于根据线图元的顶点和线宽生成线图元的包围盒和线图元边界方程;
有效Tile获取模块,用于根据包围盒生成Tile,根据Tile和边界方程之间的关系找到和线图元有交集的有效Tile;
第一遍历绘制模块,用于对有效Tile以x-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure DEST_PATH_IMAGE009
Figure 107396DEST_PATH_IMAGE010
计算直线的点斜式方程
Figure 605374DEST_PATH_IMAGE003
,其中
Figure 377021DEST_PATH_IMAGE004
Figure 891441DEST_PATH_IMAGE005
为线图元的两个端点;
S2、从左到右遍历Tile最下面一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的x,计算y'=kx+b,根据y'判断对应需要绘制的像素,获得像素的y,获取y值区间:[y,y+线宽];
其中,每一个像素中心在屏幕上的坐标是固定的,当前像素的x和本列像素的x坐标是相同的,对于本列像素的y坐标,计算|y-y’|,使得|y-y’|值最小的y,即为需要绘制像素的y;
S4、遍历当前Tile当前像素所在列的所有像素,确定各像素的y是否在y值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在列的所有像素后,返回S2;
插值模块,用于对有效Tile中绘制的像素进行属性插值。
4.根据权利要求3所述的基于DAA直线表示的光栅化装置,其特征在于,所述装置还包括第二遍历绘制模块,用于代替第一遍历绘制模块,所述第二遍历绘制模块对有效Tile以y-major方式进行遍历,具体遍历过程包括:
S1、根据公式
Figure 773946DEST_PATH_IMAGE006
Figure 188747DEST_PATH_IMAGE007
计算直线的点斜式方程
Figure 131295DEST_PATH_IMAGE008
S2、从上到下遍历Tile最右边一行像素,确定当前像素对应的线型是否是1,若是,执行S3和S4,若否,继续下一个像素,遍历完当前Tile最下面一行像素后,进入下一个Tile;
S3、获取当前像素的y,计算x'=ky+b,根据x'判断对应需要绘制的像素,获得像素的x,获取x值区间:[x,x+线宽];
其中,当前像素的y和本行像素的y坐标是相同的,对于本行像素的x坐标,计算|x-x’|,使得|x-x’|值最小的x,即为需要绘制像素的x;
S4、遍历当前Tile当前像素所在行的所有像素,确定各像素的x是否在x值区间,若是,绘制像素,若否,继续下一个像素,遍历完当前Tile当前像素所在行的所有像素后,返回S2。
5.一种基于DAA直线表示的光栅化装置,其特征在于,包括:处理器;以及存储器,其中,所述存储器中存储有计算机可执行程序,当由所述处理器执行所述计算机可执行程序时,执行权利要求1-2中任一项所述的基于DAA直线表示的光栅化方法。
6.一种存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现如权利要求1-2中任一项所述的基于DAA直线表示的光栅化方法。
CN202210991806.6A 2022-08-18 2022-08-18 一种基于daa直线表示的光栅化方法、装置及存储介质 Active CN115063509B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210991806.6A CN115063509B (zh) 2022-08-18 2022-08-18 一种基于daa直线表示的光栅化方法、装置及存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210991806.6A CN115063509B (zh) 2022-08-18 2022-08-18 一种基于daa直线表示的光栅化方法、装置及存储介质

Publications (2)

Publication Number Publication Date
CN115063509A CN115063509A (zh) 2022-09-16
CN115063509B true CN115063509B (zh) 2022-11-22

Family

ID=83207662

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210991806.6A Active CN115063509B (zh) 2022-08-18 2022-08-18 一种基于daa直线表示的光栅化方法、装置及存储介质

Country Status (1)

Country Link
CN (1) CN115063509B (zh)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014023887A1 (fr) * 2012-08-10 2014-02-13 Real Fusio France Procédé de rendu d'image en temps réel

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110969567B (zh) * 2019-11-18 2023-09-19 中国航空工业集团公司西安航空计算技术研究所 一种gpu线图元光栅化平移坐标系扫描方法
GB2586087B (en) * 2019-12-23 2022-09-14 Imagination Tech Ltd Rasterising aliased lines
US20230394738A1 (en) * 2020-11-09 2023-12-07 Qualcomm Incorporated Rasterization of compute workloads

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014023887A1 (fr) * 2012-08-10 2014-02-13 Real Fusio France Procédé de rendu d'image en temps réel

Also Published As

Publication number Publication date
CN115063509A (zh) 2022-09-16

Similar Documents

Publication Publication Date Title
US9330495B2 (en) Extending DX11 GPU for programmable vector graphics
JP5270004B2 (ja) 3次元グラフィックスハードウェアを使用した2次元グラフィックスレンダリング中の頂点ポイントの廃棄
CN107003964B (zh) 处理未对准块传送操作
KR101033779B1 (ko) 확장된 버텍스 캐시를 갖는 그래픽스 프로세싱 유닛을 이용하여 이미지를 프로세싱하는 방법 및 장치
US6323874B1 (en) System and method for rendering an image
US20050259100A1 (en) Graphic processing apparatus, graphic processing system, graphic processing method and graphic processing program
JP2005100177A (ja) 画像処理装置およびその方法
CN104732479B (zh) 对图像进行调整大小
KR20080010356A (ko) 가속화된 개시 타일 검색
US10540789B2 (en) Line stylization through graphics processor unit (GPU) textures
US9626762B2 (en) Stochastic rasterization using enhanced stencil operations on a graphics processing unit (GPU)
JP7221679B2 (ja) グラフィックプロセッサ、及びその動作方法
KR102266962B1 (ko) 그래픽 파이프라인의 메모리 사용 감소를 위한 컴파일러 지원 기술
US10002448B2 (en) Producing glyph distance fields
JP5907930B2 (ja) 複数の画素をテクスチャ処理するための画像処理方法、プログラム及びグラフィック装置
EP3142074A1 (en) Method and apparatus for performing path stroking
US8040357B1 (en) Quotient remainder coverage system and method
US7081903B2 (en) Efficient movement of fragment stamp
CN116681860A (zh) 一种特征线渲染方法、装置、电子设备及存储介质
CN115063509B (zh) 一种基于daa直线表示的光栅化方法、装置及存储介质
US20220036631A1 (en) Method for performing shader occupancy for small primitives
JP3367506B2 (ja) 画像処理装置および画像処理方法
EP1988510B1 (en) Coordinate Computations for Non-Power of 2 Texture Maps
CN112837416A (zh) 基于三角剖分的多边形渲染方法、装置及存储介质
JP4042377B2 (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