一种低成本高速度的可程序化描绘器,其接收一组用以表示一三角形、割截平面(clipping plane)与裁剪区(scissoring box)的函数式来作为输入,并且在每个时脉周期产生数个张成空间(span)来作为输出。本发明专利技术并提供一种载入器(Loader),其将上述的输入的形式从一般形式转换成被一组边线产生器(Edge Generator)所接受的一特殊形式,其中,上述的被边线产生器所接受的受限定输入格式可提供上述的边线产生器有效率的硬件实作。
【技术实现步骤摘要】
本专利技术是关于一种描绘处理器(rasterizer),特别是关于加速转换由顶点所定义的影源(primitive)成为等效影像(equivalent image)的过程,其中,此等效影像是由能够被储存与处理成比特集合的像素图样所构成。
技术介绍
描绘显示(raster displays)一般用于电脑图形系统(computergraphics systems),这样的显示方式是将图形影像储存成由许多最小图像元素(即像素;pixels)所构成的点阵,这些最小图像元素被储存在显示缓冲区(display buffer)中,用以在屏幕上显示代表每一个像素的资料。上述的资料被用来具体指出每一个像素在屏幕上的显示属性,如像素的颜色及其亮度(intensity)。整个影像是由显示缓冲区中被读取,并且透过循序扫描像素资料的水平列(horizontal rows of pixel data)(或称“扫瞄线”(scan lines))的方式来显示于屏幕上。描绘显示系统(raster display systems)通常是以多边形作为基础堆砌方块(或称“影源”,primitives)来绘出复杂的影像。三角形是一种最常用于多边线形绘图系统的基本影源,此是由于因为三角形为最简单的多边线形且其他比三角形复杂的多边线形都能够以复数个三角形来组成。将三角形与其他几何影源绘于屏幕上的过程即被通称为“描绘”(rasterization)。在描绘中有一个重要部份是牵涉到决定哪些像素落在一个给定的三角形中,描绘系统一般是以许多方式由一点推进至另一点并同时决定是否“成像”(render)该点(亦即将该点成像至一个画面缓冲区(frame buffer)或像素映图(pixel map)中),其中,所绘入的每一像素皆为该给定的三角形的一部份。传统技术是以此种方式依次决定显示缓冲区中代表每一个像素的资料该如何来设定。目前已有许多的追踪(traverse)演算法被发展用来从一个像素推进另一个像素并据此使得三角形中所有的像素都能被涵盖。描绘系统有时是采用三个边线函式来表示一个三角形,每一个边线函式皆为表现一条直线的线等式,其是被套用以细部划分一个二维平面,以将平面中的每一个点归类于下列的三个区域中三角形内的区域、三角形外的区域或是正好位于直线上的区域。这样的边线函式分类方式具有下列的性质三角形内的点具有大于0的值、三角形外的点具有小于0的值、以及正位于直线上的点为0值。如图1A所示,在描绘的应用上,二维平面是由图形屏幕所呈现,所有点都被以个别的像素来表示,并且把边线函式套用来细部划分此图形屏幕。三角形是由三个边线的联集或由边线函式所区隔出来的特定的三个半平面所构成。同样地,更复杂的多边线形可以用超过三个边线的布林组合(Boolean combination)来定义。因为三角形在描绘时会涉及哪些像素需要被成像,通常决定的法则是以位于各边线上的像素来考量各像素是位于三角形内或是三角形外。如图1B所示,每一个像素都具有一组相关的边线变数集合(e0,e1与e2),这些边线变数是像素与相关三边线间正负距离(signed distance)的比例项,每一个边线变数的值是以三个边线函式相对于像素的位置来评估得知。值得注意的是,光观察e0,e1与e2的正负号(sign)便能得知像素是否落于三角形之内。在决定三角形内哪些点需要描述时,典型的描绘系统是依给定的像素与三边线函式来计算出边线变数(e0,e1与e2)的值,并利用增量值(Δeoutside,Δeinside等等)来得知相邻的像素。如此,描绘系统以现有的值加上增量值作为追踪演算法从一个点推进到另一个点来逐步地追踪出整个三角形。参考图1A,一条直线可由(X,Y)与(X+dX,Y+dY)来说明,据此,这条线能够被用来将一个二维空间切割为三个区域所有位于内部、外部与线上的点。边线f(x,y)可被定义为f(x,y)=(x-X)dY-(y-Y)dX,此函式具有一个有用的性质,那就是函式值能够用来表示点(x,y)与由点(X,Y)以及点(X+dX,Y+dY)所定义出来的边线之间的相对位置f(x,y)>0,假设(x,y)为“内部”;f(x,y)=0,假设(x,y)为位于线上;以及f(x,y)<0,假设(x,y)为“外部”。现有描绘系统一般使用这样的函式,因为它能够以f(x+,y)=f(x,y)+dY and f(x,y+1)=f(x,y)-dX的简单加法来增量运算。目前已经有许多不同的追踪演算法使用在不同描绘系统的成像程序(rendering process)上,只要是任何确定能够函盖三角形中所有的像素的演算法都能够被拿来利用。例如,一些沿着三角形的一侧(side)以水平或垂直张成空间(span)来识别出位于其中所有像素的解法。虽然上述的沿着三角形的一侧作计算的方法适用于处理三角的边线,但是如果三角形被一近平面或是远平面所截,则其边界将无法明确地知道此时上述的方法会很难实作。此外,其他的方法是以一次一个像素来做测试,以最近取得的几个像素来做平行测试以加速整个描绘的程序。一些传统描绘处理器(rasterizers)是采以张成空间为基础的像素产生法(span-based pixel generation),其中并利用了著名的Bresenham演算法为基础的边线与张成空间内插器(span interpolator)。描绘处理器的速度取决于内插器的速度,再者,描绘处理器需要复杂的设定程序。在大多数的情形下,这样的描绘处理器利用相应的硬件以内插许多相关的参数,如颜色、材质等等。要让这样的描绘处理器加速须要显著增加内插器的数量与复杂度,明显为一种不适用于商业产品的方法。在要支援剪辑的情况下,这种描绘处理器如果要有效来实做的话,其结构会过于复杂。另一种方法是使用以内部点与外部点的定义为基础的区域描绘处理器(area rasterizers),利用检查角落像素的等式值(corner pixels’equation values)来定义内部边界(inner borders)与外部区块(outerblocks)。这种方法可以加速内部区块(inner blocks)的比特遮罩(bit-masks)的产生,但是边界区块不是需要一个一个像素来处理,便是需要一定数量专用的硬件来平行处理这些像素。据此,一种能够在每个时脉周期内产生多张成空间,且兼顾低成本与高速度,同时具有简单制式结构的描绘处理器是有目前产业所追求的目标。
技术实现思路
本专利技术的目的在于,描述了一种低成本高速度的可程序化描绘处理器,此描绘处理器能够接受一组用来代表一个三角形、割截平面(clippingplans)以及一个剪裁区(scissoring box)的函数式(functional)来作为其输入,并且能在每个时脉周期产生多个张成空间来作为输出。本专利技术并提供一个载入器(loader)将上述的由一般形式所表示的输入转换成为一个由一组边线产生器能够接受的一特定格式所表示的展式。由此种可被边线产生器所接受的受限定输入格式,本专利技术能将上述的边线产生器有效地实作。本专利技术一种描绘的方法,其特征在于,该描绘的方法包含决定一线段与一边界区的交会点,该线段是以一函数式f(x,y)=a·x+b·y+c来表本文档来自技高网...
【技术保护点】
一种描绘的方法,其特征在于,该描绘的方法包含: 决定一线段与一边界区的交会点,该线段是以一函数式f(x,y)=a.x+b.y+c来表示;以及 执行一Bresenham步法,该Bresenham步法是沿着该线段的一部份来执行,该部份是落于边界区之中,并且该部份具有(a)一初始x座标x↓[0]与(b)另外一个或多个的x值递增的x座标; 其中该决定步骤与执行步骤包含使用一加法器,并且其中该决定步骤与执行步骤不包含使用一乘法器或除法器。
【技术特征摘要】
...
【专利技术属性】
技术研发人员:康士坦丁艾尔洽,柏瑞斯柏克潘克,提莫佩塔西,德瑞克格兰丁,
申请(专利权)人:威盛电子股份有限公司,
类型:发明
国别省市:71[中国|台湾]
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。