專利名稱:材質(zhì)貼圖方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電腦繪圖軟件,尤其是一種材質(zhì)貼圖(Texture Mapping)方法,該材質(zhì)貼圖方法依據(jù)像素點(diǎn)的材質(zhì)座標(biāo)與/或像素點(diǎn)在材質(zhì)地圖上的形狀而加快材質(zhì)過濾(Texture Filtering)速度與減少存儲器存取次數(shù)。
在電腦生成3D影像的領(lǐng)域中,材質(zhì)貼圖為一種非常重要的關(guān)鍵技術(shù)。典型地,材質(zhì)地圖(Texture Map)為一顏色值的二維陣列,其中,個(gè)別的顏色值稱為材質(zhì)像素(Texel),且每一材質(zhì)像素在材質(zhì)地圖中具有一唯一地址,其中,此地址可以包括列與行編號,分別稱為u與v。
3D工具可以指定材質(zhì)座標(biāo)給任何原始物(Primitive)的任何頂點(diǎn)(Vertex)。當(dāng)電腦繪圖系統(tǒng)要描繪原始物時(shí),材質(zhì)座標(biāo)被計(jì)算且相應(yīng)的材質(zhì)像素由存儲器中被存取給原始物的每一像素(Pixel)。舉例來說,3D工具可以將一木質(zhì)材質(zhì)貼到3D物件的表面來建立一具有木頭紋理樣式的物件。
典型地,指定給頂點(diǎn)的u與v材質(zhì)座標(biāo)介于0.0至1.0的范圍之內(nèi)。其中,浮點(diǎn)數(shù)材質(zhì)座標(biāo)表示材質(zhì)像素中心不一定會是完整的材質(zhì)像素地址。對于最近點(diǎn)取樣技術(shù)(Nearest Point Sampling),像素值被設(shè)定為具有最接近整數(shù)地址的材質(zhì)像素的顏色。此最近點(diǎn)取樣技術(shù)為一種具有少量計(jì)算處理的材質(zhì)過濾方法,然而,在顯示模式時(shí)其所達(dá)到的成效,并不足以達(dá)到使用者所期望的繪圖效果。
對于雙線性材質(zhì)過濾技術(shù)(Bilinear Texture Filtering),將最近取樣點(diǎn)的上面、下面、左邊與右邊的材質(zhì)像素值進(jìn)行一加權(quán)平均計(jì)算而得到像素值。在雙線性材質(zhì)過濾技術(shù)中,可以改善景象的實(shí)際情況,但生成一像素顏色需要對于存儲器進(jìn)行四次的存取動作。類似地,三線性材質(zhì)過濾技術(shù)(Trilinear Texture Filtering)可以比雙線性材質(zhì)過濾技術(shù)更為精確。然而,三線性材質(zhì)過濾技術(shù)也需要更多數(shù)目的存儲器存取次數(shù)。
圖2A、2B與2C分別顯示最近點(diǎn)取樣技術(shù)、雙線性過濾技術(shù)與三線性過濾技術(shù)的示意圖。圖2A為最近點(diǎn)取樣技術(shù)的一例子,其顯示具有多個(gè)材質(zhì)像素的方塊,其中PC(u,v)表示在材質(zhì)地圖上的像素中心且黑點(diǎn)表示材質(zhì)像素中心。在最近點(diǎn)取樣技術(shù)中,黑色虛線的材質(zhì)像素b被取樣來表示像素顏色。圖2B顯示雙線性過濾技術(shù),其中,四個(gè)相鄰材質(zhì)像素a,b,c與d被選定來計(jì)算材質(zhì)像素的加權(quán)平均。
圖2C為三線性過濾技術(shù)(也可以稱為Mipmap材質(zhì)過濾技術(shù))的一例子。Mipmap為一序列的材質(zhì)像素,其中每一個(gè)分別表示相同影像的越來越低的解析度。在Mipmap中每一維度的每一影像的尺寸為前一層(Level)的一半,舉例來說,如果Mipmap第0層(Mipmap 0)的維度為256×256,則Mipmap第1層(Mipmap1)的維度為128×128,Mipmap第2層(Mipmap2)的維度為64×64,以此類推至1×1。在Mipmap中的每一材質(zhì)像素為前一層Mipmap的2×2材質(zhì)像素方塊的組合。參考圖2C,在Mipmap第1層的材質(zhì)像素e具有一表示在Mipmap第0層中質(zhì)像素值(a,b,c與d)的平均。
在三線性過濾技術(shù)中,雙性過濾技術(shù)在兩最近的Mipmaps上執(zhí)行,然后依照細(xì)部層級(Level of Detail,LOD)在兩值間線性地插入來決定一最終像素值。舉例來說,在圖第2C中的像素值等于0.25×(a×w1+b×w2+c×w3+d×w4)+0.7 5×(e×w5+f×w6+g×w7+h×w8)其中wn(w1,w2,w3,w4,w5,w6,w7與w8)表示每一材質(zhì)像素的權(quán)值。
由上可知,當(dāng)雙線性材質(zhì)過濾技術(shù)或是三線性材質(zhì)過濾技術(shù)執(zhí)行時(shí)分別需要四次或是八次的存儲器存取。另外,材質(zhì)快取存儲器(Texture Cache)系開發(fā)來減少在3D繪圖硬件設(shè)計(jì)中材質(zhì)過濾所需的存儲器頻寬(Bandwidth)。對于雙線性或三線性材質(zhì)過濾技術(shù),快取存儲器必須具有四個(gè)或是八個(gè)輸出端口(Port)來在一時(shí)鐘周期中提供材質(zhì)給一像素。遺憾地,快取存儲器的面積隨著I/O端口的數(shù)目而增加且變的不可接收。當(dāng)期望的材質(zhì)像素在一個(gè)時(shí)間周期的中無法得到時(shí),則3D繪圖硬件可以利用多次的材質(zhì)過濾來達(dá)到相同的功效。然而,整體繪圖系統(tǒng)的效能將會被犧牲。
本發(fā)明的上述目的,可藉由本發(fā)明所提供的一種材質(zhì)貼圖方法來達(dá)成。本發(fā)明系用以將復(fù)數(shù)個(gè)像素點(diǎn)進(jìn)行材質(zhì)貼圖。依據(jù)本發(fā)明一實(shí)施例,首先,依據(jù)每一像素點(diǎn)的一材質(zhì)座標(biāo),計(jì)算一唯一材質(zhì)座標(biāo)。接著,依據(jù)唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果。最后,將材質(zhì)過濾結(jié)果指定給每一像素點(diǎn)。
此外,依據(jù)本發(fā)明另一實(shí)施例,首先,將像素點(diǎn)進(jìn)行分組,從而得到復(fù)數(shù)個(gè)像素群組。然后,對于每一像素群組,依據(jù)像素群組中每一像素點(diǎn)的材質(zhì)座標(biāo),計(jì)算一唯一材質(zhì)座標(biāo)。并依據(jù)此唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果。最后,將材質(zhì)過濾結(jié)果指定給像素群組中的每一像素點(diǎn)。
依據(jù)本發(fā)明的一型態(tài),材質(zhì)過濾程序系依據(jù)一雙線性過濾技術(shù)而執(zhí)行。
依據(jù)本發(fā)明的另一型態(tài),將像素點(diǎn)進(jìn)行分組的方法系依據(jù)像素點(diǎn)在一材質(zhì)地圖上的形狀而決定。
圖4系顯示依據(jù)本發(fā)明第一實(shí)施例的材質(zhì)貼圖方法的操作流程圖,同時(shí)參考第3與4圖,當(dāng)材質(zhì)被放大地貼至像素時(shí),首先,如步驟S30,依據(jù)每一像素點(diǎn)1,2,3,4,5,6,7,8與9的材質(zhì)座標(biāo),將這些材質(zhì)座標(biāo)平均計(jì)算一唯一材質(zhì)座標(biāo)。接著,如步驟S32,依據(jù)計(jì)算得到的唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果。其中此材質(zhì)過濾程序可以是依據(jù)雙線性過濾技術(shù)而進(jìn)行且材質(zhì)過濾結(jié)果為一顏色值。舉例來說,材質(zhì)過濾結(jié)果可以等于a×w1+b×w2+d×w3+e×w4;其中wn(w1,w2,w3與w4)表示不同材質(zhì)像素針對唯一材質(zhì)座標(biāo)的權(quán)值。
最后,如步驟S34,將材質(zhì)過濾程序之后得到的材質(zhì)過濾結(jié)果指定給像素點(diǎn)1,2,3,4,5,6,7,8與9。
在本發(fā)明第一實(shí)施例中,可以看出材質(zhì)過濾程序后所得到的唯一的材質(zhì)過濾結(jié)果被指派給多個(gè)像素點(diǎn)。在一些特殊的景象中,在最終影像中有可能會引起缺陷或是鋸齒狀的邊緣,因此,減少一起進(jìn)行處理的像素點(diǎn),即對于像素點(diǎn)進(jìn)行分組便可以消除此類缺陷或是鋸齒狀邊緣的發(fā)生。
接下來,圖5系顯示依據(jù)本發(fā)明第二實(shí)施例的材質(zhì)貼圖方法的操作流程圖,圖6為依據(jù)本發(fā)明第二實(shí)方包例的材質(zhì)貼圖方法的一分組例子,其中,熒幕區(qū)域上的像素點(diǎn)0,1,2與3分別對映至材質(zhì)區(qū)域上的一點(diǎn)。同時(shí)參考第5與6圖,本發(fā)明第二實(shí)施例將進(jìn)行說明。
首先,如步驟S50,將像素點(diǎn)0,1,2與3進(jìn)行分組,從而得到多個(gè)像素群組。注意的是,當(dāng)由一原始物的像素點(diǎn)被對映至材質(zhì)像素中時(shí),它的形狀(Shape)可能會被歪曲。如果材質(zhì)地圖上像素點(diǎn)的形狀的寬大于高時(shí),最接近的垂直像素點(diǎn)對(Pair)被分成一組,相反地,最接近的水平像素點(diǎn)對被分成一組。換言之,將像素點(diǎn)進(jìn)行分組的方法依據(jù)像素點(diǎn)在材質(zhì)地圖上的形狀而決定。
在圖6的例子中,在材質(zhì)地圖上像素點(diǎn)的形狀系藉由計(jì)算dux,dvx,dux與dvy來決定。如果u座標(biāo)差大于V座標(biāo)差時(shí),垂直像素點(diǎn)對被分成一組,相反地,最接近的水平像素點(diǎn)對被分成一組。在此例子中,像素點(diǎn)對(0,2)為一組且像素點(diǎn)對(1,3)為一組。
接著,對于每一像素群組,如步驟S52,依據(jù)像素群組中像素點(diǎn)的材質(zhì)座標(biāo),計(jì)算一唯一材質(zhì)座標(biāo)。以像素點(diǎn)對(0,2)為例,即依據(jù)像素點(diǎn)0與2的材質(zhì)座標(biāo),將這些材質(zhì)座標(biāo)平均計(jì)算而得到此唯一材質(zhì)座標(biāo)。
此后,如步驟S54,依據(jù)計(jì)算得到的唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果。其中,此材質(zhì)過濾程序可以依據(jù)雙線性過濾技術(shù)而進(jìn)行且材質(zhì)過濾結(jié)果為一顏色值。
最后,如步驟S56,將材質(zhì)過濾程序之后得到的材質(zhì)過濾結(jié)果指定給像素群組中的像素點(diǎn)。以像素點(diǎn)對(0,2)為例,即指定給像素點(diǎn)0與2。而當(dāng)每一像素群組處理完成時(shí),便可完成整個(gè)程序。
圖7為依據(jù)本發(fā)明第二實(shí)施例的材質(zhì)貼圖方法的另一分組例子,在圖7的例子中,四個(gè)4象素點(diǎn)(2×2)被分為一個(gè)群組,且依據(jù)唯一材質(zhì)座標(biāo)(unew,vnew)來進(jìn)行材質(zhì)過濾程序。其中,此唯一材質(zhì)座標(biāo)(unew,vnew)系利用平均計(jì)算四個(gè)像素點(diǎn)的材質(zhì)座標(biāo)對((uo,vo),(u1,v1),(u2,v2)與(u3,v3))而生成。
此外,注意的是,本發(fā)明亦可應(yīng)用于三線性材質(zhì)過濾技術(shù)。在應(yīng)用至三線性過濾技術(shù)的情況中,本發(fā)明的材質(zhì)貼圖方法在兩最近的Mipmaps上執(zhí)行,然后依照細(xì)部層級(LOD)值在兩值間線性地插入來決定一最終像素值。
因此,藉由本發(fā)明所提供的材質(zhì)貼圖方法可以依據(jù)像素點(diǎn)的材質(zhì)座標(biāo)與/或像素點(diǎn)在材質(zhì)地圖上的形狀,使得在進(jìn)行材質(zhì)貼圖時(shí),加快材質(zhì)過濾(Texture Filtering)速度與減少存儲器存取次數(shù),進(jìn)而使得電腦繪圖系統(tǒng)的效能大幅度地改善且減少硬件上的花費(fèi)。
雖然本發(fā)明已以較佳實(shí)施例揭露如上,然其并非用以限定本發(fā)明,任何熟悉此項(xiàng)技藝者,在不脫離本發(fā)明的精神和范圍內(nèi),當(dāng)可做些許更動與潤飾,因此本發(fā)明的保護(hù)范圍當(dāng)視后附的申請專利范圍所界定者為準(zhǔn)。
權(quán)利要求
1.一種材質(zhì)貼圖方法,用以將復(fù)數(shù)像素點(diǎn)進(jìn)行材質(zhì)貼圖,其特征是該方法包括下列步驟依據(jù)每一該等像素點(diǎn)的一材質(zhì)座標(biāo),計(jì)算一唯一材質(zhì)座標(biāo);依據(jù)該唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果;以及將該材質(zhì)過濾結(jié)果指定給該等像素點(diǎn)。
2.如權(quán)利要求1所述的材質(zhì)貼圖方法,其特征是該唯一材質(zhì)座標(biāo)系將每一該等像素點(diǎn)的該材質(zhì)座標(biāo)進(jìn)行平均而得到。
3.如權(quán)利要求1所述的材質(zhì)貼圖方法,其特征是該材質(zhì)過濾程序系依據(jù)一雙線性過濾技術(shù)而進(jìn)行。
4.如權(quán)利要求1所述的材質(zhì)貼圖方法,其特征是核材質(zhì)過濾結(jié)果為一顏色值。
5.一種材質(zhì)貼圖方法,用以將復(fù)數(shù)像素點(diǎn)進(jìn)行材質(zhì)貼圖,其特征是該方法包括下列步驟將該等像素點(diǎn)進(jìn)行分組,從而得到復(fù)數(shù)像素群組;以及對于每一該等像素群組,依據(jù)該像素群組中每一該等像素點(diǎn)的一材質(zhì)座標(biāo),計(jì)算一唯一材質(zhì)座標(biāo);依據(jù)該唯一材質(zhì)座標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果;以及將該材質(zhì)過濾結(jié)果指定給該像素群組中的該等像素點(diǎn)。
6.如權(quán)利要求5所述的材質(zhì)貼圖方法,其特征是該唯一材質(zhì)座標(biāo)系將該像素群組中每一該等像素點(diǎn)的該材質(zhì)座標(biāo)進(jìn)行平均而得到。
7.如權(quán)利要求5所述的材質(zhì)貼圖方法,其特征是該材質(zhì)過濾程序系依據(jù)一雙線性過濾技術(shù)而進(jìn)行。
8.如權(quán)利要求5所述的材質(zhì)貼圖方法,其特征是該材質(zhì)過濾結(jié)果為一顏色值。
9.如權(quán)利要求5所述的材質(zhì)貼圖方法,其特征是將該等像素點(diǎn)進(jìn)行分組的方法系依據(jù)該等像素點(diǎn)在一材質(zhì)地圖上的形狀而決定。
全文摘要
一種材質(zhì)貼圖方法,用以將復(fù)數(shù)像素點(diǎn)進(jìn)行材質(zhì)貼圖;首先,將像素點(diǎn)進(jìn)行分組,從而得到復(fù)數(shù)個(gè)像素群組;然后,對于每一像素群組,依據(jù)像素群組中每一像素點(diǎn)的材質(zhì)坐標(biāo),計(jì)算一唯一材質(zhì)坐標(biāo);并依據(jù)此唯一材質(zhì)坐標(biāo)進(jìn)行一材質(zhì)過濾程序,從而得到一材質(zhì)過濾結(jié)果;最后,將材質(zhì)過濾結(jié)果指定給像素群組中的每一像素點(diǎn)。
文檔編號G06T11/40GK1427374SQ0114461
公開日2003年7月2日 申請日期2001年12月19日 優(yōu)先權(quán)日2001年12月19日
發(fā)明者張振強(qiáng), 葉國煒 申請人:矽統(tǒng)科技股份有限公司