CN101661741B - 图形光栅扫描中的三角形遍历方法和装置 - Google Patents
图形光栅扫描中的三角形遍历方法和装置 Download PDFInfo
- Publication number
- CN101661741B CN101661741B CN2008101467716A CN200810146771A CN101661741B CN 101661741 B CN101661741 B CN 101661741B CN 2008101467716 A CN2008101467716 A CN 2008101467716A CN 200810146771 A CN200810146771 A CN 200810146771A CN 101661741 B CN101661741 B CN 101661741B
- Authority
- CN
- China
- Prior art keywords
- traversal
- triangle
- starting point
- pixel
- module
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/40—Filling a planar surface by adding surface attributes, e.g. colour or texture
Abstract
本发明公开了图形光栅扫描中的三角形遍历方法和装置。该方法包括:构造作为可以覆盖所述三角形的最小矩形像素框的边界框;基于所述边界框选择遍历所述三角形的遍历起点;基于所述遍历起点与所述三角形的位置关系选择遍历方向;以及从所述遍历起点沿所述遍历方向遍历所述三角形。其中,遍历所述三角形包括针对所述遍历起点和遍历方向基于所述三角形的边方程的斜率计算下一扫描起点。从而,本发明的三角形遍历方法和装置通过在遍历过程中尽可能的减少访问三角形外的像素,提高了效率。
Description
技术领域
本发明涉及图像显示方法和装置,更具体地说,本发明涉及图形光栅扫描中的三角形遍历方法和装置。
背景技术
图形光栅扫描过程是将几何图形(线,三角形,多边形......)映射成显示器上的像素的过程。三角形的很多十分有用的性质,(如三角形是凸多边形,三角形永远处于一个平面,可以很容易的通过三角形来构建复杂的多边形)使其成为图形学中最重要的几何图形。“三角形遍历”过程是用来找到所有位于三角形内部的像素。
边方程技术是三角形光栅扫描的基础。“边方程”指的是三角形三条边的直线方程。位于三角形内部的像素其三条边方程的值同时为正或同时为负。基于这个性质,边方程可以很方便的用来判断一个像素是否位于三角形内部。
目前已经提出的一些基于边方程的三角形遍历方法如下:三角形边界框遍历方法;后向追踪便利方法;Zigzag遍历方法。
以上方法均为基于行的扫描遍历方法。其基本思想都是首先构造三角形边界框,然后根据某种扫描顺序遍历整个边界框。
发明内容
在本发明的一个方面中,给出了一种图形光栅扫描中的三角形遍历方法。该方法包括以下步骤:构造作为可以覆盖三角形的最小矩形像素框的边界框;基于该边界框选择遍历三角形的遍历起点;基于该遍历起点与三角形的位置关系选择遍历方向;以及从该遍历起点沿该遍历方向遍历三角形。其中,遍历三角形的步骤包括针对遍历起点和遍历方向基于三角形的边方程的斜率计算下一扫描起点的步骤。
在本发明的另一个方面中,给出了一种用于图形光栅扫描中的三角形遍历的装置。该装置包括:准备模块104,接收三角形的顶点坐标,根据顶点坐标计算三角形的边方程的系数、构造三角形的边界框、选择遍历起点和遍历方向;以及遍历模块105,根据来自所述准备模块104的所述边方程的系数、所述遍历起点和遍历方向,遍历所述三角形。在所述遍历过程中,所述遍历模块105针对所述遍历起点和遍历方向,基于所述三角形的边方程的斜率计算下一扫描起点。
本发明的三角形遍历方法和装置通过在遍历过程中尽可能的减少访问三角形外的像素,从而提高了效率。
附图说明
图1示出了用于绘制三角形的系统的框图;
图2概括示出了根据本发明的三角形遍历方法的流程图;
图3详细示出了图1中的系统的准备模块104和遍历模块105;
图4示出了一个三角形边界框的示例;
图5示出了构造三角形边界框的方法的流程图;
图6示出了四种情况下选择的扫描起点;
图7示出了选择扫描起始点的方法的流程图;
图8示出了两种不同情况下选择的扫描方向;
图9示出了一个三角形的完整扫描的示例;以及
图10示出了在各种情况下计算下一个扫描行/列的扫描起点的流程图。
具体实施方式
在下面对本发明的具体实施方式的详细描述中阐述了很多具体细节,以便于充分理解本发明。但是,没有这些具体细节也可以实施本发明,对于本领域的技术人员来说是很明显的。
三角形遍历方法的效率主要取决于遍历位于三角形外的像素的代价,本发明提出的方法就是希望在遍历过程中尽可能的减少访问三角形外的像素。
图1示出了用于绘制三角形的系统的框图。该系统包括顶点存储器101、变换模块102、投影模块103、准备模块104、遍历模块105、帧缓冲器106和显示器107。
首先,关于对象坐标的顶点信息被从顶点存储器读取到变换模块102。然后,在变换模块102和投影模块103中,对顶点的坐标进行变换,,并且将经过顶点坐标变换后的三角形投影到设备坐标。准备模块104和遍历模块105利用设备坐标计算哪些像素在三角形内,并且还计算这些像素的参数(例如,颜色、纹理)。然后,参数被写入到帧缓冲器106中,显示器107根据帧缓冲器107中的内容进行显示。
图2概括示出了根据本发明的三角形遍历方法的流程图。本发明的遍历方法首先在步骤S201中创建边界框,然后在步骤S202中挑选遍历起点,在步骤S203中挑选遍历方向,然后在步骤S204中遍历该三角形。
下面将对本发明的三角形遍历方法和装置进行更详细地描述。
图3详细示出了图1中的准备模块104和遍历模块105。准备模块104包括边方程计算模块301、边界框构造模块302、遍历起点和方向选择模块303。遍历模块105包括扫描起点登记模块304、扫描模块305、下一起点计算模块306、绘制判定模块307和参数计算模块308。
准备模块104中的边方程计算模块301从投影模块103接收三角形的三个顶点的坐标V0(x0,y0)、V1(x1,y1)、V2(x2,y2),其中,(xi,yi),i=0、1、2均为浮点值。并且三个顶点V0、V1、V2按顺时针排列。根据这三个顶点坐标,边方程计算模块301计算出该三角形的三条边的边方程:
e0(x,y)=a0*x+b0*y+c0;
e1(x,y)=a1*x+b1*y+c1;
e2(x,y)=a2*x+b2*y+c2。
准备模块104中的边界框构造模块302根据从投影模块103接收到的三角形的三个顶点的坐标,构造该三角形的边界框。三角形边界框是可以覆盖三角形的最小矩形像素框,由该矩形像素框的四个顶点像素坐标(xmin,ymin)、(xmin,ymax)、(xmax,ymin)和(xmax,ymax)表示。
图4示出了三角形边界框的一个例子。下面结合图4的示例描述三角形边界框的构造过程。三角形201的三个顶点的坐标分别为(x0,y0)、(x1,y1)、(x2,y2)。根据这三个顶点坐标,得到中间值:
fxmin=min(x0,x1,x2),fxmax=max(x0,x1,x2),
fymin=min(y0,y1,y2),fymax=max(y0,y1,y2)
其中min(),max()函数返回三个变量的最大值和最小值。fxmin、fxmax、fymin和、fymax均为浮点数。
由于像素点203位于整数位置,所以需要对上述中间值取整:
xmin=ceil(fxmin),xmax=floor(fxmax),
ymin=ceil(fymin),ymax=floor(fymax)
其中ceil(float a)函数返回不小于a的最小整数,如ceil(1.5)=2。floor(float a)函数返回不大于a的最大整数,如floor(1.5)=1。
尽管图4的示例没有示出,但是,由于三角形的三个顶点可能位于显示平面之外,因此需要进行裁剪操作。假设显示平面的范围为[clip_xmin,clip_xmax]、[clip_ymin,clip_ymax],则:
if(xmin<clip_xmin)xmin=clip_xmin;
if(ymin<clip_ymin)ymin=clip_ymin;
if(xmax>clip_xmax)xmax=clip_xmax;
if(ymax>clip_ymax)ymax=clip_ymax。
经过以上过程,得到了三角形边界框的四个顶点像素的坐标(xmin,ymin)、(xmin,ymax)、(xmax,ymin)和(xmax,ymax)。
准备模块104中的遍历起点和方向选择模块303根据边方程计算模块301计算的三角形的边方程和边界框构造模块302构造的边界框,判定扫描起始点和扫描方向。
具体而言,遍历起点和方向选择模块303按照图5所示的过程,利用来自边界框构造模块302的fxmin、fxmax、fymin和、fymax,从边界框构造模块302计算出的边界框的四个顶点(xmin,ymin)、(xmin,ymax)、(xmax,ymin)和(xmax,ymax)中选择遍历起点。遍历起点为三角形边界框的四个顶点(xmin,ymin)、(xmin,ymax)、(xmax,ymin)和(xmax,ymax)(左上,左下,右上,右下)之一,具体取决于三角形的顶点坐标以及三角形边界框的顶点坐标之间关系,如下所述:
if((x0==fxmin&&y0==fymin)‖(x1==fxmin&&y1==fymin)‖(x2==fxmin&&y2==fymin))start_pos=top_left;(步骤S501、S502)
else if((x0==fxmax&&y0==fymin)‖(x1==fxmax&&y1==fymin)‖(x2==fxmax&&y2==fymin))start_pos=top_right;(步骤S503、S504)
else if((x0==fxmin&&y0==fymax)‖(x1==fxmin&&y1==fymax)‖(x2==fxmin&&y2==fymax))start_pos=bottom_left;(步骤S505、S506)
else if((x0==fxmax&&y0==fymax)‖(x1==fxmax&&y1==fymax)‖(x2==fxmax&&y2==fymax))start_pos=bottom_right(步骤S507、S508)。
图6示出了四种情况下选择的扫描起点的示例。图6的(a)、(b)、(c)和(d)分别示出了与图5中的分支S502、S504、S506和S508的情形。
尽管在图5的图示中,按照一定的顺序(左上、右上、左下、右下)来选择遍历起点。但是,也可以按照其他顺序来选择遍历起点。在图6的图示中,只示出了仅一个顶点与边界框的顶点所代表的像素点重合的三角形作为示例,但是,三角形的多个顶点与边界框的顶点所代表的像素点重合也是可以的。
直观地说,裁剪前的边界框至少有一个顶点像素与三角形的顶点重合。如果在构造边界框时未经过裁剪操作,则遍历起点是边界框的四个顶点像素中与三角形的顶点重合的顶点像素之一。如果经过了裁剪操作,则遍历起点是边界框的四个顶点像素中这样的一个像素点,该像素点与边界框在经过裁剪操作之前的四个顶点中与三角形的顶点重合的顶点之一相对应。
遍历起点和方向选择模块303还根据从边方程计算模块301接收到的边方程系数和从边界框构造模块302接收到的边界框的四个顶点(xmin,ymin)、(xmin,ymax)、(xmax,ymin)和(xmax,ymax),选择遍历方向。存在两个可能的遍历方向:水平(行)方向和垂直(列)方向。如果遍历起点所在的水平行内存在三角形内部的像素,则遍历方向为水平方向,否则遍历方向为垂直方向。
通过遍历起点相对于三角形的位置,可以判定遍历起点所在的水平行内是否存在三角形内部的像素。遍历起点相对于三角形的位置可以通过三角形的三个边方程在遍历起点处的值得到。当一个像素位于三角形外,三个边方程在该像素处的值可以用来确定该像素位于三角形的左/右/上/下。
下述四个函数InLeftTriangle(x,y)、InRightTriangle(x,y)、InTopTriangle(x,y)和InBottomTriangle(x,y)用于判断像素p(x,y)和三角形之间的位置关系:
(1)InLeftTriangle(x,y)
{if((e0(x,y)<0&&a0>=0)‖(e1(x,y)<0&&a1>=0)‖(e2(x,y)<0&&a2>=0))returntrue;
else return false;}
(2)InRightTriangle(x,y)
{if((e0(x,y)<0&&a0<=0)‖(e1(x,y)<0&&a1<=0)‖(e2(x,y)<0&&a2<=0))returntrue;
else returnfalse;}
(3)InTopTriangle(x,y)
{if((e0(x,y)<0&&b0<=0)‖(e1(x,y)<0&&b1<=0)‖(e2(x,y)<0&&b2<=0))returntrue;
else return false;}
(4)InBottomTriangle(x,y)
{if((e0(x,y)<0&&b0>=0)‖(e1(x,y)<0&&b1>=0)‖(e2(x,y)<0&&b2>=0))returntrue;
else return false;}。
图7示出了针对不同的遍历起点,利用上述函数根据边界框的四个顶点来选择遍历方向的流程图。图7中的步骤S701、S705、S709、S713分别给出了遍历起点的四种情况。在步骤S702-S704、S706-S708、S710-S712和S714-S716这四个分支中,针对上述四种情况进行判定,从而得到遍历方向。
图8的(a)和(b)给出了利用图7的过程得到的遍历方向的两个示例。在图8(a)中,根据图7中的步骤S701、S702和S704,得到遍历方向为水平方向。在图8(b)中,根据图7中的步骤S701-S703,得到遍历方向为垂直方向。
同于,图7中对遍历起点进行检查来选择遍历方向的顺序和图8中的图示都仅是示例性的。可以采用与图7所示顺序不同的顺序,也存在与图8中的示例不同的三角形。
此时,准备模块104已计算出了边方程、遍历起点和遍历方向。遍历模块105将根据准备模块104准备好的信息,对三角形进行遍历。
遍历模块105中的起点登记模块304首先从准备模块104中的遍历起点和方向选择模块303接收遍历起点,并且将该遍历起点登记为当前扫描起点。扫描模块305接收来自起点登记模块304的当前扫描起点和来自准备模块104中的遍历起点和方向选择模块303的遍历方向,然后从该当前扫描起点开始,按照该遍历方向对三角形进行遍历。在遍历过程中,通过自适应地调整每行/列的扫描起点,从而尽可能减少访问三角形外的像素,提高遍历速度。
在扫描过程中,扫描模块305将扫描到的像素发送给绘制判定模块307。绘制判定模块307判断该像素是否在三角形内。如果三角形的三个边方程在该像素点的坐标处的值均为正,则可以判断出该点在三角形内。绘制判定模块307将从扫描模块305接收到的当前行/列中第一个位于三角形内的像素点发送到下一起点计算模块306。如果在当前行/列中没有找到第一个位于三角形内的像素点,则判定整个遍历过程结束,并向扫描模块305发送遍历结束指令。
绘制判定模块307针对从扫描模块305接收到的每个像素点p(x,y),还判断是否结束当前行/列的扫描。如果判断不结束当前行/列的扫描,则将该像素点p(x,y)发送给参数计算模块308。如果判断结束当前行/列的扫描,则向扫描模块305发送结束当前行/列的指令。
在像素p(x,y)满足下述条件之一时,绘制判定模块307判断结束当前行/列的扫描过程。
I.(start_pos==top_left‖start_pos==bottom_left)&&(direction==horizontal)&&(InRightTriangle(x,y)==true);
II.(start_pos==top_right‖start_pos==bottom_right)&&(direction==horizontal)&&(InLeftTriangle(x,y)==true);
III.(start_pos==top_left‖start_pos==top_right)&&(direction==vertical)&&(InBottomTriangle(x,y)==true);
IV.(start_pos==bottom_left‖start_pos==bottom_right)&&(direction==vertical)&&(InTopTriangle(x,y)==true)。
下一起点计算模块306每从绘制判定模块307接收到一个像素点,就计算下一行/列的扫描起点。下一行/列的扫描起点是根据三角形的边方程的斜率自适应地确定的。即,通过计算当前行/列和前一行/列中第一个三角形内部像素点之间的距离来得到下一个扫描行/列的起始点
图9示出了遍历一个三角形的完整扫描的示例,用于直观地说明如何选择下一扫描起点和本发明的扫描方法。在图9中,遍历起点为左上角像素点,遍历方向为水平方向。第一扫描行的扫描起点为遍历起点。令当前扫描行的第一个三角形内像素点的坐标为(xc,yc),前一扫描行的第一个三角形内像素点的坐标为(xp,yp),则下一扫描行的扫描起点(xn,yn)计算方法如下:
delta_x=xc-xp-1;
delta_y=1;
xn=xc+delta_x;
yn=yc+delta_y。
类似地,针对相对于三角形处于不同位置的遍历起点和不同遍历方向的组合,都可以根据三角形的边方程的斜率来自适应地选择下一扫描行/列的扫描起点。
图10示出了在各种情况下计算下一个扫描行/列的扫描起点的流程图。图中的4个分支S1001-S1007、S1008-S1014、S1015-S1021和S1022-S1027分别针对扫描起点和遍历方向的4种不同的组合,用于计算下一行/列的扫描起点。
从图可见,如果遍历方向为水平方向,delta_x是xc和xp之间的距离。如果xc=xp,则delta_x为0,否则delta_x等于|xc-xp|-1。delta_y取决于遍历起点在边界框的顶行还是底行。如果遍历起点在顶行,delta_y为1,否则delta_y为-1。
如果遍历方向为垂直方向,delta_y是yc和yp之间的距离。如果yc=yp,则delta_y为0,否则delta_y等于|yc-yp|-1。delta_x取决于遍历起点在边界框的左边还是右边。如果遍历起点在左边,delta_x为1,否则delta_x为-1。
图10中示出的4个分支的顺序仅是示例性的,其他顺序也是可以的。
根据上述方法,下一起点计算模块306计算出下一扫描行/列的扫描起点,并且发送给起点登记模块304。起点登记模块304将从下一起点计算模块306接收到的该扫描起点登记为当前扫描起点。
当扫描模块305从绘制判定模块307接收到当前行/列结束的指令时,从起点登记模块304获得前述已登记的当前扫描起点,开始扫描下一行/列。
该扫描过程被一直重复,直到遍历过程结束。
参数计算模块308针对从绘制判定模块307接收到的每个像素点p(x,y),根据颜色、纹理坐标等来计算参数。然后,计算出的参数与相关像素点被发送给帧缓冲器106。
以上描述了本发明的优选实施例。尽管在特定实施例中描述了本发明,本发明也可以以硬件、软件、固件或其结合的形式实现,并可以应用在系统、子系统及其部件或子部件中。当以软件实现时,本发明的元件基本上是代码段以完成必要的任务。
Claims (21)
1.一种图形光栅扫描中的三角形遍历方法,包括以下步骤:
构造作为可以覆盖所述三角形的最小矩形像素框的边界框;
基于所述边界框选择遍历所述三角形的遍历起点;
基于所述遍历起点与所述三角形的位置关系选择遍历方向;以及
从所述遍历起点沿所述遍历方向遍历所述三角形,
其中,遍历所述三角形的步骤包括针对所述遍历起点和遍历方向基于所述三角形的边方程的斜率计算下一扫描起点的步骤。
2.如权利要求1所述的三角形遍历方法,其中,
如果所述边界框未经裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与所述三角形的顶点重合的顶点像素之一,
如果所述边界框经过了裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与下述顶点相对应的顶点像素:所述边界框在经过裁剪操作之前的四个顶点中与所述三角形的顶点重合的顶点之一。
3.如权利要求1所述的三角形遍历方法,其中,所述遍历方向是从所述遍历起点起沿水平方向或垂直方向在所述三角形内存在像素点的方向之一。
4.如权利要求1所述的三角形遍历方法,其中,遍历所述三角形的步骤还包括找到当前行或列中沿所述遍历方向上的第一个三角形内像素点的步骤。
5.如权利要求4所述的三角形遍历方法,其中,所述斜率是利用当前行和前一行中的所述第一个三角形内像素点之间的距离或当前列和前一列中的第一个三角形内像素点之间的距离计算出的。
6.如权利要求1所述的三角形遍历方法,遍历所述三角形的步骤还包括判定结束当前行或列的步骤,在该步骤中,如果当前行或列中前一个像素点在所述三角形内而当前像素点在所述三角形外,则结束当前行或列。
7.如权利要求1所述的三角形遍历方法,其中,遍历所述三角形的步骤还包括,如果所述遍历方向上不存在在所述三角形内的像素点则结束遍历的步骤。
8.一种用于图形光栅扫描中的三角形遍历的设备,包括:
用于构造作为可以覆盖所述三角形的最小矩形像素框的边界框的装置;
用于基于所述边界框选择遍历所述三角形的遍历起点的装置;
用于基于所述遍历起点与所述三角形的位置关系选择遍历方向的装置;以及
用于从所述遍历起点沿所述遍历方向遍历所述三角形的装置,
其中,用于遍历所述三角形的装置包括用于针对所述遍历起点和遍历方向基于所述三角形的边方程的斜率计算下一扫描起点的装置。
9.如权利要求8所述的设备,其中,
如果所述边界框未经裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与所述三角形的顶点重合的顶点像素之一,
如果所述边界框经过了裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与下述顶点相对应的顶点像素:所述边界框在经过裁剪操作之前的四个顶点中与所述三角形的顶点重合的顶点之一。
10.如权利要求8所述的设备,其中,所述遍历方向是从所述遍历起点起沿水平方向或垂直方向在所述三角形内存在像素点的方向之一。
11.如权利要求8所述的设备,其中,用于遍历所述三角形的装置还包括用于找到当前行或列中沿所述遍历方向上的第一个三角形内像素点的装置。
12.如权利要求11所述的设备,其中,所述斜率是利用当前行和前一行中的所述第一个三角形内像素点之间的距离或当前列和前一列中的第一个三角形内像素点之间的距离计算出的。
13.如权利要求8所述的设备,其中,用于遍历所述三角形的装置还包括用于判定结束当前行或列的装置,在该装置中,如果当前行或列中前一个像素点在所述三角形内而当前节点在所述三角形外,则结束当前行或列。
14.如权利要求8所述的设备,其中,用于遍历所述三角形的装置还包括用于如果所述遍历方向上不存在在所述三角形内的像素点则结束遍历的装置。
15.一种用于图形光栅扫描中的三角形遍历的装置,包括:
准备模块(104),接收所述三角形的顶点坐标,根据所述顶点坐标计算所述三角形的边方程的系数、构造所述三角形的边界框、选择遍历起点和遍历方向;以及
遍历模块(105),根据来自所述准备模块(104)的所述边方程的系数、所述遍历起点和遍历方向,遍历所述三角形,
其中,在所述遍历过程中,所述遍历模块(105)针对所述遍历起点和遍历方向,基于所述三角形的边方程的斜率计算下一扫描起点。
16.如权利要求15所述的装置,其中,所述准备模块(104)包括:
边方程计算模块(301),根据所述顶点坐标,计算所述边方程的系数;
边界框构造模块(302),根据所述顶点坐标,构造作为可以覆盖所述三角形的最小矩形像素框的边界框;以及
遍历起点和方向选择模块(303),基于所述边界框选择遍历所述三角形的遍历起点,并且基于所述遍历起点和所述边方程的系数选择遍历方向。
17.如权利要求16所述的装置,其中,
如果所述边界框未经裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与所述三角形的顶点重合的顶点像素之一,
如果所述边界框经过了裁剪操作,则所述遍历起点是所述边界框的四个顶点像素中与下述顶点相对应的顶点像素:所述边界框在经过裁剪操作之前的四个顶点中与所述三角形的顶点重合的顶点之一。
18.如权利要求16所述的装置,其中,所述遍历方向是从所述遍历起点起沿水平方向或垂直方向在所述三角形内存在像素点的方向之一。
19.如权利要求16所述的装置,其中,所述遍历模块(105)包括起点登记模块(304)、扫描模块(305)、下一起点计算模块(306)和绘制判定模块(307),其中
所述起点登记模块(304)将来自所述遍历起点和方向选择模块(303)的遍历起点和所述下一起点计算模块(306)计算出的下一扫描起点登记为扫描起点;
所述扫描模块(305),
接收来自所述起点登记模块(304)的扫描起点、来自所述遍历起点和方向选择模块(303)的遍历方向、以及来自所述绘制判定模块(307)的当前行或列结束指令,遍历所述三角形,
将扫描到的像素点发送给所述绘制判定模块(307),并且
接收来自所述绘制判定模块(307)的遍历结束指令,结束所述遍历;
所述下一起点计算模块(306)利用当前行和前一行中的第一个三角形内像素点之间的距离或当前列和前一列中的所述第一个三角形内像素点之间的距离计算所述斜率;并且
所述绘制判定模块(307),
接收来自所述边方程计算模块(301)的所述边方程的系数和来自所述扫描模块(305)的像素点,找到当前行或列中的第一个三角形内像素点并发送给所述下一起点计算模块(306),
判定是否结束当前行或列、以及是否结束遍历所述三角形,并且
还判定是否绘制所扫描到的像素。
20.如权利要求19所述的装置,其中,所述绘制判定模块(307)在当前行或列中前一个像素点在所述三角形内而当前节点在所述三角形外的情况下判定结束当前行或列。
21.如权利要求19所述的装置,其中,所述绘制判定模块(307)在所述遍历方向上不存在在所述三角形内的像素点的情况下判定结束遍历所述三角形。
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101467716A CN101661741B (zh) | 2008-08-29 | 2008-08-29 | 图形光栅扫描中的三角形遍历方法和装置 |
JP2009188003A JP5423231B2 (ja) | 2008-08-29 | 2009-08-14 | グラフィックラスタライゼーションにおける三角形トラバース方法及び装置 |
US12/461,554 US20100066744A1 (en) | 2008-08-29 | 2009-08-14 | Method and apparatus for triangle traversal process in graphic rasterization |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2008101467716A CN101661741B (zh) | 2008-08-29 | 2008-08-29 | 图形光栅扫描中的三角形遍历方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101661741A CN101661741A (zh) | 2010-03-03 |
CN101661741B true CN101661741B (zh) | 2012-02-22 |
Family
ID=41789715
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2008101467716A Expired - Fee Related CN101661741B (zh) | 2008-08-29 | 2008-08-29 | 图形光栅扫描中的三角形遍历方法和装置 |
Country Status (3)
Country | Link |
---|---|
US (1) | US20100066744A1 (zh) |
JP (1) | JP5423231B2 (zh) |
CN (1) | CN101661741B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109346028A (zh) * | 2018-11-14 | 2019-02-15 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8422782B1 (en) * | 2010-09-30 | 2013-04-16 | A9.Com, Inc. | Contour detection and image classification |
US9633458B2 (en) * | 2012-01-23 | 2017-04-25 | Nvidia Corporation | Method and system for reducing a polygon bounding box |
WO2014185900A1 (en) * | 2013-05-15 | 2014-11-20 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US10217272B2 (en) * | 2014-11-06 | 2019-02-26 | Intel Corporation | Zero-coverage rasterization culling |
KR101671180B1 (ko) | 2014-12-30 | 2016-11-02 | 한국에너지기술연구원 | 중온 산소 선택성 흡착제 및 이의 제조방법 |
US9922449B2 (en) | 2015-06-01 | 2018-03-20 | Intel Corporation | Apparatus and method for dynamic polygon or primitive sorting for improved culling |
CN106371780B (zh) * | 2015-07-22 | 2019-08-13 | 龙芯中科技术有限公司 | 矢量图形处理方法和装置 |
US9959643B2 (en) | 2015-10-29 | 2018-05-01 | Intel Corporation | Variable rasterization order for motion blur and depth of field |
US20190035049A1 (en) * | 2017-07-31 | 2019-01-31 | Qualcomm Incorporated | Dithered variable rate shading |
CN109584334B (zh) * | 2018-11-14 | 2023-04-07 | 西安翔腾微电子科技有限公司 | 一种基于uml的三角形光栅化扫描结构及光栅化扫描方法 |
CN111337939A (zh) * | 2018-12-19 | 2020-06-26 | 上海蔚来汽车有限公司 | 一种矩形物体外边框的估计方法及装置 |
CN109741433B (zh) * | 2019-01-08 | 2023-05-05 | 西安邮电大学 | 一种基于Tile的三角形多向并行扫描方法及结构 |
CN116078703B (zh) * | 2023-04-10 | 2023-07-07 | 浙江工业大学 | 一种航空用导管弯曲精度自动补偿方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508628A (zh) * | 2002-12-16 | 2004-06-30 | 中国科学院电工研究所 | 图形发生器 |
JP2007241878A (ja) * | 2006-03-10 | 2007-09-20 | Toshiba Corp | 描画装置、描画方法及び描画プログラム |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH064679A (ja) * | 1992-06-24 | 1994-01-14 | Toshiba Corp | イメージ処理装置 |
US6285376B1 (en) * | 1994-09-28 | 2001-09-04 | Samsung Electronics Co., Ltd. | Triangle traversing method and a rasterizer adopting the same |
US6646639B1 (en) * | 1998-07-22 | 2003-11-11 | Nvidia Corporation | Modified method and apparatus for improved occlusion culling in graphics systems |
JP2000298729A (ja) * | 1999-04-13 | 2000-10-24 | Matsushita Electric Ind Co Ltd | 二次元画像生成装置 |
US6504542B1 (en) * | 1999-12-06 | 2003-01-07 | Nvidia Corporation | Method, apparatus and article of manufacture for area rasterization using sense points |
US6636218B1 (en) * | 2000-06-30 | 2003-10-21 | Intel Corporation | Title-based digital differential analyzer rasterization |
US6714196B2 (en) * | 2000-08-18 | 2004-03-30 | Hewlett-Packard Development Company L.P | Method and apparatus for tiled polygon traversal |
US7081903B2 (en) * | 2001-12-12 | 2006-07-25 | Hewlett-Packard Development Company, L.P. | Efficient movement of fragment stamp |
US7301537B2 (en) * | 2002-12-20 | 2007-11-27 | Telefonaktiebolaget Lm Ericsson (Publ) | Graphics processing apparatus, methods and computer program products using minimum-depth occlusion culling and zig-zag traversal |
US7800631B2 (en) * | 2003-03-18 | 2010-09-21 | Qualcomm Incorporated | Triangle rendering using direct evaluation |
JP4064339B2 (ja) * | 2003-12-19 | 2008-03-19 | 株式会社東芝 | 描画処理装置、描画処理方法および描画処理プログラム |
US7551174B2 (en) * | 2003-12-23 | 2009-06-23 | Via Technologies, Inc. | Method and apparatus for triangle rasterization with clipping and wire-frame mode support |
JP4199159B2 (ja) * | 2004-06-09 | 2008-12-17 | 株式会社東芝 | 描画処理装置、描画処理方法、及び描画処理プログラム |
JP4327105B2 (ja) * | 2005-01-25 | 2009-09-09 | 株式会社ソニー・コンピュータエンタテインメント | 描画方法、画像生成装置、および電子情報機器 |
-
2008
- 2008-08-29 CN CN2008101467716A patent/CN101661741B/zh not_active Expired - Fee Related
-
2009
- 2009-08-14 JP JP2009188003A patent/JP5423231B2/ja not_active Expired - Fee Related
- 2009-08-14 US US12/461,554 patent/US20100066744A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1508628A (zh) * | 2002-12-16 | 2004-06-30 | 中国科学院电工研究所 | 图形发生器 |
JP2007241878A (ja) * | 2006-03-10 | 2007-09-20 | Toshiba Corp | 描画装置、描画方法及び描画プログラム |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109346028A (zh) * | 2018-11-14 | 2019-02-15 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
CN109346028B (zh) * | 2018-11-14 | 2021-03-23 | 西安翔腾微电子科技有限公司 | 一种基于tlm的三角形光栅化扫描结构 |
Also Published As
Publication number | Publication date |
---|---|
US20100066744A1 (en) | 2010-03-18 |
CN101661741A (zh) | 2010-03-03 |
JP2010055611A (ja) | 2010-03-11 |
JP5423231B2 (ja) | 2014-02-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101661741B (zh) | 图形光栅扫描中的三角形遍历方法和装置 | |
US10429193B2 (en) | Method and apparatus for generating high precision map | |
CN100470452C (zh) | 一种实现三维增强现实的方法及系统 | |
JP4199159B2 (ja) | 描画処理装置、描画処理方法、及び描画処理プログラム | |
US20190311486A1 (en) | Method, system and apparatus for correcting translucency artifacts in data representing a support structure | |
JP5765026B2 (ja) | 画像処理装置及びプログラム | |
CN111399507B (zh) | 确定栅格地图中边界线的方法、划分栅格地图的方法 | |
US11209277B2 (en) | Systems and methods for electronic mapping and localization within a facility | |
CN103473799A (zh) | 一种图片的动态处理方法及装置、终端设备 | |
US20150332474A1 (en) | Orthogonal and Collaborative Disparity Decomposition | |
US20100104194A1 (en) | Image processing apparatus, electronic medium, and image processing method | |
EP2315180A2 (en) | Tile-based rendering apparatus and method | |
CN100530241C (zh) | 曲线绘制装置、曲线绘制方法、停车支持装置和车辆 | |
US10728522B2 (en) | Control device for a camera apparatus, camera arrangement and method for the stereoscopic recording of a monitoring area | |
CN101739703B (zh) | 用于对三角形进行栅格化的方法和系统 | |
CN114494323A (zh) | 一种障碍物检测方法、装置、设备及存储介质 | |
CN113936137A (zh) | 一种去除图像型文本行检测区域重叠的方法、系统及存储介质 | |
CN113658288B (zh) | 一种多边形数据矢量切片生成及显示的方法 | |
US11593915B2 (en) | Parallax-tolerant panoramic image generation | |
CN101739696A (zh) | 用于对凸多边形进行栅格化的系统及方法 | |
CN103440486A (zh) | 一种图像中标牌尺度的检测方法及系统 | |
CN102543040B (zh) | 用在图形光栅扫描中的凸多边形插值方法和系统 | |
JP5512715B2 (ja) | エッジ検出装置、及びエッジ検出方法 | |
JP5151946B2 (ja) | 描画装置 | |
CN101753767B (zh) | 用在图形光栅扫描中的凸多边形遍历方法和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20120222 Termination date: 20150829 |
|
EXPY | Termination of patent right or utility model |