三维绘图装置的制作方法

文档序号:6654852阅读:179来源:国知局
专利名称:三维绘图装置的制作方法
技术领域
本发明涉及一种电脑绘图装置,特别是将一部份的绘图内存作为几何引擎的资料缓冲器的三维绘图加速器。


图1为一整合的三维绘图控制装置(integrated 3D graphicscontroller device)的方块图,本装置包括指令序列(command queue)11,二维绘图引擎(2D graphics engine)13,以及包含有几何引擎(geometryengine)14与彩现引擎(rendering engine)15的三维绘图引擎(3Dgraphics engine)。由电脑系统(未图示)的AGP或PCI汇流排(bus)114下达二维或三维的绘图指令。二维绘图引擎13或彩现引擎15的输出被传送至一绘图内存(graphics memory)17内的本地像框缓冲器(Local FrameBuffer-LFB)处171。
一般说来,二维绘图引擎13为一个字节区块传送(bit blocktransfer-BitBlt)的绘图引擎。从现有技术可知,二维绘图引擎13会选择性地进行光域运算(raster operation)、矩形填充(rectangle fill)、色彩/字形扩张(color/font expansion)、具有图案设计的线条绘制(line-drawing with styled pattern)、矩形修剪(rectangle clipping)、透明的字节区块传送(transparent BitBlt)、多重扫描线绘图(multiplescan line drawing)、及梯形填充(trapezoid fill)。特别的是,字节区块传送会将一区块的资料由某一处(出发点)传送至另一处(目的地)。字节区块传送基本上分为三种由主内存(host memory)传送至显示内存(display memory)、由显示内存传送至主内存、以及由显示内存的某处传送至显示内存的另一处。光域运算会对绘图资料进行逻辑运算(logicaloperations)或算术运算(arithmetic operations)。我们都知道微软(Microsoft)共定义有256种光域运算。
如前所述,三维绘图引擎由几何引擎14与彩现引擎15所构成。根据现有技术,几何引擎14接收信号线(signal line)110上的三维物体的资料,也就是座标、颜色、Z轴深度等等,并选择性地进行浮点运算(floatingpoint operation),其中包括由转换电路(transformation circuitry)执行的座标转换,及由打光电路(lighting circuitry)执行的色彩打光。几何引擎14的输出142包括与一标的(object)的三角形(triangle)有关的资料,也就是其顶点座标、颜色、Z轴深度等等。如熟悉电脑绘图这项技术的人士所知,一绘图标的在绘图过程中是被分割成许多小三角形或其他形式(四角形)的绘图元件来代表此一绘图标的,然后所有的绘图处理都是以这些小三角形进行的,而每一个三角形具有三个顶点。
另外,彩现引擎15亦针对每一个三角形进行由建构引擎(setupengine)执行的三角形设定运算(setup operation),及由光域引擎执行的光域运算。建构引擎负责计算并准备基本图元(primitive)绘图所需的所有参数。所有的计算都涉及了数以百计的加减乘除。一旦三角形的建构运算完成后,建构引擎会将这所有的参数传送至下游的光域引擎。
光域引擎为一管线结构(pipeline structure)的引擎,其包含色度引擎(shading engine)、纹理引擎(texture engine)、及后处理引擎(postengine)。色度引擎会选择性地进行实体色度效应(solid shading)、平面色度效应(flat shading)、及高劳得色度效应(Gouraud shading)。色度引擎的输出为一连串的像素(pixel)色彩,像素色彩代表基本图元的色度,基本图元包含三角形。纹理引擎负责在像素上加入纹理的色泽。而后处理引擎则为此像素执行如雾化(fogging)、α混合(alpha blending)、混色(dithering)、及最终光域运算(final raster operation)等等。
如图1,当失能信号(disable signal)140触发后,几何引擎14被失能,而所有关于几何引擎的运算则由电脑系统中的中央处理单元(CPU)来进行。在过去,由于半导体制造技术的限制,几何引擎14本身即为一集成芯片(integrated chip),而彩现引擎15为另外一集成芯片。举例来说,现有技术的个人电脑的绘图加速器内的绘图芯片仅包括彩现引擎15。在这样的配置情况下,中央处理单元(未图示)必须当作几何引擎来运作。
然而,由于半导体制造技术的改进,将彩现引擎15及几何引擎14统合至一个继承芯片中已成为现今的趋势。统合的结果改善了系统的三维绘图的能力,并减少了中央处理单元的工作量。
如图1,指令序列11的运作为,除非在未执行的二维绘图指令前所下达的三维绘图指令完全处理完毕,否则其内的二维绘图指令并不会由指令序列11发出,并经由信号线112传送至二维绘图引擎13。该指令选出的机制用于维持指令的正确顺序;换句话说,二维绘图引擎与三维绘图引擎共用同一个指令序列11,但在某一特定时刻只有单一引擎处于可活动状态。此方法可保证命令执行次序的正确性。
当几何引擎14致能时,彩现引擎15通过信号线142由几何引擎14获得关于三角形顶点的资料。当几何引擎14失能时,中央处理单元便进行几何引擎的功能,而彩现引擎15通过信号线110由指令序列11获得关于三角形顶点的资料。
根据上述的机制,若某些时刻几何引擎14与彩现引擎15的处理速度有些许不同时,其中一引擎就必须等待另外一引擎。举例来说,若几何引擎14比彩现引擎15慢,彩现引擎15会于几何引擎14输出下一笔新的顶点资料之前就完成前一笔顶点资料的处理。比如当该电脑绘图系统中有不只一个光源时,几何引擎14会变得非常缓慢。在这种情况下,彩现引擎15将会闲置(idle)直到几何引擎14再输出新的顶点资料。反过来说,若某一时刻几何引擎14的速度快过彩现引擎15,彩现引擎15便无法在几何引擎14输出下一笔新的顶点资料之前完成前一笔顶点资料的处理。比如当需要彩现处理的三角形很大时,彩现引擎15会变得很慢。在这种情况下,几何引擎14必须停止处理信号线110上的新指令。通常我们在此二引擎之间使用一芯片上缓冲器(on-chip buffer)16来减少相对应于此二引擎的闲置时间。然而,在各种不同的运作情况下,此二引擎间并没有一个固定的运作模式关系。因此,为了更有效地减少闲置时间,提供于此二引擎间的缓冲器16通常必须很大。而大型缓冲器16的费用则相当高昂。
本发明的目的就在于克服现有技术的缺点,解决几何引擎与彩现引擎的工作量不均衡的问题,提供一种装置将其中一引擎闲置的时间减至最少。
本发明的技术方案为在绘图内存(SDRAM,SGRAM,或其他类型的DRAM)内设置一几何引擎芯片外部的资料缓冲器(Off-chi data buffer),以提供几何引擎与彩现引擎间的缓冲功能。除了由几何引擎产生的顶点资料之外,二维绘图指令亦储存于该资料缓冲器,且根据执行次序、二维绘图指令与对应三维绘图指令的顶点资料来储存在一起。为降低对内存频宽(bandwidth)需求的负面冲击,资料缓冲器的存取优先权需设定至最低。由于绘图内存较便宜,资料缓冲器的尺寸可以增大许多。
由上可知,本发明的三维绘图装置中个别引擎的闲置时间在最低成本的状态下可以减至最少;这就带来了内存利用率高、对指令反应快的效果。
以下是本发明的附图图1为现有技术中整合的三维绘图控制装置的方块图;图2为本发明所示的三维绘图装置方块图。
下面结合附图对本发明做进一步详述如图2所示,本发明的三维绘图装置(3D graphics device)包括有指令序列(command queue)21、二维绘图引擎(2D graphics engine)23、及三维绘图引擎(3D graphics engine),其中该三维绘图引擎包括几何引擎(geometry engine)24、外部(芯片外(off-chip))缓冲器(buffer)26、彩现引擎(rendering engine)25、一第一选择器(first selector)22、一第二选择器(second selector)28、以及一控制逻辑(controllogic)29。二维绘图引擎23及彩现引擎25的输出传送至一绘图内存(graphicsmemory)27。根据本发明的一个具体实施例,一部份的绘图内存27被指定为资料缓冲器(data buffer)26。由于绘图内存27价格很低,因此缓冲器26的尺寸可以尽可能的增大。当disable 1信号(disable 1 signal)致能,使资料缓冲器26失能时,绘图芯片(graphics chip)即在无外部资料缓冲器26的情况下运作,因而具有前面所提到的缺点。在这种情况下,由指令序列21发出的二维绘图指令经由信号线212及信号线222传送至二维绘图引擎23。而二维绘图引擎23的输出233被传送至绘图内存27。
当缓冲器26致能时,绘图装置运作如下由AGP或PCI汇流排(bus)产生的二维或三维绘图指令经由信号线(signal line)210传送至指令序列21。指令序列21的功能包含指令缓冲(command buffer)及指令剖析(command parser)。二维或三维绘图指令会经由信号线214传送至控制逻辑29。二维绘图指令亦经由信号线212传送至选择器22。然而,当disable 1信号被失效而使资料缓冲器26致能时,经由信号线212输入至选择器22的二维绘图指令即宣告无效。当idle 2信号(idle 2 signal)触发而disable 1信号遭失效时,第一选择器22亦接收储存于资料缓冲器26中的二维绘图指令263,并经由信号线222将该二维绘图指令输出至二维绘图引擎23。只有在触发disable 1信号使资料缓冲器26失能时,信号线212上的二维绘图指令才会通过第一选择器22传送至二维绘图引擎23。
当信号线241上的资料为一个二维绘图指令,并且几何引擎24经idle 1信号显示呈闲置状态时,在控制信号297的控制下,二维绘图指令由控制逻辑29经信号线291储存至资料缓冲器26内。也就是说,在几何引擎24将未执行(pending)的二维绘图指令之前的三维绘图指令处理完毕后,该二维绘图指令会储存于资料缓冲器26内。当disable 2信号使几何引擎24失能时,中央处理单元(CPU)即充当几何引擎来运作,而关于信号线241上的三维绘图指令的三角形顶点资料则借由控制逻辑29经信号线295传至第二选择器28,并经信号线281传至彩现引擎25。当几何引擎24致能时,关于信号线241上的三维绘图指令的三角形顶点资料则由控制逻辑29经信号线293传至几何引擎24。
几何引擎24的输出为与正处理中的三角形顶点有关的资料(参数)。当disable 1信号的触发显示资料缓冲器26处于失能状态时,几何引擎24的输出即经由信号线241传送至选择器28,再经由信号线281传送至彩现引擎25。当disable 1信号遭失效时,几何引擎24的输出即经由信号线243传送至资料缓冲器26。如上述,资料缓冲器26根据各指令进入指令序列21的顺序来储存顶点资料与二维绘图指令。第一装置包括控制逻辑29中的一部分、信号291、信号243、disable 1信号(失能)。
选择器28经由信号线261接收储存于资料缓冲器26中的顶点资料。并通过信号线281将顶点资料传送至彩现引擎25。待彩现引擎25将所有下达于二维指令前的三维指令完成处理之后,即由idle 2信号的触发显示其处于闲置状态。回应此idle 2信号的触发,储存于资料缓冲器26内的二维绘图指令经信号线263传送至第一选择器22,并经由信号线222传送至二维绘图引擎23。此机制用来维持指令序列21中二维/三维绘图指令的正确执行顺序。第二装置包括控制逻辑29中的另一部分、选择器28、选择器22、信号263、信号261、信号222、信号281、idle 2信号(致能)、select2信号。
值得注意的是,使用绘图内存27作为几何引擎24的资料缓冲器会增加绘图内存频宽(bandwidth)的需求。绘图内存频宽需求的增加会稍微减缓彩现引擎25的运作速度。为将此减缓程度降至最少,资料缓冲器26的存取优先权需设定至最低。另有一替代方案,即只有在无其他需求要存取绘图内存27时,才可以由几何引擎24来进行存取资料缓冲器26的动作。然而实际上,内存频宽并非随时处于完全使用的状态,因此根据本发明,几何引擎24与彩现引擎25的闲置时间可大量地减少。
同样的,几何引擎24中转换引擎(transformation engine)与打光引擎(lighting engine)间的处理速度差异亦非常明显。因此,在本发明的精神下,亦可提供与资料缓冲器26功能极为近似的一个外部资料缓冲器,来作为转换引擎与打光引擎间的缓冲。
权利要求
1.一种三维绘图装置,其包含一指令序列(command queue)一二维(2D)绘图引擎(graphics engine)、一几何引擎(geometry engine)、与一彩现引擎(rendering engine),其中该指令序列按一先后顺序储存二维绘图指令与三维绘图指令,对应于每一个三维(3D)绘图指令的被处理的三角形顶点有关的资料由几何引擎中输出,其特征在于此装置包含一绘图内存,其连接于该三维绘图装置的外部;一第一装置,依该先后顺序,将三角形顶点有关的资料及该二维绘图指令储存至该绘图内存内;一第二装置,依该先后顺序,由该绘图内存读取三角形顶点有关的资料及该二维绘图指令;其中对应于各三维绘图指令的被处理三角形顶点有关的资料被输入至彩现引擎内,而该二维绘图指令被输入至二维绘图引擎内。
2.如权利要求1所述的三维绘图装置,其特征在于其中只有在该几何引擎闲置时,该二维绘图指令才储存于该绘图内存内。
3.如权利要求1所述的三维绘图装置,其特征在于其中只有在该彩现引擎闲置时,该二维绘图指令才由二维绘图引擎来执行。
4.如权利要求1所述的三维绘图装置,其特征在于其中该二维绘图指令包含一字节区块传送(BitBlt)运算。
5.一种三维绘图装置,其包含一指令序列、一二维绘图引擎、一几何引擎、与一彩现引擎,其中该指令序列按一先后顺序储存二维绘图指令与三维绘图指令,对应于每一个三维绘图指令的被处理三角形顶点有关的资料由几何引擎中输出,其特征在于此装置包含一绘图内存,其连接于该三维绘图装置的外部;一控制逻辑,分别与指令序列及几何引擎连接,依该先后顺序,将三角形顶点有关的资料及该二维绘图指令储存至该绘图内存内,并依该先后顺序,由该绘图内存读取三角形顶点有关的资料及该二维绘图指令,其中对应于各三维绘图指令的被处理三角形顶点有关的资料被输入至彩现引擎内,而该二维绘图指令被输入至二维绘图引擎内。
6.如权利要求5所述的三维绘图装置,其特征在于其中只有在该几何引擎闲置时,该二维绘图指令才储存于该绘图内存内。
7.如权利要求5所述的三维绘图装置,其特征在于其中只有在该彩现引擎闲置时,该二维绘图指令才由二维绘图引擎执行。
8.如权利要求5所述的三维绘图装置,其特征在于其中该二维绘图指令包含一字节区块传送(BitBlt)运算。
全文摘要
在三维绘图系统中,几何引擎与彩现引擎的工作量不均衡会导致其中一引擎闲置;本发明提供了一种将此闲置时间减至最少的三维绘图装置;本发明采用一部份的绘图内存作为几何引擎的外部资料缓冲器,此资料缓冲器不仅储存由几何引擎传来的顶点资料,亦可储存二维绘图指令以确保二维及三维绘图指令按照正确的顺序执行;由于绘图内存的价格不高,因此可以使用较大的资料缓冲器,如此便能显著减少引擎闲置的时间。
文档编号G06F17/15GK1337656SQ01109189
公开日2002年2月27日 申请日期2001年3月21日 优先权日2000年8月9日
发明者涂俊安, 萧见忠, 白宏达 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1