專利名稱:圖象處理器及圖象處理方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖象處理器,具體涉及一種用于計算機(jī)圖形的圖象處理器和圖象處理方法。
在計算機(jī)圖形領(lǐng)域,為了提高圖象處理的性能,常用一種方法是將屏幕劃分為許多微小矩形區(qū)域(下文中簡稱為“區(qū)格(fragment)”),并以區(qū)格為單位逐區(qū)格地來對圖象進(jìn)行處理。
接下來參照
圖14到17對此種常規(guī)方法進(jìn)行說明。其中首先,(1)利用區(qū)格框架來劃分各多邊形,并利用含有已知各多邊形的區(qū)段來進(jìn)行存儲。
附圖14中,15個區(qū)格排列成一個3×5的矩陣,其上定義有多邊形A,B和C。就多邊形A來說,如圖15所示,其與8個區(qū)格相對應(yīng)。根據(jù)其坐標(biāo)α,β,γ等將這些區(qū)格存儲到如圖16所示的緩沖存儲器中。其中圖15所示的α1和α2被存儲在緩沖存儲器的存儲區(qū)α中,而β1和β2則被存儲在緩沖存儲器的存儲區(qū)B中,γ1和γ2則被存儲在緩沖存儲器的存儲區(qū)R中。其余坐標(biāo)與此類似。
(2)接著,將對所有區(qū)格中由當(dāng)前所涉及的多邊形所覆蓋的那些區(qū)格進(jìn)行計算及著色。例如,如圖17所示,首先將針對多邊形A(見圖17(b))對區(qū)格δ1進(jìn)行著色,接著再針對多邊形B(見圖17(c))對其進(jìn)行著色,最后則針對多邊形C進(jìn)行著色(見圖17(d))。重復(fù)執(zhí)行這種操作,直到處理完最后一個多邊形,或完全覆蓋了該區(qū)格為止。對所有區(qū)格進(jìn)行上述處理。
上述步驟(1)和(2)即為常規(guī)圖象元素數(shù)據(jù)處理的操作。
然而,此方法需要將所有多邊形分別劃分成其各自的目標(biāo)區(qū)格(objective fragment),因此其計算量十分巨大,同時相應(yīng)地需要較長的處理時間。
此外,隨之還會帶來多種缺陷。例如,其應(yīng)配置一個容量較大的存儲裝置來存儲所生成的關(guān)于所劃分多邊形的信息。為了使處理速度更快,要求存儲操作應(yīng)更加迅速,從而使存儲裝置的成本上升。
而且,當(dāng)半透明多邊形具有紋理數(shù)據(jù)時,則常規(guī)方法將無法對其進(jìn)行處理。
本發(fā)明旨在解決上述問題,其目的是能夠在計算機(jī)圖形系統(tǒng)中高效地且快速地對圖象元素數(shù)據(jù)進(jìn)行處理,并以低于常規(guī)水平的成本獲取高質(zhì)量的圖象。實現(xiàn)此目的的一種方法是將屏幕劃分為多個微小矩形區(qū)域(區(qū)格)來進(jìn)行處理。這樣做的目的是使其能夠高效地檢索出所涉及區(qū)域中所包含的多邊形。簡而言之,本發(fā)明提供了一種能夠在計算機(jī)圖形系統(tǒng)中,以低于常規(guī)水平的成本來提供更高質(zhì)量圖象的系統(tǒng)和方法。
在根據(jù)本發(fā)明的圖象處理器中,將屏幕劃分為多個預(yù)定大小的區(qū)域且分別對所劃分的各區(qū)域進(jìn)行處理,該圖象處理器包含有用于對垂直于掃描線的方向上的圖象構(gòu)成元素上的信息進(jìn)行重排的第一重排裝置,用于對相對于掃描線的水平方向上的圖象構(gòu)成元素上的信息進(jìn)行重排的第二重排裝置,以及用于根據(jù)上述圖象構(gòu)成元素上重排后的信息進(jìn)行圖象處理的圖象處理單元。
在根據(jù)本發(fā)明的圖象處理器中,第一重排裝置根據(jù)與垂直方向有關(guān)的圖象構(gòu)成元素的最小值和最大值進(jìn)行重排,而第二重排裝置則根據(jù)由第一重排裝置所處理區(qū)域的垂直坐標(biāo)范圍內(nèi),圖象構(gòu)成元素水平方向上的最小值和最大值進(jìn)行重排。
以最小值或最大值進(jìn)行重排均可以。當(dāng)以最大值作為索引來進(jìn)行重排時,只是處理順序的方向會發(fā)生改變(即“從左到右”變?yōu)椤皬挠业阶蟆?,或“從上到下”變?yōu)椤皬南碌缴稀?,而沒有其它不同之處,也就是說,對于最小值和最大值可以采用類似的處理方法。即使當(dāng)處理順序是從垂直到水平或從水平到垂直時,其也可以采用類似的處理。
在本發(fā)明的圖象處理器中,第一和第二重排裝置執(zhí)行鏈接處理,以將重排后的圖象構(gòu)成元素相關(guān)信息的相互鏈接在一起。
在根據(jù)本發(fā)明的圖象處理器中,第一和第二重排裝置執(zhí)行鏈接更新處理,以將與圖象構(gòu)成元素相對應(yīng)區(qū)域中的多余圖象構(gòu)成元素變?yōu)闊o效狀態(tài)。
在本發(fā)明的圖象處理器中,在對每個所劃分區(qū)域進(jìn)行圖象處理時,圖象處理單元不僅將所要處理的對象分成不透明多邊形、具有透明象素的多邊形、以及半透明多邊形,并且還將按照不透明多邊形、具有透明象素的多邊形和半透明多邊形的順序來依次進(jìn)行處理。
根據(jù)本發(fā)明的圖象處理方法可將屏幕劃分為多個預(yù)定大小的區(qū)域,并可對所劃分的每個區(qū)域分別進(jìn)行處理,其具有第一重排步驟對相對于掃描線垂直方向上的圖象構(gòu)成元素的信息進(jìn)行重排;第二重排步驟對相對于掃描線水平方向上的圖象構(gòu)成元素的信息進(jìn)行重排;以及圖象處理步驟;根據(jù)重排后的圖象構(gòu)成元素信息進(jìn)行圖象處理。
根據(jù)本發(fā)明的圖象處理方法,在第一重排步驟中,是根據(jù)圖象構(gòu)成元素在垂直方向上的最小值來進(jìn)行重排的,而在第二重排步驟中,則是在第一重排步驟中所處理區(qū)域的垂直坐標(biāo)的范圍內(nèi),根據(jù)圖象構(gòu)成元素在水平方向上的最小值來進(jìn)行重排的。
根據(jù)本發(fā)明的圖象處理方法,在第一重排步驟中將執(zhí)行鏈接處理,以將圖象構(gòu)成元素上重排后的信息相互鏈接在一起。
根據(jù)本發(fā)明的圖象處理方法,在第一和第二重排步驟中,將執(zhí)行鏈接更新處理,以將與圖象構(gòu)成元素相對應(yīng)區(qū)域中的不需要的圖象構(gòu)成元素變?yōu)闊o效狀態(tài)。
根據(jù)本發(fā)明的圖象處理方法,在圖象處理步驟中,在將所要處理的對象分組成不透明多邊形、具有透明象素的多邊形和半透明多邊形的情況下,按照不透明多邊形、具有透明象素的多邊形和半透明多邊形的順序?qū)λ鶆澐指鲄^(qū)域分別進(jìn)行圖象處理。
圖1所示為根據(jù)本發(fā)明實施例1的圖象處理器的功能方框圖;圖2所示為根據(jù)本發(fā)明實施例1的圖象處理器的幾何處理器的功能方框圖;圖3所示為根據(jù)本發(fā)明實施例1的圖象處理器的填充處理器的功能方框圖;圖4所示為根據(jù)本發(fā)明實施例1的圖象處理器的紋理處理器的功能方框圖;圖5所示為根據(jù)本發(fā)明實施例1的圖象處理器的陰影(shading)處理器的功能方框圖;圖6所示為本發(fā)明實施例1的整體處理流程圖;圖7所示為本發(fā)明實施例1中的Y索引緩沖器和Y排序緩沖器的相關(guān)處理的示意圖;圖8所示為本發(fā)明實施例1中的Y索引緩沖器和Y排序緩沖器的相關(guān)處理的示意圖;圖9所示為本發(fā)明實施例1中的Y索引緩沖器和Y排序緩沖器的相關(guān)處理的示意圖;圖10所示為本發(fā)明實施例1中的Y索引緩沖器和Y排序緩沖器相關(guān)處理的示意圖;圖11所示為本發(fā)明實施例1中,對于每個多邊形最先變?yōu)橛行顟B(tài)的區(qū)格的示意圖;圖12所示為本發(fā)明實施例1中的鏈接更新處理的示意圖;圖13所示為本發(fā)明實施例1中的鏈接更新處理的示意圖;圖14所示為常規(guī)處理方法中區(qū)格和多邊形A,B和C之間關(guān)系的示意圖;圖15所示為常規(guī)處理方法中與多邊形A相對應(yīng)的區(qū)格的示意圖。
圖16所示為常規(guī)處理方法中緩沖存儲器的存儲內(nèi)容的示意圖;圖17所示為根據(jù)常規(guī)處理方法的著色處理的示意圖。
實施本發(fā)明的優(yōu)選實施例本發(fā)明的實施例1接下來將對根據(jù)本發(fā)明的實施例1的裝置和方法進(jìn)行說明。
圖1所示為根據(jù)本發(fā)明實施例1的功能方框圖。其中,參考標(biāo)號1表示一個CPU(中央處理單元),用于對虛擬空間中的物體進(jìn)行操作以獲得關(guān)于其操作的信息,以及進(jìn)行多種控制。參考標(biāo)號2表示用于以高速進(jìn)行諸如多邊形坐標(biāo)變換、剪裁處理、三維計算機(jī)圖形中的透視變換和/或亮度計算等類型的幾何變換(即,紋理壓縮計算)的幾何處理器。參考標(biāo)號2a表示一個用于存儲對幾何處理器2正進(jìn)行操作的一幀圖象有效的多邊形數(shù)據(jù)、材質(zhì)數(shù)據(jù)以及光線數(shù)據(jù)的多邊形/材質(zhì)/光線緩沖器存儲器(多邊形/材質(zhì)/光線緩沖器RAM)。這些多邊形構(gòu)成虛擬空間中各種多面體。緩沖存儲器2a中所存儲數(shù)據(jù)的內(nèi)容如下鏈接信息,坐標(biāo)信息和關(guān)于多邊形其它屬性的信息,即包括LINKX,LINK Y,X,Y,iz,Tx,Ty,Nx,Ny,SIGN N,Alpha(透明度),光線ID以及材質(zhì)ID。
材質(zhì)信息包括“是否有深度”(Depth Enable),深度函數(shù)(Depthfunction),深度密度(Depth density),有無紋理(Texture enable),是否霧化(Fog enable),是否半透明(translucensy enable),紋理類型(texturetype),紋理函數(shù)(texture function),偏移(offset)x,y,尺寸(size)x,y,重復(fù)(repeat)x,y,鏡向(mirror)x,y,顏色(color)id,高亮光(Shinines),材質(zhì)反射光斑(Material specular),材質(zhì)發(fā)射光(Material emission),多邊形顏色(Polygon color),紋理模式(Texture mode),混合模式(blendmode);以及光線信息,其包括光線位置(Light position),光照方向(LightDirection),光線類型(Light Type),衰減截止點(diǎn)(Attenuation Cutoff),光點(diǎn)曝光表(Spotexp),光顏色(Light Color),以及光線環(huán)境(LightAmbient)。
參考標(biāo)號3表示負(fù)責(zé)進(jìn)行“消隱面去除處理”的填充處理器。填充處理器3對存在于某區(qū)域之內(nèi)的多邊形進(jìn)行著色,以逐象素地獲取位于前景位置上的各多邊形的相關(guān)信息。
參考標(biāo)號4表示紋理處理器。紋理處理器4將紋理貼(map)到某區(qū)域中的各象素上。紋理貼圖是為了產(chǎn)生圖象而將因物體形狀而異的不同紋理貼到有確定形狀的物體表面上的處理。參考標(biāo)號4a表示其中保存有紋理處理器4所進(jìn)行的處理中用到的各種紋理貼圖的紋理存儲器(紋理RAM)。
參考標(biāo)號5所示為陰影處理器。陰影是一種在綜合考慮多邊形的法向矢量、光源位置和顏色、視點(diǎn)位置、視線方向以及其它因素的情況下,用于由多個多邊形組成的物體上表現(xiàn)陰影或諸如此類效果的技術(shù)。陰影處理器5在進(jìn)行處理時需計算某區(qū)域內(nèi)各象素的亮度。參考標(biāo)號5a所示為其中存儲有一屏圖象數(shù)據(jù)的幀緩存。從幀緩存5a中順序地讀出數(shù)據(jù),隨后在將其提供給諸如CRT、液晶顯示器、等離子顯示裝置等類型的顯示器之前(圖中未示出)先將其從數(shù)字?jǐn)?shù)據(jù)轉(zhuǎn)化為模擬信號。
參考標(biāo)號6表示存儲有多條給圖象處理器的命令(諸如多邊形數(shù)據(jù)庫和顯示列表)以及到CPU 1的多種程序的工作程序/多邊形緩沖存儲器(工作程序/多邊形緩沖RAM)。緩沖存儲器6同時還用作CPU1的工作存儲器。
填充處理器3,紋理處理器4以及陰影處理器5用于進(jìn)行被稱為渲染(rendering)的處理。在各區(qū)域中,從其屏幕的左上角位置開始順序地進(jìn)行渲染處理。實際上,利用幾何原理可以將物體定位在虛擬空間坐標(biāo)系中,并將其透視變換到屏幕上。利用渲染處理,可以在定義于屏幕坐標(biāo)系中的數(shù)據(jù)上產(chǎn)生相應(yīng)的圖象。循環(huán)進(jìn)行渲染處理,其次數(shù)與總區(qū)域數(shù)相同。
接下來將參照圖2到5中所示的功能方框圖,對根據(jù)本發(fā)明實施例1的圖象處理器進(jìn)行說明。
圖2所示為幾何處理器2的功能方框圖。該圖中,參考標(biāo)號21表示一個不僅要從緩沖存儲器6中讀出命令,而且還要對其進(jìn)行分析,以及據(jù)分析結(jié)果對矢量引擎(engine)22和剪裁(clipping)引擎24進(jìn)行控制,并向排序引擎27提供處理所得數(shù)據(jù)的數(shù)據(jù)分配器。
參考標(biāo)號22所示為用于執(zhí)行矢量計算的矢量引擎。由該引擎所處理的矢量被存儲在矢量寄存器23中。
參考標(biāo)號23表示一個用于保存矢量引擎22所要計算的矢量數(shù)據(jù)的矢量寄存器。
參考標(biāo)號24表示一個用于進(jìn)行剪裁處理的剪裁引擎。
參考標(biāo)號25表示一個保存有由排序引擎27所執(zhí)行的Y排序處理中所用到的Y索引的Y排序索引(Y-sort INDEX)。
參考標(biāo)號26表示一個保存有由排序引擎27所執(zhí)行的X排序處理中所用到的X索引的X排序索引(X-sort INDEX)。
參考標(biāo)號27所示為一個用于執(zhí)行X排序和Y排序、以從緩沖器6中檢索出落在相關(guān)區(qū)格內(nèi)的多邊形的排序引擎。所檢索出的多邊形不僅被存儲到緩沖存儲器2a中,同時還被發(fā)送給填充處理器3以進(jìn)行渲染處理。排序引擎27另外還負(fù)責(zé)對多邊形TAG 28和多邊形高速緩存34進(jìn)行控制。
參考標(biāo)號28表示一個用于保存多邊形高速緩存34的TAG的多邊形TAG。
圖3所示為填充處理器3的功能方框圖。該圖中,參考標(biāo)號31表示用于對下文中所要說明的材質(zhì)信息高速緩存42,45,51b,52a和53a以及光線高速緩存51a進(jìn)行控制的高速緩存控制器。
參考標(biāo)號32表示用于保存下文中所要說明的材質(zhì)信息高速緩存42,45,51b,52a和53a以及光線高速緩存51a的TAG的材質(zhì)TAG。
參考標(biāo)號33所示為光線TAG,其是一個保存有下文中所要說明的光線高速緩存51a的TAG的緩沖器。
參考標(biāo)號34表示一個用作多邊形數(shù)據(jù)的高速緩沖存儲器的多邊形高速緩存。
參考標(biāo)號35所示為用于求出DDA初值的初始參數(shù)計算器。
參考標(biāo)號36所示為一個Z值比較器陣列,其負(fù)責(zé)在多個多邊形之間進(jìn)行Z值比較,以進(jìn)行“消隱面去除”處理,以及對多邊形ID和值為t0,t1和t2的分割比(division ratio)進(jìn)行處理。Z值比較器陣列36由64(8×8)個Z值比較器構(gòu)成。這些比較器以并行方式進(jìn)行操作,因此其能夠同時對64象素進(jìn)行處理。一個Z值比較器保存一個多邊形的數(shù)據(jù)。這些數(shù)據(jù)可以包括,例如多邊形ID,iz,t0,t1,t2,窗口,樣板(stencil)和陰影。
參考標(biāo)號37是一個用于保存關(guān)于各多邊形各頂點(diǎn)的數(shù)據(jù)的頂點(diǎn)參數(shù)緩沖器。與Z值比較器陣列36相對應(yīng),該緩沖器能夠存儲64個多邊形的數(shù)據(jù)。
參考標(biāo)號38是一個插值器,用于通過根據(jù)由Z值比較器陣列36計算所得的結(jié)果t0,t1,t2和iz、以及頂點(diǎn)參數(shù)緩沖器37的存儲內(nèi)容進(jìn)行插值,來計算象素參數(shù)。
圖4所示為紋理處理器4的功能方框圖。該圖中,參考標(biāo)號41表示一個用于計算霧化和深度排隊(queuing)所需的混合率的密度計算器。
參考標(biāo)號42所示為一個其中存儲有與深度信息有關(guān)的數(shù)據(jù)的材質(zhì)信息高速緩存。
參考標(biāo)號43表示用于保存各窗口的相關(guān)信息的窗口寄存器。這些信息是以,例如kz,cz,霧化函數(shù)(fog function),霧化密度(fogdensity),和霧化結(jié)束點(diǎn)(fog end)z的形式來表示的。
參考標(biāo)號44表示一個用于利用坐標(biāo)Tx,Ty和LOD技術(shù)來計算紋理貼圖的地址的地址發(fā)生器。
參考標(biāo)號45所示為其中保存有與材質(zhì)有關(guān)的數(shù)據(jù)的材質(zhì)信息高速緩存。
參考標(biāo)號46表示一個用于執(zhí)行三維插值的常用方法—“三線性MIP貼圖插值處理”的TLMMI計算器(TLMMI三線性MIP貼圖插值處理)?!癕IP貼圖處理”是一種用于進(jìn)行邊緣平滑,即消除紋理在貼圖過程中所產(chǎn)生的鋸齒的技術(shù)。此技術(shù)原理如下。理論上,一個物體投影到一個象素上的表面的顏色(亮度)應(yīng)該是其相應(yīng)各映射區(qū)上的顏色的均值。如果不是,則鋸齒現(xiàn)象將十分明顯,從而使紋理的品質(zhì)變差。另一方面,為求得每個均值所需的處理將使計算量極大地增加,其結(jié)果是處理將需要更長的時間,或者是需要速度更快的處理方法。而MIP貼圖便可以解決此問題。根據(jù)MIP貼圖技術(shù),為了簡化與單個象素相關(guān)的映射區(qū)顏色(強(qiáng)度)的采集操作,將事先準(zhǔn)備一組其寬度為2的整次冪的貼圖數(shù)據(jù)。與一個象素相關(guān)的所有貼圖區(qū)的尺寸將變?yōu)椋嬖谟谌魏瓮ㄟ^將其乘以2的整次冪所產(chǎn)生的兩個數(shù)據(jù)之間的值(例如,如果所需貼圖的大小為192×192,則可以用2大小分別為256×256和128×128的貼圖進(jìn)行內(nèi)插計算,求得最合適的貼圖)。通過對這兩個數(shù)據(jù)進(jìn)行比較,可以得到對應(yīng)貼圖區(qū)域的顏色。例如,如果有一個單倍(one-time)屏幕A和半倍屏幕B,則將能夠得到與1/1.5倍屏幕C相對應(yīng)的屏幕A和B的每個象素。本例中,屏幕C各象素的顏色等于兩個屏幕A和B的象素之間的中間顏色。
參考標(biāo)號47表示一個用于在4位texel處理中變換顏色的顏色變換器。
參考標(biāo)號48所示為其中顏色信息是在4位texel處理中進(jìn)行保存的顏色調(diào)色板。調(diào)色板48被用來存儲用于“圖形繪制”的各種顏色。根據(jù)調(diào)色板48的內(nèi)容,可以確定每個象素可用的顏色。
圖5所示為陰影處理器5的功能方框圖。該圖中,參考標(biāo)號51表示一個用于計算已進(jìn)行完紋理貼圖處理的各多邊形的亮度的圖象處理器。
參考標(biāo)號51a表示一個用于存儲與光線有關(guān)的信息的光線信息高速緩存。
參考標(biāo)號51b所示為用于存儲與材質(zhì)有關(guān)的信息的材質(zhì)信息高速緩存。此信息包括高亮光(Shinies),材質(zhì)反射光斑(Material specular),以及材質(zhì)發(fā)射光(material emission)等信息。
參考標(biāo)號51c表示一個用于保存與窗口有關(guān)的信息的窗口寄存器。這些信息由屏幕中心(Screen center),焦點(diǎn)(Focus),場景環(huán)境(Sceneambient)以及其它數(shù)據(jù)組成。
參考標(biāo)號52表示用于對多邊形顏色和紋理顏色進(jìn)行關(guān)聯(lián),以及亮度調(diào)制和霧化處理的調(diào)制處理器。
參考標(biāo)號52a表示一個其中存儲有與材質(zhì)有關(guān)的信息的材質(zhì)信息高速緩存。此信息包括多邊形顏色和紋理模式。
參考標(biāo)號52b表示一個用于保存與窗口有關(guān)的信息的窗口寄存器。此信息包括霧化顏色。
參考標(biāo)號53表示用于將存儲在顏色緩沖器54中的數(shù)據(jù)進(jìn)行混合并將其結(jié)果寫入到顏色緩沖器54中的混合處理器。混合處理器53根據(jù)混合率寄存器的值對當(dāng)前象素的顏色與幀緩存的象素顏色進(jìn)行混合,隨后將混合結(jié)果寫入到由存儲體寫入(write bank)寄存器所表示的存儲體幀緩存中。
參考標(biāo)號53a所示為用于存儲與材質(zhì)有關(guān)的信息的材質(zhì)信息高速緩存。此信息包括“混合模式”。
參考標(biāo)號54所示為一個大小與區(qū)格相同的8×8的雙存儲體(double-bank)結(jié)構(gòu)的顏色緩沖器。
參考標(biāo)號55表示一個用于將顏色緩沖器54中的數(shù)據(jù)寫入到幀緩存5a中的繪圖處理器。
參考標(biāo)號56所示為用于執(zhí)行位圖處理的位圖處理器。
參考標(biāo)號57表示用于從幀緩存5a中讀出數(shù)據(jù),并將其提供給DAC(數(shù)字-模擬轉(zhuǎn)換器),以將其顯示于顯示器上(未示出)的顯示控制器。
同時在本發(fā)明的實施例1中,不再是將多邊形劃分成多個區(qū)格,而是同時在相對于掃描線的垂直方向(下文中簡稱為Y方向)和水平方向(下文中簡稱為X方向)對多邊形進(jìn)行重排,從而能夠檢索出每個區(qū)格中所包含的所有多邊形。利用所檢索出的信息,便能夠針對當(dāng)前所涉及的各區(qū)格來對多邊形進(jìn)行處理,由此可以在不進(jìn)行上述多邊形劃分操作的情況下來進(jìn)行處理。因此,處理時間將大大縮短,同時其對處理裝置中存儲裝置容量的要求也將大為降低。
在渲染處理的過程中,將把多邊形分成不透明多邊形、半透明多邊形、以及具有透明象素的多邊形幾類分別進(jìn)行處理,同時在最后步驟才對半透明多邊形進(jìn)行處理,由此使得半透明多邊形也能夠得到處理。
接下來將參照圖6對根據(jù)本發(fā)明實施例1的處理方法的流程進(jìn)行說明。
先按照各多邊形的最小Y坐標(biāo)值對所要傳送給渲染處理部的多邊形數(shù)據(jù)進(jìn)行重排,而后將其寫入到緩沖器中(ST1)。
再按照各多邊形所涉及的Y區(qū)的最小X坐標(biāo)值對與當(dāng)前所涉及區(qū)格的Y坐標(biāo)值一致的多邊形數(shù)據(jù)進(jìn)行重排(ST2)。
對所有其坐標(biāo)與當(dāng)前所涉及區(qū)格的X和Y坐標(biāo)一致的不透明多邊形進(jìn)行渲染處理(ST3)。
對所有其坐標(biāo)與當(dāng)前所涉及區(qū)格的X和Y坐標(biāo)一致的透明多邊形進(jìn)行渲染處理(ST4)。
根據(jù)緩沖器中的數(shù)據(jù),先進(jìn)行紋理著色處理,隨后再通過將其轉(zhuǎn)換為顏色數(shù)據(jù)來完成陰影處理(ST5)。
步驟ST4和ST5的執(zhí)行順序可以相反。實際上,更多情況下是按照先步驟ST5再ST4的順序來執(zhí)行的。
隨后,按照Z坐標(biāo)值的大小順序?qū)εc當(dāng)前所涉及區(qū)格的X和Y坐標(biāo)一致的半透明多邊形進(jìn)行渲染處理(ST6)。
而后將緩沖器中的顏色數(shù)據(jù)寫入到幀緩存中(ST7)。
如圖6所示,多邊形數(shù)據(jù)首先按照Y進(jìn)行重排,隨后在繼續(xù)對每條顯示線進(jìn)行處理之前再按照區(qū)域Y中X的最小值對重排所得的上述數(shù)據(jù)進(jìn)行重排。其結(jié)果是,可以找出某多邊形所應(yīng)最先被處理的區(qū)格的位置。因此,其首先將找出是哪個區(qū)格包含有該多邊形。此外,在對第一區(qū)格所包含的相關(guān)多邊形進(jìn)行完處理之后,將對各多邊形進(jìn)行鏈接處理(詳見下文),通過其依次地清除掉對于所處理區(qū)格已不再需要的多邊形,由此在下一區(qū)格中所包含的多邊形相關(guān)信息中將只包括必要的多邊形。因此,通過追溯(track back)迄今為止所作出的所有鏈接,可以使所有多邊形落在所正檢索的每個區(qū)格中。在不需要為產(chǎn)生新多邊形以及對其進(jìn)行處理而將多邊形劃分成區(qū)格的情況下,可以同時讀取并處理各區(qū)格中各多邊形的相關(guān)信息。
鏈接更新處理是一種用于在對所涉及的區(qū)格進(jìn)行完多邊形處理之后,檢查在接下來所涉及的區(qū)格中是否還需要再對多邊形進(jìn)行處理(即是否變?yōu)闊o效狀態(tài)),并當(dāng)所檢查的多邊形變?yōu)闊o效狀態(tài)時將其從鏈接中去除的技術(shù)。
接下來將對用于渲染的處理單元進(jìn)行說明。
(1)首先將多邊形分成不透明多邊形、具有透明象素的多邊形和半透明多邊形三種類型。
(2)接著先對不透明多邊形進(jìn)行處理。其中將獨(dú)立地重寫紋理數(shù)據(jù),從而產(chǎn)生最終所余下的有效象素。隨后則只需快速地進(jìn)行Z值比較處理。
(3)在進(jìn)行完上述處理(1)和(2)時,區(qū)格緩沖器中的所有數(shù)據(jù)均將變?yōu)橛行顟B(tài)。此時將根據(jù)幀緩存中的數(shù)據(jù)讀出紋理數(shù)據(jù),隨后再對其顏色數(shù)據(jù)進(jìn)行轉(zhuǎn)換。
(4)而后將對具有透明象素的多邊形進(jìn)行渲染。為了實現(xiàn)此步驟,其需要根據(jù)其紋理單元(texel)是否透明來確定所要描繪的象素。因此,在渲染過程中,著色是在讀取關(guān)于透明紋理單元的信息的同時執(zhí)行的。其它步驟與不透明多邊形的處理步驟相同。因為其很難在渲染過程中讀取關(guān)于透明紋理的信息,所以優(yōu)選情況下將采用先步驟(4)后步驟(3)的處理順序。
(5)隨后將對半透明多邊形進(jìn)行處理,其中經(jīng)過Z值比較處理的所有象素的數(shù)據(jù)均為有效狀態(tài)。因而,其將讀出每個象素的紋理數(shù)據(jù),并通過到顏色數(shù)據(jù)的變換(混合)來進(jìn)行著色處理。由于多邊形描繪的順序?qū)Υ朔N混合處理有很大的影響,因此需要事先以任何適宜方式來進(jìn)行Z值排序處理。
接下來將參照圖7到圖13對根據(jù)本發(fā)明實施例1的區(qū)格CG系統(tǒng)進(jìn)行詳細(xì)說明。
首先將先對沿Y方向的重排處理進(jìn)行說明。圖7所示為Y索引緩沖器和Y排序緩沖器的結(jié)構(gòu)示意圖。該種Y索引緩沖器中存儲了含有區(qū)格行(其中分別寫入有Y坐標(biāo)最小值Ymin)的多邊形列表鏈接的頂端地址。而Y排序緩沖器中則按照數(shù)據(jù)輸入的順序存儲了多邊形數(shù)據(jù)。同時將屬于同一掃描線的鄰接各多邊形的地址存儲為Y排序緩沖器中的LINK Y參數(shù)。
因此,如果想要知道屬于某特定行的多邊形時,其完全可以追溯出從相應(yīng)Y索引地址到LINK Y結(jié)束點(diǎn)的多邊形鏈接。
接下來將對圖7所示的示例進(jìn)行說明。當(dāng)Y索引緩沖器中最上端區(qū)格行的地址為0,即其內(nèi)容為“空”(EMPTY)時,其表示沒有多邊形。第二行同樣如此。但Y排序緩沖器中顯示用于表示關(guān)于第三行的信息的地址2的內(nèi)容為“ADR8”以及“空”。因此,訪問排序緩沖器的ADR8將得到內(nèi)容為“ADR5”的LINK Y。因而,下一次將對ADR5進(jìn)行訪問。此步驟之后,將依次對ADR3和ADR1進(jìn)行類似的訪問。由于ADR1的LINK Y內(nèi)容為“END”,所以鏈接就此中止。對所有區(qū)格行均將以上述方式進(jìn)行相同的處理。
下面對多邊形數(shù)據(jù)的存儲步驟進(jìn)行說明。
假設(shè)在圖7所示的狀態(tài)下,輸入的是滿足其Ymin的Y INDEX=5的多邊形數(shù)據(jù)。由于Y索引緩沖器中第5索引的內(nèi)容為“EMPTY”,所以該多邊形數(shù)據(jù)的LINK Y將變?yōu)椤癊ND”。隨后將此多邊形數(shù)據(jù)存儲到Y(jié)排序緩沖器的ADR10中;另一方面,將剛存儲的多邊形數(shù)據(jù)的地址“ADR10”寫入到Y(jié)索引緩沖器的第5行中。更新后的狀態(tài)如圖8所示。
下面將對在圖8所示的狀態(tài)下,輸入的是滿足Ymin的Y INDEX=2的多邊形數(shù)據(jù)的情況進(jìn)行說明,由于在Y索引緩沖器的第二行中存儲了某多邊形數(shù)據(jù)的地址(圖8中的“ADR8”),因此從現(xiàn)在起每寫入一個多邊形便要存入相應(yīng)多邊形數(shù)據(jù)。因此,將該多邊形數(shù)據(jù)的LINK Y設(shè)置為其原始Y索引值“ADR8”;另一方面,將所剛存儲的多邊形數(shù)據(jù)的地址“ADR11”寫入到Y(jié)索引緩沖器的第二行中。更新后的狀態(tài)如圖9所示。
圖10所示為沿X方向進(jìn)行的重排處理的示意圖。X方向的處理步驟與Y方向的步驟相似,其中先求出Xmin,隨后再利用所求出的Xmin來進(jìn)行重排處理。
如上所述,通過分別在X和Y方向上進(jìn)行重排處理,將能夠找出多邊形最先變?yōu)橛行顟B(tài)時所在區(qū)格的位置(即,使區(qū)格最先為有效的多邊形)。例如,如圖11所示,在各多邊形的最小Y坐標(biāo)值中選出其X坐標(biāo)值最小的區(qū)格。
此外,關(guān)于重排結(jié)果,從0到相關(guān)顯示線(行)的所有顯示線將均被視為有效狀態(tài),因此,如果要顯示某個多邊形,則使該多邊形生效的區(qū)域?qū)⑷鐖D12所示,因而該多邊形的有效區(qū)域?qū)ú槐匾膮^(qū)格。因此,在此情況下將需要以如下方式來更新鏈接。
首先,在對該多邊形進(jìn)行完處理之后,將把那些在后面所處理的區(qū)格中處于無效狀態(tài)的多邊形從此鏈接上去除掉。例如,在圖13(a)所示的示例中,渲染處理后將從X LINK上去除掉區(qū)格F1到F7。同時在渲染處理之后還將從Y LINK上去除掉區(qū)格F7。通過執(zhí)行鏈接更新處理所得的多邊形有效區(qū)如圖11(b)所例示。
接下來將參照圖13對X方向鏈接處理的步驟進(jìn)行說明。
(1)在多邊形邊緣與沿X方向延伸的各區(qū)格的水平邊界之間所形成的各交集中,將對其中X坐標(biāo)值稍大(P2)的一個交集進(jìn)行檢查。
(2)將上述步驟(1)中所檢查的交集的X坐標(biāo)值,分別和從與當(dāng)前所涉及的顯示線中的區(qū)格X坐標(biāo)軸垂直的邊界中選出的其X坐標(biāo)值較大的邊界(邊界1到3)的X坐標(biāo)值進(jìn)行比較。
(3)如果比較結(jié)果是“小(邊界1和2)”,則將對該多邊形進(jìn)行鏈接處理,使其對下一區(qū)格也有效。
(4)如果比較結(jié)果為“大于”,則在渲染處理之后,將把該多邊形從鏈接上去除掉,使得在下一區(qū)格(邊界3)的處理中不再對其進(jìn)行處理。
對于Y方向也將使用相同的步驟來進(jìn)行Y方向鏈接處理。
如上所述,在本發(fā)明的實施例1中,其不再是逐區(qū)格地對多邊形進(jìn)行劃分,而是同時在相對于掃描線的垂直和水平方向上對多邊形進(jìn)行重排處理,由此而能夠檢索出各區(qū)格中所包含的所有多邊形。由于其利用了所檢索出的信息,同時是針對當(dāng)前所涉及的每個區(qū)格來劃分多邊形,所以其能夠讀出及處理每個區(qū)格中所包含的多邊形,同時卻不會產(chǎn)生新的多邊形。因此,與常規(guī)技術(shù)不同,其不再需要針對所要處理(to be objective)的每個區(qū)格來劃分所有多邊形,從而使原先的巨大計算量大為減少,同時其也不再需要配置大容量的存儲裝置來存儲由劃分處理所產(chǎn)生的多邊形的相關(guān)信息。其結(jié)果是,處理時間將大大縮短,而同時系統(tǒng)只需配置很小容量的存儲裝置。換句話說,其可以同時實現(xiàn)低成本和高性能的系統(tǒng)。
另外,將半透明特性多邊形的處理分離為分別對不透明多邊形,具有透明象素的多邊形和半透明多邊形進(jìn)行處理,且同時在最后才處理半透明多邊形的處理方法對系統(tǒng)性能的提高也有很大貢獻(xiàn)。
根據(jù)本發(fā)明,在其中將屏幕劃分成多個預(yù)定大小的區(qū)域,且同時以區(qū)域為單位逐區(qū)域地進(jìn)行處理的圖象處理器中,由于不僅在相對于掃描線的垂直方向上,而且同時在相對于掃描線的水平方向上均對圖象構(gòu)成元素的相關(guān)信息進(jìn)行了重排處理,進(jìn)而根據(jù)重排后的圖象構(gòu)成元素相關(guān)信息來進(jìn)行圖象處理,所以其能夠檢索出每個區(qū)域中的所有多邊形。因此,利用所檢索出的信息對相關(guān)各區(qū)域分別來劃分多邊形,能夠讀出并處理繪圖區(qū)域中所包含的所有多邊形,而同時卻不會產(chǎn)生新的多邊形。其結(jié)果是,處理時間的長度將大為縮短,而存儲裝置所需的容量也將大為降低。
因此,根據(jù)本發(fā)明,在對每個所劃分區(qū)域進(jìn)行圖象處理時,將把所要處理的對象分成不透明多邊形、具有透明象素的多邊形和半透明多邊形三種類型,隨后再以不透明多邊形,具有透明象素的多邊形和半透明多邊形的順序依次進(jìn)行處理,從而即使當(dāng)多邊形具有紋理數(shù)據(jù)時,其也能夠?qū)Π胪该鞫噙呅芜M(jìn)行處理。
權(quán)利要求
1.一種圖象處理器,其中將顯示器劃分成為預(yù)定大小的區(qū)域并分別對所劃分的區(qū)域進(jìn)行處理,該圖象處理器包括第一重排裝置,用于在垂直于掃描線的方向?qū)D象構(gòu)成元素的信息進(jìn)行重排;第二重排裝置,用于沿相對于掃描線的水平方向?qū)D象構(gòu)成元素上的信息進(jìn)行重排;以及圖象處理單元,用于根據(jù)重排后的圖象構(gòu)成元素上的信息進(jìn)行圖象處理。
2.如權(quán)利要求1所述的圖象處理器,其特征在于第一重排裝置根據(jù)圖象構(gòu)成元素在垂直方向上的最小或最大值進(jìn)行重排處理;第二重排裝置在由第一重排裝置所處理的區(qū)域的垂直坐標(biāo)范圍內(nèi),根據(jù)圖象構(gòu)成元素在水平方向上的最小或最大值進(jìn)行重排處理。
3.如權(quán)利要求2所述的圖象處理器,其特征在于第一和第二重排裝置執(zhí)行鏈接處理,以將圖象構(gòu)成元素上的重排后的信息相互鏈接在一起。
4.如權(quán)利要求3所述的圖象處理器,其特征在于第一和第二重排裝置執(zhí)行鏈接更新處理,以使與該圖象構(gòu)成元素相對應(yīng)的區(qū)域中的多余區(qū)域變?yōu)闊o效狀態(tài)。
5.如權(quán)利要求1到4中任一項所述的圖象處理器,其特征在于在對每個所劃分區(qū)域進(jìn)行圖象處理時,圖象處理單元不僅將所要處理的目標(biāo)分成不透明多邊形、具有透明象素的多邊形和半透明多邊形,并且還按照不透明多邊形、具有透明象素的多邊形和半透明多邊形的順序來進(jìn)行處理。
6.一種圖象處理方法,將屏幕劃分為多個預(yù)定大小的區(qū)域,并對每個所劃分區(qū)域分別進(jìn)行處理,該方法包括如下步驟第一重排步驟,沿垂直于掃描線的方向?qū)D象構(gòu)成元素上的信息進(jìn)行重排;第二重排步驟,沿相對于掃描線的水平方向?qū)D象構(gòu)成元素上的信息進(jìn)行重排;以及圖象處理步驟,根據(jù)圖象構(gòu)成元素上的重排后的信息進(jìn)行圖象處理。
7.如權(quán)利要求6所述的方法,其特征在于在所述第一重排步驟中,根據(jù)圖象構(gòu)成元素在垂直方向上的最小值來進(jìn)行重排處理;在所述第二重排步驟中,在第一重排步驟中所處理區(qū)域的垂直坐標(biāo)范圍內(nèi),根據(jù)圖象構(gòu)成元素在水平方向上的最小值來進(jìn)行重排處理。
8.如權(quán)利要求7所述的方法,其特征在于在所述第一和第二重排步驟中將執(zhí)行鏈接處理,以將重排后的圖象構(gòu)成元素上的信息鏈接在一起。
9.如權(quán)利要求3所述的方法,其特征在于在所述第一和第二重排步驟中將執(zhí)行鏈接更新處理,以使與圖象構(gòu)成元素相對應(yīng)各區(qū)域中的不需要的區(qū)域變?yōu)闊o效狀態(tài)。
10.如權(quán)利要求6到9之一所述的方法,其特征在于在上述圖象處理步驟中,是在將處理對象分成不透明多邊形、具有透明象素的多邊形和半透明多邊形的情況下,并按照不透明多邊形、具有透明象素的多邊形和半透明多邊形的順序依次來對每個所劃分區(qū)域來進(jìn)行圖象處理的。
全文摘要
一種能夠高效且快速地對圖象元素數(shù)據(jù)進(jìn)行處理,并且與常規(guī)技術(shù)相比能夠以較低的成本來產(chǎn)生高質(zhì)量圖象的計算機(jī)圖形系統(tǒng)。一種用于將屏幕劃分成多個預(yù)定大小的區(qū)域(區(qū)格),并對所劃分的每個區(qū)域(區(qū)格)上的數(shù)據(jù)分別進(jìn)行處理的圖象處理器,其中對圖象構(gòu)成元素上的信息沿相對于掃描線的垂直方向進(jìn)行重排處理(ST1),和沿平行于掃描線的方向進(jìn)行重排處理(ST2),并根據(jù)重排后的信息對不透明多邊形、具有透明象素的多邊形和半透明多邊形依次進(jìn)行圖象處理(ST3到ST6)。
文檔編號G06T15/50GK1275225SQ98805330
公開日2000年11月29日 申請日期1998年5月22日 優(yōu)先權(quán)日1997年5月22日
發(fā)明者安井哲祐, 森岡誠介, 大久保淳 申請人:世雅企業(yè)股份有限公司