三维绘图方法及其装置的制作方法

文档序号:6655481阅读:216来源:国知局
专利名称:三维绘图方法及其装置的制作方法
技术领域
本发明涉及一种三维绘图方法及其装置,特别是一种具有可见度测试前置处理的快速三维绘图方法及其装置,其可减少像素处理运算程序及存储器频宽。
在三维绘图系统中,一场景中物件的像素数据会被产生以显示在一电脑屏幕、显示器或电视上。针对电脑屏幕显示来说,绘图系统中的每一物件是由一堆相连接的平面图形(通常是三角形或四角形)所组成,例如,每一要被显示的物件会被分割成多个三角形,并将每一个三角形的位置数据及显示参数储存起来以便算出在各该三角形中的每一像素数据,使像素能适时显示在屏幕上。
但是,在一个绘图场景中,通常会有多个三角形映射到显示平面的同一个区域而造成重叠,使得某些三角形的部分区域被遮蔽,以致在场景中根本看不见,这样一来,绘图系统先前对该等被遮蔽三角形中的像素所做的数据运算不但是白费的,而且耗用非常大的存储器及频宽。
为了解决上述问题,许多隐藏表面移除演算法被提出,以移除当物件映射至显示平面时,介于物件之间的重叠平面;而著名的演算法之一为z-暂存器演算法(z测试),其主要是对应一个显示平面的每一像素提供一个z-暂存器储存该像素的深度值,然后计算映射至该显示平面三角形,每一个像素的相关数据以及深度值,并与z-暂存器中相对位置像素的深度值比较,再将z-暂存器更新为较小的深度值,借以得知那一个三角形位于重叠区域的前面,并排除在重叠区域中被覆盖的三角形,因此,z-暂存器会不断被更新,以储存目前最小(也就是最靠近观视者)的深度值,最后再根据z-暂存器中的深度值将各像素相关数据显示在屏幕上。
但是z-暂存器演算法(z测试)必须先算好每一个三角形的像素数据及深度值,并且不管最终看得到或看不到,都必须将z-暂存器中的深度值取出与每一个要显示在画面上的这些三角形的每一像素做深度值比较测试,这在三维绘图系统中需要占用存储器相当大的频宽,导致其绘图效能明显降低,例如,对于一个工作频率为150MHz的四像素管线绘图系统而言,读取32比特的z-暂存器所需要的存储器频宽大于2Gbytes/sec。而为了改善z-暂存器演算法(z测试)所存在的上述问题,以减少测试像素可见度所需的存储器频宽,一个粗略-z(coarse-z)测试方法被提出。请参照图1,该方法是先将显示画面1分割成多个大小一致的区块(m,n),再分别对每一个区块(m,n)进行一粗略-z测试。图1中绘示两个映射在多个区块上的三角形91、92,这两个三角形91、92有部分重叠,且第一个三角形91位于重叠区域的前面。该粗略-z测试对应每一区块(m,n)提供一个粗略-z暂存器(m,n)储存每一个区块(m,n)中的最小z值,且其初始值设为1.0(即背景位置)。接着请参考图2,绘示粗略-z测试的过程及显示画面1中区块(7,4)中的状态。假设第一个三角形91在区块(7,4)中的最小及最大z值分别是0.2及0.4,为了测试第一个三角形91在区块(7,4)中的可见度,执行粗略-z测试并将粗略z暂存器(7,4)中的z值与第一个三角形91在区块(7,4)中的z值比较,因为第一个三角形91在区块(7,4)中是位于前面,也就是第一个三角形91在区块(7,4)中的最大z值小于粗略z暂存器(7,4)中的z值,所以粗略z暂存器(7,4)被更新为0.2,表示第一个三角形91在区块(7,4)中的像素是确定要显示的,则不须再做z-测试。接着假设第二个三角形92在区块(7,4)中的最小及最大z值为0.6及0.9,当第二个三角形92在区块(7,4)中的z值与粗略z暂存器(7,4)比较时,因为第二个三角形92在区块(7,4)中的z值大于粗略z暂存器(7,4)中的z值,表示第二个三角形92在区块(7,4)中为看不见状态,所以不用显示出来也不须做z-测试;因此只有比较结果为不确定的三角形才须进行z-测试。上述以区块(m,n)为测试单位的粗略-z测试,虽然可降低所需的存储器频宽,例如,若区块(m,n)的大小为32×32像素,显示画面为1024×768像素,则只需存取及比较768个粗略-z暂存器,以进行粗略-z测试,大大降低了可见度测试所需的存储器频宽;但是,若遇到比较结果一直都是看不见的情况,也就是当三角形是一直从后面往前面叠置显示时,较晚进来的三角形会一直覆盖较早进来的三角形,以致即使只看到最后一个三角形,但是在此过程中粗略-z测试却一样不断地对每一三角形做粗略-z测试,而仍旧存在有不当绘图的问题,并执行了相当多不需要的运算及增加存储器需求。
本发明的目的在于提供一种具有可见度测试前置处理的快速三维绘图方法及其装置,以达到确实降低存储器频宽及减少不必要运算程序。
为达到上述目的,本发明采取如下技术措施本发明的三维绘图方法及装置,主要以第一粗略-z测试步骤,对映射至显示画面一特定区域的每一图形做第一粗略-z测试,并记录测试结果,然后根据每一图形的测试结果进行第二粗略-z测试步骤,以排除确定看不见的图形,并对不确定的图形进行第二粗略-z测试,而筛选出测试结果不确定的图形,并对测试结果确定的图形进行着色,最后,再针对该等不确定的图形进行z测试步骤,以有效达到减少像素处理运算及存储器频宽需求的功效。
本发明的具体方法及装置也可简单叙述如下本发明的一种具有可见度测试前置处理的快速三维绘图方法,包括下列步骤a)第一粗略-z测试步骤对应一显示画面的一特定区域提供一可见度暂存器及一第一计数器,然后,对映射至该特定区域的每一图形做第一粗略-z测试,并使第一计数器对应各该图形同步计数,以根据每一图形的测试结果及第一计数器计数值,设定该可见度暂存器中与各该图形相关的比特值;
b)第二粗略-z测试步骤对应上述显示画面的一特定区域提供一第二计数器,当对该特定区域进行着色时,使该第二计数器对应依序映射至该特定区域的图形同步计数,以根据第二计数器的计数值逐一检查上述可见度暂存器的与各该图形相对的比特,以排除确定看不见的图形,并对不确定的图形进行第二粗略-z测试,以筛选出测试结果不确定的图形,并对测试结果确定的图形进行着色;c)z测试步骤,对步骤b)的该特定区域中,该等不确定的图形的每一像素进行z测试,以排除该图形中看不见的像素,并对看得见的像素进行着色。
其中,所述步骤a)中的第一粗略z测试,包括下列步骤A.对应该特定区域提供一第一粗略z暂存器储存最小z值及最大z值;B.计算目前映射至该特定区域中的一图形在该特定区域中的最小z值及最大z值;C.将该图形的最小z值及最大z值与第一粗略z暂存器中的最小z值及最大z值相比较;D.若该图形的最大z值小于第一粗略暂存器中的最小z值,则以该图形的最小z值更新该第一粗略z暂存器中的最小z值;E.且若该图形完全遮盖该特定区域,则以该图形的最大z值更新该第一粗略z暂存器中的最大z值。
其中,所述步骤b)中的第二粗略-z测试,包括下列步骤A.对应该特定区域提供一第二粗略-z暂存器储存目前在该特定区域中的最小z值及最大z值;B.算出欲进行第二粗略-z测试的图形的最小z值及最大z值;C.将该图形的最小z值及最大z值与第二粗略-z暂存器中的最小z值及最大z值相比较;D.若该图形的最大z值小于第二粗略-z暂存器的最小z值,则对该图形进行着色,并以该图形的最小z值更新该第二粗略-z暂存器的最小z值,且将该图形在该特定区域中的每一像素z值存至相对应的一z暂存器中;若该图形的最小z值大于第二粗略-z暂存器的最大z值,则不对该图形进行着色,并以该图形的最大z值更新该第二粗略-z暂存器的最大z值;否则即为尚不确定的图形,第二粗略-z暂存器的z值不变。
其中,所述骤c)中的z测试,包括下列步骤A.对应该特定区域中的每一像素提供一储存各该像素目前最新z值的z暂存器;B.计算上述该等不确定的图形在该特定区域中的每一像素的z值;C.将各该像素的z值与对应的z暂存器的z值相比较;D.若该像素的z值小于对应的z暂存器的z值,则对该该像素进行着色,并以该像素的z值更新该对应的z暂存器的z值;而若该像素的z值大于对应的z暂存器的z值,则不对该像素进行着色,且其对应的z暂存器的z值不变。
其中所述步骤a)的显示画面可划分为数个大小一致的区块,且所述特定区域为该等区块之一。
本发明的一种具有可见度测试前置处理的快速三维绘图装置,包括一第一粗略z测试电路、一第二粗略z测试电路及一z测试电路;第一粗略z测试电路,对映射至一显示画面的一特定区域中的每一图形进行粗略z测试,并对应每一图形记录其测试结果;第二粗略z测试电路,根据第一粗略z测试电路所记录的测试结果,对映射至显示画面的一特定区域中的每一图形进行检查,以排除确定看不见的图形,并对不确定是否看得见的图形进行第二粗略z测试,以筛选出不确定的图形,并对确定看得见的图形进行着色;z测试电路,对该等不确定的图形进行z测试,以排除该图形中看不见的像素,并对该图形中确定看得见的像素进行着色。
其中
所述第一粗略z测试电路包括有一个z运算电路、一个比较电路、对应该特定区域的一第一粗略z暂存器、一个第一计数器及一个可见度暂存器;z值运算电路计算映射至该特定区域的一图形的最小z值及最大z值,第一计数器对应映射至该特定区域的图形同步计数,该第一粗略z暂存器储存该特定区域中的最小z值及最大z值,该比较电路将该第一粗略z暂存器中的最小z值及最大z值读出并与映射至该特定区域的图形的最小z值及最大z值比较,当该图形的最大z值小于第一粗略z暂存器的最小z值时,该比较电路则以该图形的最小z值更新该第一粗略z暂存器的最小z值,且当该图形完全覆盖该特定区域时,则以该图形的最大z值更新该第一粗略z暂存器的最大z值。
其中当有图形映射至所述特定区域时,所述第一计数器同步计数,且当一图形的最大z值小于第一粗略z暂存器的最小z值时,则根据第一计数器的计数值将所述可见度暂存器中与所述图形对应的比特设为1,若所述图形完全覆盖特定区域时,则需将在该比特之前的所有比特清除为0。
其中所述第二粗略测试电路包括有一个检查电路、一个z值运算电路、一个比较电路及对应该特定区域的一个第二计数器及一个第二粗略z暂存器;当图形映射至特定区域时,第二计数器同步计数,并使该检查电路检查上述可见度暂存器中与各该图形对应的比特,以排除确定看不见的图形,并将不确定的图形借由该z值运算电路求出最小及最大z值送至该比较电路与该第二粗略z暂存器中储存的z值比较,以进一步筛选出不确定的图形并对确定看得见的图形进行着色。
其中所述不确定的图形最后被送至所述z测试电路做z测试,z测试电路主要包括一个z值运算电路及一个比较电路,z值运算电路计算该等图形在所述特定区域中的每一个像素的z值,然后借由比较电路与一个相对应的z暂存器中的z值比较,以排除看不见的像素,并对看得见的像素进行着色。
其中所述显示画面划分成数个区块,且所述特定区域为该等区块之一。
结合附图及实施例对本发明的结构特征详细说明如下


