專利名稱:三維圖形中頂點(diǎn)重新排序的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明是有關(guān)于一種繪圖基本圖形的處理;特別是有關(guān)于一種在 處理三維圖形的過程中,保持這些繪圖基本圖形的頂點(diǎn)次序的方法及 裝置。
背景技術(shù):
在三維繪圖的應(yīng)用中,盡管繪制繪圖基本圖形的方法有所不同, 但在重繪一繪圖基本圖形時,應(yīng)在其外觀保持與繪制前相同的結(jié)果。 然而,因?yàn)樵谌S繪圖的應(yīng)用中,浮點(diǎn)運(yùn)算的精確程度有限,若應(yīng)用
一種稍微不同的方法來重繪一繪圖基本圖形,外觀上的差異則可能出 現(xiàn)。例如,在繪圖基本圖形的深度值(depth vahies)上可能出現(xiàn)不同。
因此,在應(yīng)用稍微不同的方法來重繪一繪圖基本圖形時,應(yīng)避免產(chǎn)生 可能出現(xiàn)的差異。
發(fā)明內(nèi)容
本發(fā)明的主要目的是提出一種三維圖形中頂點(diǎn)重新排序的方法及 裝置,該方法在繪制基本圖形時,可以不管其頂點(diǎn)的次序?yàn)楹?,以?免產(chǎn)生可能出現(xiàn)的差異。
根據(jù)本發(fā)明, 一種重新排序一繪圖基本圖形的頂點(diǎn)的方法包含:(l) 接收一繪圖基本圖形的復(fù)數(shù)個頂點(diǎn),其中這些頂點(diǎn)具有一環(huán)形的次 序、 一在環(huán)形次序中未知的位置、及包括相關(guān)于一已預(yù)先定義的原點(diǎn) 的一坐標(biāo)。(2)決定在繪圖基本圖形的頂點(diǎn)的中,何者最接近原點(diǎn),此 最接近的頂點(diǎn)被指定為一最小頂點(diǎn)。(3)移動此最小頂點(diǎn)至此環(huán)形次序 中一第一已預(yù)先定義的位置。及(4)在環(huán)形次序中將每個下一頂點(diǎn),依 序移動至下一已預(yù)先定義的位置,以使繪圖基本圖形的頂點(diǎn)具有一指定的次序,而不管其接收的次序?yàn)楹巍?br>
一種根據(jù)本發(fā)明用以將一繪圖基本圖形的頂點(diǎn)重新排序的裝置,包括 一 儲存區(qū)塊(storage block)、 一比較邏輯區(qū)塊(comparison logic block)、復(fù)數(shù)個多路復(fù)用器(multiplexers)及一控制邏輯區(qū)塊(control logic block)。繪圖基本圖形的儲存區(qū)塊被設(shè)置來儲存一繪圖基本圖形的復(fù) 數(shù)個頂點(diǎn),其中每個頂點(diǎn)在儲存區(qū)塊中具有一未知位置,并包含相關(guān) 的一已預(yù)先定義的原點(diǎn)的坐標(biāo)。比較邏輯區(qū)塊被連接去接收一些儲存 于繪圖基本圖形的儲存區(qū)塊中的頂點(diǎn),并被設(shè)置去決定繪圖基本圖形 的頂點(diǎn)之中,何者最接近原點(diǎn),此最接近原點(diǎn)的頂點(diǎn)被稱為最小頂點(diǎn)。 另外,比較邏輯區(qū)塊還產(chǎn)生一順序交換(swap^rder)位元域,其包含根 據(jù)己決定的最小頂點(diǎn)用以重新排序這些頂點(diǎn)的指令。復(fù)數(shù)個多路復(fù)用 器被連接去接收儲存于儲存區(qū)塊中的復(fù)數(shù)個頂點(diǎn),其中每個多路復(fù)用 器是根據(jù)順序交換位元域來選擇復(fù)數(shù)個頂點(diǎn)之一,使得復(fù)數(shù)個多路復(fù) 用器在其輸出上,提供一些已經(jīng)過重新排序的繪圖基本圖形的頂點(diǎn)??刂七壿媴^(qū)塊被連接至比較邏輯區(qū)塊并用來接收順序交換位元域,其 中一報頭(header)信號顯示何時頂點(diǎn)的坐標(biāo)已準(zhǔn)備好可由儲存區(qū)塊來提 供,并分配順序交換位元域給復(fù)數(shù)個多路復(fù)用器,以做為這些多路復(fù) 用器的選擇控制信號。
圖1A —C為一根據(jù)本發(fā)明中,頂點(diǎn)的各種不同排序的實(shí)例;
圖2提出在-一三角形中,(xl,yl)為最小頂點(diǎn)的例子;
圖3顯示對每一頂點(diǎn)的八個可能位置;
圖4A為一根據(jù)本發(fā)明的一實(shí)施例的裝置方塊圖4B為一根據(jù)本發(fā)明的一實(shí)施例的控制邏輯區(qū)塊的方塊圖;及
圖5A-D為一根據(jù)本發(fā)明方法的一實(shí)施例的流程圖。
圖中符號說明
100 繪圖基本圖形重新排序頂點(diǎn)的裝置方塊圖
102繪圖基本圖形儲存區(qū)塊
104比較邏輯區(qū)塊
106控制邏輯區(qū)塊
108a多路復(fù)用器
108b多路復(fù)用器
108c多路復(fù)用器
120多路復(fù)用器
122寄存器
124邏輯門
具體實(shí)施方法
當(dāng)一繪圖基本圖形被接收以對其作處理時,其一些頂點(diǎn)的次序可 能為任意排列。為避免在提供繪圖基本圖形時的差異,這些頂點(diǎn)必需 重新排序以符合一先前已建立好的規(guī)定。在圖1中,對于一三角形做
為一繪圖基本圖形,此規(guī)定頂點(diǎn)O(vO)為最接近一原點(diǎn)的頂點(diǎn),頂點(diǎn)l(vl) 為逆時針方向次于頂點(diǎn)0(vO)的下一頂點(diǎn),而頂點(diǎn)2(v2)為逆時針方向次 于頂點(diǎn)l(vl)的下一頂點(diǎn)。因此,若一三角形具有頂點(diǎn)次序(v2, vl, v0) 且在圖1A中,v2為最小頂點(diǎn),則頂點(diǎn)必需照以下指定來重新排序, v0'=v2, vl'=v0, v2'=vl,其中'表示新的排序。若一三角形具有一頂 點(diǎn)次序(v2, vl, vO)且在圖lB中,vl為最小頂點(diǎn),則頂點(diǎn)必需照以下指 定來重新排序v0'=vl, vl'=v2, v2'=v0。最后,若三角形具有頂點(diǎn)次 序(v2, vl, vO)且在圖lC中,v0為最小頂點(diǎn),則不需要對其重新排序, 艮卩vO'-vO, vl'=vl, v2'=v2。
為執(zhí)行此過程, 一些信息是需要用來作決定的,例如那個頂點(diǎn)為 最小頂點(diǎn)的信息。 一種用來決定最小頂點(diǎn)的方法是計算每一頂點(diǎn)距原 點(diǎn)的距離。然而,此種計算相當(dāng)?shù)貜?fù)雜且費(fèi)時,因此,需利用其它方 法來完成。 一種替代方法計算以下函數(shù)
Min{max(|x0|,|y0i),max(|xl|,|yl|),max(|x2|,|y2|)}。
在此函數(shù)中,對每一頂點(diǎn)的每一坐標(biāo)取其絕對值,選擇每對頂點(diǎn) 坐標(biāo)中最大者,然后從這些最大者中選取其中最小者,其結(jié)果即決定
何頂點(diǎn)最接近原點(diǎn)28(圖2中)。在圖2中,以三角形20為例,對圖中三 頂點(diǎn)22、 24及26,其中| |yl|〉|xl|, |x2|〉|y2|。這意味x0、 yl及 x2在最大選取步驟中被選取。然后,再從x0、 yl及x2中選擇其最小者, 明顯地,此處yl被選取。因此,最靠近原點(diǎn)的頂點(diǎn)為頂點(diǎn)vl(xl, yl)。 然而,因?yàn)榻^對值的使用及在取最大值函數(shù)中并無區(qū)分何坐標(biāo)為最大 值,所以此決定并非唯一的。對每一頂點(diǎn)而言,共有八個可能情況(如 圖3所示),但只有其中之一為所需。這其中,40、 42、 44及46等四個 情況是因絕對值而產(chǎn)生,而另外四個情況(48、 50、 52及54)則是因 最大值函數(shù)并不區(qū)分x坐標(biāo)或y坐標(biāo)而產(chǎn)生的。圖3中顯示每一頂點(diǎn)的 八個情況40-54。為了找出在每一坐標(biāo)的八個情況中,何者為正確的情 況,這對每一坐標(biāo)而言,需要三個額外的位元來決定。
為推導(dǎo)出這三個位元,每一坐標(biāo)的符號(總共六個)必須為已知。 其次,在對每一坐標(biāo)取最大值時,每一比較的真?zhèn)?總共三個)亦需知 道。另外,從三個最大值中取其最小值時,每一比較的真?zhèn)?總共三個) 亦需知道。這些信息能組合成三個位元,并用來決定以上函數(shù)的唯一 解。
對各坐標(biāo)符號的布爾表示法(Booleans)為 sgn一x0 sgn一y0 (2位元) sgn一xl sgn—yl (2位元) sgri—x2 sgn—y2 (2位元)
對各坐標(biāo)中,比較判斷其大小真?zhèn)蔚牟紶柋硎痉?Booleans)為 xOJt—yO=(|xO|<|yO|) (l位元)
xi一lt—yh(lxiMyll)(i位元)
x2—It—y2Klx2l〈ly2l)(l位元)
對各坐標(biāo)比較后,取其最大值的選擇函數(shù)為<formula>see original document page 9</formula>
以上信息組合成以下鏈接表示法,這些信息組包含對每一頂點(diǎn)所
選出的坐標(biāo),并且此三個位元使其解為唯一
<formula>see original document page 9</formula>
因此,可對各坐標(biāo)完成比較以判斷何者為最小的真?zhèn)蔚牟紶柋硎?br>
法為
<formula>see original document page 9</formula>
以下的算法假設(shè)頂點(diǎn)的次序?yàn)?v2, vl, vO),對頂點(diǎn)執(zhí)行適當(dāng)?shù)闹?br>
排,并用程序語言來表示
<formula>see original document page 9</formula>
在以上算法中,reorder一vertices()函數(shù)是對需要改變次序的頂點(diǎn) 執(zhí)行分配(assignments)或交換(swaps)。
在圖4A中,顯示根據(jù)本發(fā)明的一實(shí)施例的裝置方塊圖100。此裝 置包括一繪圖基本圖形儲存區(qū)塊102,用來提供頂點(diǎn)的坐標(biāo)(報頭數(shù) 據(jù)),其這些頂點(diǎn)坐標(biāo)在某些實(shí)例版本中可能為齊次(homogenous)坐 標(biāo)。另外包括一比較邏輯區(qū)塊104,用來執(zhí)行以上的算法,并提供一 順序交換位元域、 一控制邏輯區(qū)塊106及三個3:l的多路復(fù)用器108a-c, 其中每一多路復(fù)用器接收來自三個頂點(diǎn)的坐標(biāo)??刂七壿媴^(qū)塊106被 用來控制選擇三個多路復(fù)用器108a-c的輸入以完成重排。
參考圖4B,控制邏輯區(qū)塊106包含一2:1多路復(fù)用器120、 一寄存 器(register)122及 一 邏輯門124 。此2:1多路復(fù)用器120接收 一 稱為 is—header的信號,這個信號指示繪圖基本圖形的頂點(diǎn)的坐標(biāo)信息可由 三角形的參數(shù)區(qū)塊中得到。當(dāng)is—header為真時,此2:1多路復(fù)用器120 輸出順序交換位元域至3:l多路復(fù)用器108a-c的選擇控制信號。同時, 寄存器122經(jīng)由邏輯門124儲存順序交換位元域,因此,當(dāng)is一header為 偽,此重排的信息被保存,并允許其它的三角形參數(shù)數(shù)據(jù)在報頭數(shù)據(jù) 傳遞后,依照相同的已建立的排列次序傳遞至3:l多路復(fù)用器108a-c。
上述的順序交換位元域?yàn)橐?位元域。在此位元域中的每對位元 用來控制三個3:l多路復(fù)用器108a-c的一對選擇控制信號。二進(jìn)制值b'00 表示選擇最低次序輸入,二進(jìn)制值b'01表示選擇居中的次序輸入,而 二進(jìn)制值b'10表示選擇最高次序輸入。為方便起見,每一個3:1多路復(fù) 用器以同樣方式接收頂點(diǎn)坐標(biāo)做為其輸入,意即,vO在最低次序位置,
vl在居中位置,及v2在最高位置。
因此,函數(shù)reorder—vertices(v2'-vl, vl'-vO, v0'-v2)可通過指定下 列值(Ol, 00, IO)到順序交換位元域而得到。較低的兩位元b'10致使 v0'=v2,居中的兩位元b'OO致使vl'-vO,并且較高的兩位元b'10致使 v2'=vl。對于reorder—vertices(v2'=v0, vl'=v2, vO'-vl)而言,順序交換位 元域?yàn)?OO, 10, 01),而對于reorder—vertices(v2'=v2, vl'=vl, vO;vO)而
言,順序交換位元域?yàn)?io,oi,oo),這些位元保持原來的次序。
在圖5A —D中顯示本發(fā)明方法的一實(shí)施例的流程圖。在圖5A中的 步驟200,先接收一繪圖基本圖形的復(fù)數(shù)個頂點(diǎn)。其次,在步驟202中, 最小頂點(diǎn),即最靠近原點(diǎn)的頂點(diǎn)己經(jīng)被定義。在步驟204中,是在環(huán) 形次序中將最小頂點(diǎn)移動至一第一已預(yù)先定義的位置。而在回路206、 208及210中,每個下一頂點(diǎn)依序被移動至下一已預(yù)先定義的位置。
在圖5B中,是用來顯示決定最小頂點(diǎn)的步驟。繪圖基本圖形的每 一頂點(diǎn)可由回路220至232來決定。而在步驟222中,比較其x與y坐標(biāo) 以決定何者較大。步驟224中,儲存此比較的結(jié)果。然后,在步驟226 中,兩個坐標(biāo)中較大者會被選擇到。在步驟228中,x與y坐標(biāo)的符號 被決定并被儲存。在步驟230中,所選擇的坐標(biāo)、坐標(biāo)比較后的儲存 結(jié)果以及所儲存的每一坐標(biāo)的符號均會被鏈接成一字符串。在步驟234 中,當(dāng)所有的鏈接都已可用時,每一頂點(diǎn)的字符串會與其它頂點(diǎn)的字 符串互相比較,以決定最小頂點(diǎn)。
在圖5C中,是顯示在一環(huán)形次序中,用來移動最小頂點(diǎn)至一第一 已預(yù)先定義的位置。假設(shè)有三個頂點(diǎn),且若最小頂點(diǎn)在第三位置(如在 步驟250中所決定),則在步驟252中,此第三位置被移動至一環(huán)形次序 中一新的第一位置。又如在步驟254中所決定,若最小頂點(diǎn)在第二位 置,則在步驟256中,此第二位置被移動至一新的第一位置。
在圖5D中,是顯示在一環(huán)形次序中,用來移動每個下一頂點(diǎn)至下 一已預(yù)先定義的位置。假設(shè)有三個頂點(diǎn),且若最小頂點(diǎn)在第三位置(如 在步驟260中所決定),則在步驟262中,第二位置的頂點(diǎn)被移動至一 新的第三位置,而在第一位置的頂點(diǎn)被移動至一新的第二位置。接著, 如步驟264中所決定,若最小頂點(diǎn)在第二位置,則在第三位置的頂點(diǎn) 被移動至一新的第二位置,并且在步驟266中,第一位置的頂點(diǎn)被移 動至一新的第三位置。
上述已將本發(fā)明配合較佳的實(shí)施例作一詳細(xì)說明,但其它的實(shí)施 例亦有可能。因此,上述內(nèi)文中對本發(fā)明的相關(guān)附圖及其說明并不應(yīng) 受限于本實(shí)施例,反而其意圖在涵蓋有關(guān)本發(fā)明精神及在附屬申請專 利范圍中所定義的發(fā)明范圍所有可替代、修正的及類似的案件。
權(quán)利要求
1.一種三維圖形中頂點(diǎn)重新排序的方法,包括接收一繪圖基本圖形的復(fù)數(shù)個頂點(diǎn),該復(fù)數(shù)個頂點(diǎn)具有一環(huán)形次序,每一頂點(diǎn)在環(huán)形次序中具有一未知的位置以及包含相關(guān)于一已預(yù)先定義的原點(diǎn)的坐標(biāo);決定一最小頂點(diǎn),其是自該繪圖基本圖形的復(fù)數(shù)個頂點(diǎn)中選出之一最接近該原點(diǎn)者;移動該最小頂點(diǎn),其是在該環(huán)形次序中,將該最小頂點(diǎn)移動至一第一已預(yù)先定義的位置;及在該環(huán)形次序中,將每個下一頂點(diǎn),依序移動至下一已預(yù)先定義的位置,以使該繪圖基本圖形的復(fù)數(shù)個頂點(diǎn)具有一指定的次序,而不管其原先所獲得的次序?yàn)楹巍?br>
2. 如權(quán)利要求l所述的三維圖形中頂點(diǎn)重新排序的方法, 其中每一頂點(diǎn)具有一X坐標(biāo)及一y坐標(biāo);及其中用來決定該繪圖基本圖形的頂點(diǎn)中何者最接近原點(diǎn)的步驟,包括對該繪圖基本圖形的每一頂點(diǎn), 比較該X坐標(biāo)及該y坐標(biāo),以決定何者較大; 儲存該比較的結(jié)果; 選擇該x坐標(biāo)或該y坐標(biāo)中較大者; 決定并儲存該x和該y坐標(biāo)的符號;及將該己選擇的坐標(biāo)、該坐標(biāo)比較后的儲存結(jié)果及已儲存的該每一坐標(biāo)的符號鏈接成為一字符串;及比較該每一頂點(diǎn)的字符串與其它頂點(diǎn)的字符串,以決定該最小頂點(diǎn)。
3. 如權(quán)利要求l所述的三維圖形中頂點(diǎn)重新排序的方法, 其中該繪圖基本圖形具有三個頂點(diǎn)及該每一頂點(diǎn)具有一x坐標(biāo)及一y坐標(biāo);及其中用來決定該繪圖基本圖形頂點(diǎn)中何者最接近原點(diǎn)的步驟,包括對該繪圖基本圖形的每一頂點(diǎn), 比較該X坐標(biāo)及該y坐標(biāo),以決定何者較大; 儲存該比較的結(jié)果; 選擇該x坐標(biāo)或該y坐標(biāo)中較大者; 決定并儲存該x和該y坐標(biāo)的符號;及將該己選擇的坐標(biāo)、該坐標(biāo)比較后的儲存結(jié)果及已儲存的該每一 坐標(biāo)的符號鏈接成為一字符串;及比較一第一頂點(diǎn)的字符串與一第二頂點(diǎn)的字符串、該第二頂點(diǎn)的 字符串與一第三頂點(diǎn)的字符串及該第三頂點(diǎn)的字符串與該第一頂點(diǎn)的字符串,以決定該最小頂點(diǎn)。
4. 如權(quán)利要求l所述的三維圖形中頂點(diǎn)重新排序的方法, 其中該繪圖基本圖形具有三個頂點(diǎn),位置分別為一第一位置、一第二位置及一第三位置;及其中在該環(huán)形次序中,移動該最小頂點(diǎn)至該第一已預(yù)先定義的位 置的步驟,包括若最小頂點(diǎn)的位置位于該第三位置,則移動該第三位置至一新的 第一位置;及若最小頂點(diǎn)的位置位于該第二位置,則移動該第二位置至一新的 第一位置。
5. 如權(quán)利要求4所述的三維圖形中頂點(diǎn)重新排序的方法,其中移 動每個下一頂點(diǎn)的步驟,包括若最小頂點(diǎn)的位置位元于該第三位置,則移動該第二位置至一新 的第三位置并移動該第一位置至一新的第二位置;及若最小頂點(diǎn)的位置位于該第二位置,則移動該第三位置至該新的 第二位置并移動該第一位置至該新的第三位置。
6. —種三維圖形中頂點(diǎn)重新排序的裝置,包括一繪圖基本圖形儲存區(qū)塊,用來儲存一繪圖基本圖形的復(fù)數(shù)個頂 點(diǎn),每一頂點(diǎn)具有在該儲存區(qū)塊中一未知的位置,并包含相對于一已 定義的原點(diǎn)的坐標(biāo);一比較邏輯區(qū)塊,被連接用來接收儲存在該繪圖基本圖形儲存區(qū) 塊中的頂點(diǎn),并用來決定該繪圖基本圖形的頂點(diǎn)中何者最接近原點(diǎn), 該最接近的頂點(diǎn)被稱為最小頂點(diǎn),并產(chǎn)生一順序交換位元位元域,其 中包含建立在該已決定的最小頂點(diǎn)以重新排序頂點(diǎn)的指令;復(fù)數(shù)個多路復(fù)用器,被連接用來接收儲存在該繪圖基本圖形儲存 區(qū)塊中的復(fù)數(shù)個頂點(diǎn),該每一復(fù)數(shù)個多路復(fù)用器依該順序交換位元域來選擇該復(fù)數(shù)個頂點(diǎn)之一,以至于該復(fù)數(shù)個多路復(fù)用器提供該重新排 序的繪圖基本圖形的頂點(diǎn)作為其輸出;及一控制邏輯區(qū)塊,被連接至該比較邏輯區(qū)塊,并用來接收該順序交換位元域及一顯示當(dāng)該頂點(diǎn)的坐標(biāo)已準(zhǔn)備好可由該儲存區(qū)塊所提供的報頭信號,并傳遞該順序交換位元域至該復(fù)數(shù)個多路復(fù)用器以控制 該復(fù)數(shù)個多路復(fù)用器的選擇。
7. 如權(quán)利要求6所述的三維圖形中頂點(diǎn)重新排序的裝置,其中上述的控制邏輯區(qū)塊包括-一寄存器,被連接用來接收及儲存當(dāng)該報頭信號顯示該頂點(diǎn)的坐標(biāo)已準(zhǔn)備好的順序交換位元域;及一多路復(fù)用器,具有一連接至該緩存器的第一輸入、 一連接至接 收該順序交換位元位元域的第二輸入及一連接至該報頭信號的選擇控 制信號,以至于當(dāng)該報頭信號顯示該頂點(diǎn)的坐標(biāo)已準(zhǔn)備好時,該多路復(fù)用器傳遞該接收到的順序交換位元域至該復(fù)數(shù)個多路復(fù)用器,及當(dāng)該報頭信號顯示該頂點(diǎn)的坐標(biāo)尚未準(zhǔn)備好時,該多路復(fù)用器傳遞該儲 存到的順序交換位元域至該復(fù)數(shù)個多路復(fù)用器。
全文摘要
一種三維圖形中頂點(diǎn)重新排序的方法及裝置。該方法的繪圖基本圖形的頂點(diǎn)是以一環(huán)形的次序獲得,但頂點(diǎn)的位置在環(huán)形次序中為任意。這些頂點(diǎn)包含相關(guān)于一原點(diǎn)的坐標(biāo)。一比較邏輯在每一頂點(diǎn)坐標(biāo)上運(yùn)作,以決定何者為最小頂點(diǎn)。一旦此最小頂點(diǎn)已知,則這些頂點(diǎn)會被移動至適當(dāng)?shù)拇涡?,并且最小頂點(diǎn)會在最低次序的位置,而在環(huán)形次序中的下一頂點(diǎn)則位于下一位置,依此類推。該方法的裝置用來儲存這些經(jīng)過重新排序后的頂點(diǎn)信息,因此使得每一頂點(diǎn)的次序以參數(shù)形態(tài)保存。
文檔編號G06T15/10GK101174330SQ200410005540
公開日2008年5月7日 申請日期2004年2月11日 優(yōu)先權(quán)日2003年4月23日
發(fā)明者何建德, 陽 焦, 黃錫霖 申請人:威盛電子股份有限公司