图1为现有粗略-z测试方法一举例的说明示意图。
图2为图1中的三角形91、92的深度值(z值)的示意图。
图3为本发明实施例的流程图,表示第一粗略z测试步骤。
图4为本发明实施例的另一流程图,表示第二粗略-z测试步骤及z测试步骤。
图5为本发明实施例中第一粗略-z测试电路的电路框图。
图6为本发明实施例的一示例的说明示意图。
图7为图6中三角形81、82及83的深度(z)值示意图。
图8为本发明实施例的另一电路框图,其为第二粗略z测试电路及一z测试电路的电路框图。
如图3、图4所示,其表示本发明一实施例的流程图,本实施例具有可见度测试前置处理的快速三维绘图方法,其主要依序包括第一粗略-z测试步骤1,第二粗略-z测试步骤2,以及z-测试步骤22。
在第一粗略-z测试步骤1开始之前,先执行一个初始设定步骤11,其算出欲显示在显示画面上的所有三角形位置参数,以供正确显示三角形位置,且对应显示画面上的每一个像素提供一个对应的z暂存器,并将显示画面划分成多个大小一致的区块,对应每一区块(m,n)提供一个第一粗略z暂存器(m,n)、一个可见度暂存器(m,n)及一个第一计数器(m,n),并将该等可见度暂存器(m,n)及计数器(m,n)重置为零。
接着执行第一粗略-z测试12,选定一个欲进行测试的区块(m,n),与区块(m,n)对应的第一粗略-z暂存器(m,n)中设定有一个初始最小z值及最大z值,该最小z值及最大z值实际上为z方向(深度)的最大z值(也就是背景值),然后,计算先后映射至区块(m,n)中的每一个三角形在区块(m,n)中的最小z值及最大z值,同时,第一计数器(m,n)计数进入区块(m,n)中的三角形数目,并且每算出一个三角形的z值即与第一粗略暂存器(m,n)中的z值比较,若该三角形的最大z值小于第一粗略z暂存器(m,n)中的最小z值时,表示此三角形目前是看得见的,则以该三角形的最小z值取代第一粗略z暂存器(m,n)中的最小z值,并且,根据第一计数器(m,n)的计数值,将可见度暂存器(m,n)中与该三角形相对应的比特设为1;又若上述条件成立且此三角形完全覆盖区块(m,n),则表示该三角形在区块(m,n)中不但位于最前面,并且将位于其后面的其他三角形完全遮蔽,则该三角形的最大z值即取代第一粗略z暂存器(m,n)中的最大z值,并且,除了将可见度暂存器(m,n)中与该三角形相对应的比特设为1之外,也需将该比特之前的所有比特清除为0。
当借由上述第一粗略-z测试步骤1对映射至每一区块(m,n)中的每一个三角形进行测试后,即可在相对应的可见度暂存器(m,n)中得到一个粗略的可见度测试结果的记录,借此,当绘图系统要进行着色程序时,就可参考每一个区块(m,n)所对应的可见度暂存器(m,n)的内容,对该显示画面的每一区块进行适当的着色。下面即将描述的第二粗略-z测试步骤2即为进行着色程序之前的前置处理步骤。
当绘图系统要在显示画面上进行着色绘图时,请参照图4所示,第二粗略z测试步骤2对应显示画面上的每一区块(m,n)提供一个第二粗略z暂存器(m,n)及一第二计数器(m,n);接着选定一个欲进行着色的区块(m,n),然后对应依序映射至区块(m,n)中的三角形,计数器(m,n)开始计数并根据其计数值逐一检查与区块(m,n)对应的可见度暂存器(m,n)中的比特,若所检查比特的比特值为零,表示与此比特对应的三角形在区块(m,n)中是被遮蔽的,根本看不见,所以直接略过该三角形在区块(m,n)的像素不对其进行着色;而若所检查比特的比特值不为零(即1),则表示与此比特对应的三角形在区块(m,n)中为看得见或尚未确定的状态,无法确定是否进行着色,因此,则对该三角形进行第二粗略z测试21以进一步确定;该第二粗略-z测试21算出欲进行测试的三角形在区块(m,n)中的最小及最大z值,然后与第二粗略z暂存器(m,n)中的z值比较,若其最小z值大于第二粗略z暂存器(m,n)的最大z值,则表示该三角形在区块(m,n)中被遮蔽,为看不见状态,则不对该三角形进行着色,并将第二粗略z暂存器(m,n)的最大z值更新为该三角形的最大z值;而若该三角形的最大z值小于第二粗略-z暂存器(m,n)中的最小z值,则表示其在区块(m,n)中未被遮蔽,为看得见状态,即对其进行着色程序,而且除了将第二粗略z暂存器(m,n)的最小z值更新为该三角形的最小z值外,并将该三角形在区块(m,n)中的每一像素的z值存至对应的z暂存器(m,n)中;如非上述两种情形,表示该三角形仍为不确定状态,这时即须对其进行z测试步骤22。
因此,z测试步骤22当上述第二粗略-z测试步骤21仍无法判别在区块(m,n)中的三角形是否看得见时,才需用到。
该z测试步骤22与上述现有z测试方法相同,但其主要针对经过上述第二粗略-z测试21结果仍为不确定的三角形进行测试,z测试步骤22计算该不确定的三角形在区块(m,n)中的每一像素的z值,并将每一像素的z值与其相对应的z暂存器中的z值比较,若该像素的z值大于z暂存器中的z值,表示该像素在显示画面上被遮蔽(看不见),则不对该像素进行着色,而若该像素的z值小于z暂存器中的z值,表示该像素在显示画面上是看得见的,因此必须对该像素进行着色,并以其z值更新z暂存器中的z值。因此,借由对显示画面上的每一区块(m,n)进行上述第二粗略-z测试步骤及z测试步骤即可完成整个显示画面的着色程序。
由以上该等可见度测试前置处理步骤可知,本发明先借由对显示画面的每一区块(m,n)进行第一粗略-z测试1,将在各区块(m,n)中确定不显示或不确定显示的三角形区分出来并记录在与各区块(m,n)对应的可见度暂存器(m,n)中,然后,当要进行着色程序时,再借由检查可见度暂存器(m,n)的比特内容,针对各区块(m,n)中该等不确定显示的三角形进行第二粗略-z测试21,以进一步排除确定不显示的三角形并对确定要显示的三角形进行着色,最后再对该等经过第二粗略-z测试21尚无法确定的三角形进行z-测试22,而能够有效地将需要进行z-测试的三角形减至最少;因此,应用本发明的方法到最后仅需针对少部分未确定的三角形进行z-测试,所以能够大大地减少存储器频宽的需求,并且减少复杂运算的次数,不但明显提高三维绘图效能,并有效解决现有z-测试或粗略-z测试耗用大量运算及存储器频宽的缺点。
接着,请参照图5、图8所示,为根据本发明上述方法所设计出的具有可见度测试前置处理的快速三维绘图装置的一实施例的电路框图,其大体包括一个第一粗略-z测试电路3、一个第二粗略-z测试电路4及一个z测试电路5;第一粗略-z测试电路3包括有一个z值运算电路31、一个比较电路32,以及对应显示画面上画分的每一测试区块(m,n)提供一个第一粗略z暂存器(m,n)、第一计数器(m,n)及可见度暂存器(m,n);此外,第一粗略-z测试电路3电连接有一个区块选定电路6,且区块选定电路6与一个预设电路7电连接;预设电路7会先算出欲显示在显示画面上的所有三角形的位置参数,以供正确显示各个三角形在显示画面上的位置,然后区块选定电路6选择一个要进行测试的区块,例如,请参照图6及图7所示,区块(4,5),则与区块(4,5)对应的第一粗略z暂存器(4,5)预先储存有一个初始z值,例如(1,1)(假设z值深度从0~1);然后,假设有三个三角形81、82及83要显示在区块(4,5)上,则当第一个三角形81映射至区块(4,5)时,第一计数器(4,5)计数1,且z值运算电路31会计算三角形81在区块(4,5)中的每一个像素的z值,并储存在相对应的z暂存器(4,5)中,并求得三角形81在区块(4,5)中的最小及最大z值,例如为(0.7,0.8)并送至比较电路32,接着比较电路32从第一粗略-z暂存器(4,5)中读出z值与三角形81的z值比较,而因为三角形81的最大z值0.8小于第一粗略-z暂存器(4,5)的最小z值1,所以比较电路32以三角形81的最小z值0.7更新第一粗略-z暂存器(4,5)中原有的最小z值1,同时,比较电路32根据第一计数器(4,5)的计数值1,将与区块(4,5)对应的可见度暂存器(4,5)中的与三角形81对应的比特(第一比特)设为1;但是,因为三角形81仅遮盖区块(4,5)的一部分,其最大z值并不一定是区块(4,5)中所能找到的最大z值,所以不更新第一粗略-z暂存器(4,5)的最大z值。
接着三角形82映射至区块(4,5),第一计数器(4,5)计数2,并经由z值运算电路31算出最小及最大z值,例如为(0.3,0.4)并送至比较电路32,则比较电路32将第一粗略z暂存器(4,5)的z值读出并与三角形82的z值比较,且因为三角形82的最大z值0.4小于第一粗略-z暂存器(4,5)的最小z值0.7,得知三角形82在三角形81的前面,并未被遮蔽,因此,如同上述步骤,第一粗略-z暂存器(4,5)的最小z值被更新为0.3,且因为三角形82完全覆盖区块(4,5),并且位于区块(4,5)的最前面,所以三角形82的最大z值是目前在区块(4,5)中的最大z值,所以第一粗略-z暂存器(4,5)的最大z值被更新为0.4,同时,比较电路32根据第一计数器(4,5)的计数值2,将可见度暂存器(4,5)中的相对应比特(第二比特)设为1,并将第二比特之前的所有比特(也就是第一比特)改为0,这是因为与第一比特所对应的三角形81在区块(4,5)中的部分已被三角形82完全遮蔽。
当三角形83映射至区块(4,5)时,第一计数器计数至3,同样地,z值运算电路31算出其最小及最大z值,例如为(0.2,0.5),然后,比较电路32将第一粗略-z暂存器(4,5)的z值读出与三角形83的z值比较,但是因为其最大z值0.5并不小于第一粗略-z暂存器(4,5)的最小z值0.3,但其最小z值0.2却小于,所以由此可知三角形83在区块(4,5)中一部分在前面(未被遮蔽),一部分在后面(被遮蔽),因此,三角形83在区块(4,5)中为不确定状态,所以在可见度暂存器(4,5)中与其对应的比特(第三比特)会被设为1,并且第一粗略z暂存器(4,5)中的最小z值被更新为0.2。
由上述可知,借由第一粗略-z测试电路3,对映射至每一区块(m,n)中的三角形做一较粗略的可见度预先测试,将映射至区块(m,n)中的所有三角形区分成遮蔽(看不见)及未遮蔽(看得见或不确定)两种,并记录在与各区块(m,n)对应的可见度暂存器(m,n)中,供后续进行着色程序时的参考。而且,第一粗略-z测试电路3以区块(m,n)为测试单位,当三角形映射至区块(m,n)时,只读取与区块(m,n)对应的第一粗略-z暂存器(m,n)的z值与三角形的最小及最大z值比较,可节省大量的存储器频宽,并且只记录测试结果而不马上进行着色程序,可大大地减少复杂的运算。
当上述第一粗略-z测试电路3对显示画面的每一区块(m,n)完成可见度测试后,就可借由该第二粗略z测试电路4对显示画面上的每一像素进行着色程序。
如图8及图7所示,第二粗略z测试电路4包括一个检查电路41、一个z值运算电路42、一个比较电路43及对应每一区块(m,n)的第二计数器(m,n)和第二粗略z暂存器(m,n)。当进行着色程序时,沿续上述的例子,假设区块选定电路6选择区块(4,5)进行着色,则当三角形81映射至区块(4,5)时,第二计数器(4,5)计数1,并使该检查电路41检查可见度暂存器(4,5)中与三角形81对应的比特(即第一比特),发现其比特值为0,表示此三角形81在区块(4,5)中被遮蔽(即看不见),则略过三角形81不画;接着,三角形82映射至区块(4,5),第二计数器(4,5)计数2,并使检查电路42检查可见度暂存器(4,5)的相对应比特(即第二比特),发现其比特值为1,表示尚不确定三角形82是否着色,则将三角形82送至z值运算电路42,计算三角形82在区块(4,5)中的每一像素的z值并取出最小及最大z值(0.3,0.4),然后借由比较电路43与第二粗略-z暂存器(4,5)中的z值(1,1)比较,得知三角形82的最大z值0.4小于第二粗略z暂存器(4,5)的最小z值1,表示三角形82未被遮蔽(必须显示),即将其送至一着色电路8进行着色。此外,第二粗略z暂存器(4,5)的值会被更新为三角形82的最小z值及最大z值(0.3,0.4),并将三角形82在区块(4,5)中的所有像素的z值存至对应的z暂存器(4,5)中。
然后,三角形83进入区块(4,5)中,第二计数器(4,5)计数3,检查电路42根据其计数值3,检查可见度暂存器(4,5)的第三比特的比特值是1,为不确定状态,因此,z值运算电路42算出三角形83的最小及最大z值(0.2,0.5),并经由比较电路43与二粗略z暂存器(4,5)的z值(0.3,0.4)比较,发现三角形83的最小z值0.2小于第二粗略z暂存器(4,5)的最小z值(未被遮蔽),但其最大z值0.5却大于第二粗略z暂存器(4,5)的最大z值0.4(被遮蔽),表示三角形83在区块(4,5)中部分被遮蔽,但部分没有,而经过第二粗略z测试电路4后,仍不能决定如何对其进行着色,这时,即必须借由z测试电路5决定三角形83的着色部分。
z测试电路5主要包括一个z值运算电路51及一个比较电路52,z值运算电路51计算三角形83在区块(4,5)中的每一像素的z值,然后借由比较电路52将该像素的z值与上述z暂存器(4,5)中相对应的z值比较,若该像素z值大于z暂存器(4,5)z值,表示该像素在区块(4,5)中被遮住,则不将该像素画出;而若像素z值小于z暂存器(4,5)的z值,表示该像素未被遮蔽,则由着色电路将该像素画出,并以该像素的z值更新z暂存器的z值。因此,借由执行第二粗略z测试电路4及z测试电路5,即可对显示画面上的每一区块逐一进行着色,而完成整个显示画面的绘图。
与现有技术相比,本发明具有如下效果
由上述实施例可明显看出,本发明先利用第一粗略z测试电路3,对显示画面上每一区块(m,n)进行第一粗略z测试,将确定及不确定显示的三角形区分出,并记录于可见度暂存器(m,n)中,再于进行着色时,利用第二粗略z测试电路4,检查该可见度暂存器(m,n)的内容,以进一步排除确定不显示的三角形,且将确定要显示的三角形送至着色电路8进行着色显示,最后再将仍无法确定着色的三角形送至z测试电路5中进行像素z值测试及着色。因此,本发明可有效地将需要进行z测试的三角形减至最少,仅针对少部分未确定的三角进行z测试,而能够大大地减少因为做z测试所需使用的大量存储器频宽需求以及复杂运算,因而明显提升三维绘图系统的效能,并有效改善了现有z测试及粗略z测试耗用大量运算及存储器频宽的缺点。
权利要求
1.一种三维绘图方法,其特征在于,包括下列步骤a)第一粗略-z测试步骤对应一显示画面的一特定区域提供一可见度暂存器及一第一计数器,然后,对映射至该特定区域的每一图形做第一粗略-z测试,并使第一计数器对应各该图形同步计数,以根据每一图形的测试结果及第一计数器计数值,设定该可见度暂存器中与各该图形相关的比特值;b)第二粗略-z测试步骤对应上述显示画面的一特定区域提供一第二计数器,当对该特定区域进行着色时,使该第二计数器对应依序映射至该特定区域的图形同步计数,以根据第二计数器的计数值逐一检查上述可见度暂存器的与各该图形相对的比特,以排除确定看不见的图形,并对不确定的图形进行第二粗略-z测试,以筛选出测试结果不确定的图形,并对测试结果确定的图形进行着色;c)z测试步骤,对步骤b)的该特定区域中,该等不确定的图形的每一像素进行z测试,以排除该图形中看不见的像素,并对看得见的像素进行着色。
2.如权利要求1所述的方法,其特征在于,所述步骤a)中的第一粗略z测试,包括下列步骤A.对应该特定区域提供一第一粗略z暂存器储存最小z值及最大z值;B.计算目前映射至该特定区域中的一图形在该特定区域中的最小z值及最大z值;C.将该图形的最小z值及最大z值与第一粗略z暂存器中的最小z值及最大z值相比较;D.若该图形的最大z值小于第一粗略暂存器中的最小z值,则以该图形的最小z值更新该第一粗略z暂存器中的最小z值;E.且若该图形完全遮盖该特定区域,则以该图形的最大z值更新该第一粗略z暂存器中的最大z值。
3.如权利要求1所述的方法,其特征在于,所述步骤b)中的第二粗略-z测试,包括下列步骤A.对应该特定区域提供一第二粗略-z暂存器储存目前在该特定区域中的最小z值及最大z值;B.算出欲进行第二粗略-z测试的图形的最小z值及最大z值;C.将该图形的最小z值及最大z值与第二粗略-z暂存器中的最小z值及最大z值相比较;D.若该图形的最大z值小于第二粗略-z暂存器的最小z值,则对该图形进行着色,并以该图形的最小z值更新该第二粗略-z暂存器的最小z值,且将该图形在该特定区域中的每一像素z值存至相对应的一z暂存器中;若该图形的最小z值大于第二粗略-z暂存器的最大z值,则不对该图形进行着色,并以该图形的最大z值更新该第二粗略-z暂存器的最大z值;否则即为尚不确定的图形,第二粗略-z暂存器的z值不变。
4.如权利要求1所述的方法,其特征在于,所述骤c)中的z测试,包括下列步骤A.对应该特定区域中的每一像素提供一储存各该像素目前最新z值的z暂存器;B.计算上述该等不确定的图形在该特定区域中的每一像素的z值;C.将各该像素的z值与对应的z暂存器的z值相比较;D.若该像素的z值小于对应的z暂存器的z值,则对该该像素进行着色,并以该像素的z值更新该对应的z暂存器的z值;而若该像素的z值大于对应的z暂存器的z值,则不对该像素进行着色,且其对应的z暂存器的z值不变。
5.如权利要求1所述的方法,其特征在于所述步骤a)的显示画面可划分为数个大小一致的区块,且所述特定区域为该等区块之一。
6.一种三维绘图装置,包括一第一粗略z测试电路、一第二粗略z测试电路及一z测试电路;其特征在于第一粗略z测试电路,对映射至一显示画面的一特定区域中的每一图形进行粗略z测试,并对应每一图形记录其测试结果;第二粗略z测试电路,根据第一粗略z测试电路所记录的测试结果,对映射至显示画面的一特定区域中的每一图形进行检查,以排除确定看不见的图形,并对不确定是否看得见的图形进行第二粗略z测试,以筛选出不确定的图形,并对确定看得见的图形进行着色;z测试电路,对该等不确定的图形进行z测试,以排除该图形中看不见的像素,并对该图形中确定看得见的像素进行着色。
7.如权利要求6所述的装置,其特征在于所述第一粗略z测试电路包括有一个z运算电路、一个比较电路、对应该特定区域的一第一粗略z暂存器、一个第一计数器及一个可见度暂存器;z值运算电路计算映射至该特定区域的一图形的最小z值及最大z值,第一计数器对应映射至该特定区域的图形同步计数,该第一粗略z暂存器储存该特定区域中的最小z值及最大z值,该比较电路将该第一粗略z暂存器中的最小z值及最大z值读出并与映射至该特定区域的图形的最小z值及最大z值比较,当该图形的最大z值小于第一粗略z暂存器的最小z值时,该比较电路则以该图形的最小z值更新该第一粗略z暂存器的最小z值,且当该图形完全覆盖该特定区域时,则以该图形的最大z值更新该第一粗略z暂存器的最大z值。
8.如权利要求7所述的装置,其特征在于当有图形映射至所述特定区域时,所述第一计数器同步计数,且当一图形的最大z值小于第一粗略z暂存器的最小z值时,则根据第一计数器的计数值将所述可见度暂存器中与所述图形对应的比特设为1,若所述图形完全覆盖特定区域时,则需将在该比特之前的所有比特清除为0。
9.如权利要求6所述的装置,其特征在于所述第二粗略测试电路包括有一个检查电路、一个z值运算电路、一个比较电路及对应该特定区域的一个第二计数器及一个第二粗略z暂存器;当图形映射至特定区域时,第二计数器同步计数,并使该检查电路检查上述可见度暂存器中与各该图形对应的比特,以排除确定看不见的图形,并将不确定的图形借由该z值运算电路求出最小及最大z值送至该比较电路与该第二粗略z暂存器中储存的z值比较,以进一步筛选出不确定的图形并对确定看得见的图形进行着色。
10.如权利要求9所述的装置,其特征在于所述不确定的图形最后被送至所述z测试电路做z测试,z测试电路主要包括一个z值运算电路及一个比较电路,z值运算电路计算该等图形在所述特定区域中的每一个像素的z值,然后借由比较电路与一个相对应的z暂存器中的z值比较,以排除看不见的像素,并对看得见的像素进行着色。
11.如权利要求6所述的装置,其特征在于所述显示画面划分成数个区块,且所述特定区域为该等区块之一。
全文摘要
一种三维绘图方法及其装置,本方法包括下列步骤:a)第一粗略-z测试步骤;b)第二粗略-z测试步骤;c)z测试步骤;本装置包括:第一粗略z测试电路、第二粗略z测试电路及z测试电路;各测试电路均包括z值运算电路、比较电路及z值暂存器;第一粗略z测试电路还包括第一粗略z暂存器、第一计数器及可见度暂存器;第二粗略z测试电路还包括检查电路、第二计数器及可见度暂存器;本发明可有效减少像素处理运算程序及存储器频宽。
文档编号G06T17/00GK1381814SQ0110957
公开日2002年11月27日 申请日期2001年4月17日 优先权日2001年4月17日
发明者廖明豪, 叶国炜 申请人:矽统科技股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1