專利名稱:雙線性圖紋過濾方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電腦繪圖技術(shù),特別是關(guān)于一種通過選擇一組圖紋元素對的方式達到快速讀取及具成本效益的雙線性圖紋過濾方法。
在電腦繪圖系統(tǒng)的處理過程中,每一個原始圖素(pixel)皆須自圖紋庫(mapping)中得到一色彩值,此過程稱為圖紋過濾(texture filtering)。在電腦產(chǎn)生的3D影像中,圖紋過濾為非常重要的技術(shù)。圖紋通常為二維陣列的色彩值,這些個別的色彩值被稱為圖紋元素。每一圖紋元素具有個別位址,該位址由行值及列值所構(gòu)成,且分別標示為S及T。通常,每個圖素的圖紋座標u及v定義于0.0至1.0之間,且代表圖紋元素中心,并根據(jù)圖紋庫的大小對應(yīng)至圖紋庫的座標。3D應(yīng)用可將圖紋座標定為任何原始物(primitive)的頂點,當該電腦繪圖系統(tǒng)描繪一原始物時,計算每個圖素(pixel)的圖紋座標,并自儲存器中存取每一原始物圖素的相對應(yīng)圖紋元素。例如于3D應(yīng)用中可借由貼一木質(zhì)紋理到3D物件表面上,而產(chǎn)生一具有木質(zhì)紋路的物件。
圖1顯示電腦繪圖系統(tǒng)中的圖紋處理過程,其中圖紋庫資料被儲存于一如硬盤之類的圖紋儲存裝置10中。當描繪引擎(rendering engine)需要圖紋資料做圖紋貼圖時,該圖紋通過匯流排被送至圖形加速器的局部儲存器(Local Memory)11。然后,該描繪引擎自局部儲存器讀取所需的圖紋元素(texel),并執(zhí)行圖紋貼圖處理過程。現(xiàn)有的圖紋貼圖方式包括最近點取樣(nearest-point sampling)雙線性圖紋過濾(bilinear texturefiltering)及三線性圖紋過濾(trilinear texture filtering)。
圖2為現(xiàn)有技術(shù)最近點取樣的圖紋過濾方法的示意圖。如該圖所示,該圖素顏色被設(shè)為最接近的整數(shù)位址的色彩值。此方法為一經(jīng)估算過的低成本圖紋過濾方法,然而該方法會在顯示的影像中產(chǎn)生扭曲現(xiàn)象。圖3為現(xiàn)有技術(shù)雙線性圖紋過濾方法的示意圖。如該圖所示,該雙線性圖紋過濾方法是讀取緊接在最近取樣點的上方、下方、左邊及右邊4個圖紋元素值,借以從該圖紋元素值計算一平均權(quán)值。圖4為現(xiàn)有技術(shù)三線性圖紋過濾方法的示意圖(亦稱為多點解析貼紋過濾)。三線性圖紋過濾方法是在二個最近的多點解析貼圖上執(zhí)行雙線性圖紋過濾。然后,在二個最近值間線性插值,并依據(jù)該最詳細層次(Level of detail,LOD)決定一最后的圖素值。例如圖8的圖素值等于0.25(aw1+bw2+cw3+dw4)+0.75(ew5+fw6+gw7+hw8),其中該wn(w1,w2,w3,w4,w5,w6,w7,w8)代表每一圖紋元素的權(quán)值。
依據(jù)上述,當分別執(zhí)行雙線性過濾或三線性過濾時需要四個或八個儲存器存取動作來讀取所需的復(fù)數(shù)個圖紋元素。通常借由使用一圖紋快取儲存器,以減少在3D繪圖系統(tǒng)硬件的圖紋過濾所需的儲存器頻寬。對雙線性或者三線性圖紋過濾而言,該快取儲存器必須具有4個或者8個輸出端口,以供應(yīng)在一脈沖周期的圖紋元素的圖素。不幸地,快取儲存器的區(qū)域隨I/O端口的數(shù)目而增加,而到達無法接受的狀況;若所需要的圖紋元素不能在一個脈沖周期中獲得,則該3D繪圖硬件亦能用多通(multipass)圖紋過濾以達成相同的效果。然而,繪圖系統(tǒng)的效能將被犧牲,因此,需要提供一能消除圖形扭曲且不需大量儲存器存取的圖紋過濾技術(shù)。
為克服上述現(xiàn)有技術(shù)中存在的問題,本發(fā)明的目的是在繪圖系統(tǒng)中減少從圖紋儲存器選取圖紋元素的資料,同時具有較佳效果的雙線性圖紋過濾方法。
本發(fā)明的另一目的是在繪圖系統(tǒng)中,選取最接近圖素位置的圖紋元素對以計算該圖素顏色,而減少從圖紋儲存器取圖紋元素,同時具有較佳效果的雙線性圖紋過濾方法。
本發(fā)明的再一目的是在繪圖系統(tǒng)中,利用圖素對應(yīng)于圖紋庫的形狀來選取圖紋元素對以計算該圖素顏色而減少從圖紋儲存器取圖紋元素,同時具有較佳效果的雙線性圖紋過濾方法。
為達成上述目的,本發(fā)明雙線性圖紋過濾方法包含下列步驟讀取一圖素資料;計算圖紋座標,根據(jù)圖素資料計算該圖素對應(yīng)于一圖紋庫的圖紋座標,該圖紋座標具有整數(shù)部分及小數(shù)部分;決定一組圖紋元素對,根據(jù)圖紋座標的位置決定一組圖紋元素對;讀取圖紋元素對資料,從圖紋庫讀取一組圖紋元素對資料;以及計算圖素顏色,以圖紋座標的小數(shù)部分作為權(quán)值,根據(jù)圖紋元素對的資料計算該圖素的顏色。
使用本發(fā)明的雙線性圖紋過濾方法,只需從圖紋庫中讀取2個圖紋元素即可計算出該圖素的顏色,既能消除圖形扭曲,又不需大量儲存器,并可有效降低描繪引擎經(jīng)由匯流排讀取圖紋元素的時間。
下面是本發(fā)明的附圖圖1為圖紋處理系統(tǒng)的方塊圖;圖2為現(xiàn)有技術(shù)最近點取樣的示意圖;圖3為現(xiàn)有技術(shù)雙線性過濾方法的示意圖;圖4為現(xiàn)有技術(shù)三線性過濾方法的示意圖;圖5為本發(fā)明2×2圖紋區(qū)塊的區(qū)域分配圖的第一實施例;圖6為本發(fā)明2×2圖紋區(qū)塊的區(qū)域區(qū)分表的第二實施例;圖7顯示隨機選擇圖紋元素對的一種例子;圖8為本發(fā)明的另一個選擇圖紋元素對的實施例。
以下參考附圖詳細說明本發(fā)明雙線性圖紋過濾方法現(xiàn)有技術(shù)雙線性圖紋過濾方法是從一圖紋庫中選取四個最接近圖素座標位置的圖紋元素。但因考慮到繪圖系統(tǒng)的儲存器頻寬及效能,本發(fā)明雙線性圖紋過濾方法對于每個圖素只選取一組圖紋元素對進行色彩運算,即可有效地達到近乎現(xiàn)有技術(shù)雙線性圖紋過濾方法的過濾效果。
圖5顯示本發(fā)明圖紋區(qū)域劃分的第一實施例的示意圖,其中texel-0、texel-1、texel-2、texel-3為四個最接近圖素中心的圖紋元素,且劃分成四個區(qū)域I(左)、II(上)、III(下)及IV(右)。若圖素中心落入?yún)^(qū)域I,則表示該圖素受圖紋元素texel-0、texel-2的影響最大,故選擇圖紋元素texel-0、texel-2作為計算該圖素的顏色的資料。若圖素落入?yún)^(qū)域II,則表示該圖素受圖紋元素texel-0、texel-1的影響最大,故選擇圖紋元素texel-0、texel-1作為計算圖素的顏色的資料。若圖素落入?yún)^(qū)域III,則表示該圖素受圖紋元素texel-2、texel-3的影響最大,故選擇圖紋元素texel-2、texel-3作為計算圖素的顏色的資料。若圖素落入?yún)^(qū)域IV,則表示該圖素受圖紋元素texel-1、texel-3的影響最大,故選擇圖紋元素texel-1、texel-3作為計算圖素的顏色的資料。所以,本發(fā)明雙線性圖紋過濾方法只需從圖紋庫中讀取2個圖紋元素即可計算出該圖素的顏色,可有效降低描繪引擎經(jīng)由匯流排讀取圖紋元素的時間。
以下說明計算圖素落于哪個區(qū)域的方法。假設(shè)圖紋庫為圖紋庫高度TH與圖紋庫寬度TW所構(gòu)成的影像。若每一圖素中心對應(yīng)于圖紋庫的座標定義為u及v,且u及v為介于0-1的值,則先將u及v換算成圖紋庫的實際座標為S及T,其中S=u*TW,T=v*TH。S及T包含整數(shù)及小數(shù)部分,其中整數(shù)部分WS及WT用來決定候選的四個圖紋元素texel-0、texel-1、texel-2、texel-3,而小數(shù)部分ws及wt被用于決定圖素的區(qū)域I、II、III、或IV。其區(qū)域的決定如下區(qū)域Iws<wt,ws+wt<1,選取圖紋元素texel-0及texel-2區(qū)域IIws>=wt,ws+wt<1,選取圖紋元素texel-0及texel-1區(qū)域IIIws<=wt,ws+wt>=1,選取圖紋元素texel-2及texel-3區(qū)域IVws>=wt,ws+wt>=1,選取圖紋元素texel-1及texel-3因此,描繪引擎只要計算出ws與wt,即可判定出該圖素所位的區(qū)域,并選擇適當?shù)膱D紋元素對來計算圖素的顏色。當取得圖紋元素對的資料后,即可根據(jù)ws與wt、以及圖紋元素對資料計算出圖素的顏色。例如,若圖素落入?yún)^(qū)域I,則該圖素的顏色值為(1-wt)*D(texel-0)+wt*D(texel-2)若圖素落入?yún)^(qū)域II,則該圖素值為(1-ws)*D(texel-0)+ws*D(texel-1)若圖素落入?yún)^(qū)域III,則該圖素值為(1-ws)*D(texel-2)+ws*D(texel-3)若圖素落入?yún)^(qū)域IV,則該圖素值為(1-ws)*D(texel-1)+ws*D(texel-3)其中,D(texel-0)、D(texel-1)、D(texel-2)、D(texel-3)為texel-0、texel-1、texel-2、texel-3的資料。
圖6顯示本發(fā)明圖紋區(qū)域劃分的第二實施例的示意圖,且劃分成10個區(qū)域。若依據(jù)本發(fā)明的第一實施例的四個區(qū)域來選擇圖紋元素對,則當一群組的圖素落在同一區(qū)域時,可能會產(chǎn)生扭曲的現(xiàn)象。且放大的圖紋會導(dǎo)至許多貼圖在同一區(qū)域的圖素,因一群組的圖素落在同一區(qū)域,而導(dǎo)致區(qū)塊效應(yīng)。因此,本發(fā)明提出如圖6所示的另一實施例,將2×2的圖紋元素所圍成的范圍區(qū)分為10個區(qū)域I、II、III、IV、A、B、C、D、E及F,其中區(qū)域A、B、C、D、E及F定義為模糊區(qū)域。所謂模糊區(qū)域是指四個最接近描繪圖素的圖紋元素texel-0、texel-1、texel-2、texel-3無法明顯區(qū)別兩個最接近描繪圖素的圖紋元素對。因此,本實施例在描繪圖素落于模糊區(qū)域A、B、C、D、E及F時,則隨機選取圖紋元素texel-0、texel-1、texel-2、texel-3的其中兩個圖紋元素,進而降低區(qū)塊效應(yīng)。以下為10個區(qū)域的區(qū)分方式區(qū)域I1ws<wt-wd,ws+wt<1,選取圖紋元素texel-0及texel-2區(qū)域IIws>=wt,ws+wt<1,選取圖紋元素texel-0、texel-1區(qū)域IIIws<wt,ws+wt>=1,選取圖紋元素texel-2、texel-3
區(qū)域IVws>=wt,ws+wt>=1,選取圖紋元素texel-1、texel-3區(qū)域Aws=wt區(qū)域Bws+wt=1區(qū)域Cws>wt及ws<=wt+wd區(qū)域Dws<wt及ws>=wt-wd區(qū)域Ews+wt<1及ws+wt+wd<1區(qū)域Fws+wt>1及ws+wt-wd>1其中,wd為模糊區(qū)域的寬度。例如,當描繪圖素落入對角線A時,表示圖紋元素texel-1、texel-2與描繪圖素的距離相同,無法區(qū)別。而當描繪圖素落入對角線B時,表示圖紋元素texel-0、texel-3與描繪圖素的距離相同無法區(qū)別。當描繪圖素落入?yún)^(qū)域C及D時,表示圖紋元素texel-1、texel-2與描繪圖素的距離接近,無法明顯區(qū)別。當描繪圖素落入?yún)^(qū)域E及F時,表示圖紋元素texel-0、texel-3與描繪圖素的距離接近,無法明顯區(qū)別。因此,只要描繪圖素落于模糊區(qū)域,則以隨機或預(yù)設(shè)方式選取圖紋元素對。
圖7為以隨機方式選取圖紋元素對的例子。例如,若描繪圖素P的中心座標的小數(shù)值(ws,wt)為(0.25,0.28125),則如圖8所示,該描繪圖素P落于區(qū)域D。假設(shè)ws與wt為5位元的小數(shù),則描繪圖素P的ws=01000及wt=01001。本實施例為選擇ws及wt的二位最小有效位元執(zhí)行隨機化程序。在此范例中,依據(jù)圖7所示,若輸出為0,則圖紋元素的選取規(guī)則與圖5所述相同,若輸出為1,則鏡射至其他區(qū)域。例如,描繪圖素P的00(ws)及01(wt)為1,因此該圖素對映至區(qū)域II。
圖8為本發(fā)明選取圖紋元素對的第三實施例。上述的第一與第二實施例是以描繪圖素的座標作為選取圖紋元素對的參考,但本實施例是以描繪圖素的形狀作為選取圖紋元素對的參考。當一來自原始的描繪圖素610對應(yīng)至圖紋庫620時,該描繪圖素的形狀會根據(jù)圖紋庫620的尺寸調(diào)整。因此,根據(jù)描繪圖素對應(yīng)至圖紋庫620的形狀來選取圖紋元素對時,可有效反應(yīng)圖紋元素對的影響。若描繪圖素對應(yīng)至圖紋庫的圖素形狀的長度較寬度大時,則選取最接近該描繪圖素的垂直圖紋元素作為圖紋元素對;反之,則選取最接近的水平圖紋元素作為圖紋元素對。如圖8所示,借由計算相鄰三點的描繪圖素a、b、c對應(yīng)于圖紋庫的距離dux、dvx、duy及dvy,即可決定在圖紋庫上的圖素形狀。若max(dux,duy)較max(dvx,dvy)為大時,則選取最近的水平圖紋元素對,反之,則選取最近的垂直圖紋元素對。當然,根據(jù)描繪圖素對應(yīng)于圖紋庫的形狀來選取圖紋元素對的方式并不限于上述情形。例如若max(dux,duy)較max(dvx,dvy)為大時,則選取較遠的水平圖紋元素對,反之,則選取較遠的垂直圖紋元素對。
同時,本發(fā)明亦可被應(yīng)在三線性圖紋過濾方法中。一般的圖紋過濾方法是利用一般的雙線性過濾方法計算最接近描繪圖素的兩層多點解析圖紋庫的顏色值,再依據(jù)接近兩層圖紋庫的比例計算最終顏色值。而本發(fā)明的三線性圖紋過濾方法中,在二層最近的多點解析圖紋庫上,執(zhí)行本發(fā)明的雙線性過濾方法。然后,再依據(jù)接近兩層圖紋庫的比例以二值間線性插值計算最終顏色值。
雖然本發(fā)明已以較佳實施例揭露如上,然其并非用以限定本發(fā)明,任何熟知此技術(shù)的人士,在不脫離本發(fā)明的精神及范圍內(nèi),當可做更動與潤飾,因此本發(fā)明的保護范圍當以權(quán)利要求書為準。
權(quán)利要求
1.一種雙線性圖紋過濾方法,包含下列步驟讀取一圖素資料;計算圖紋座標,根據(jù)前述圖素資料計算該圖素位于一圖紋貼圖的圖紋座標,該圖紋座標具有整數(shù)部分及小數(shù)部分;決定圖紋元素對,根據(jù)前述圖紋座標的位置決定一組圖紋元素對;讀取圖紋元素對資料,從前述圖紋貼圖讀取一組圖紋元素對資料;計算前述圖素顏色,以前述圖紋座標的小數(shù)部分作為權(quán)值,根據(jù)前述圖紋元素對資料計算前述圖素的顏色。
2.如權(quán)利要求1所述的雙線性圖紋過濾方法,其特征是其中在前述決定圖紋元素對的步驟中,系選取最接近前述圖紋座標的兩個圖紋元素作為前述圖紋元素對。
3.如權(quán)利要求2所述的雙線性圖紋過濾方法,其特征是其中若第三接近前述圖紋座標的圖紋元素與前述圖紋座標的距離,與前述最接近前述圖紋座標的兩個圖紋元素與前進圖紋座標的距離的差值小于一預(yù)設(shè)值時,以隨機取樣最接近前述圖紋座標的四個圖紋元素中的兩個圖紋元素作為前述圖紋元素對。
4.如權(quán)利要求1所述的雙線性圖紋過濾方法,其特征是其中在前述決定圖紋元素對的步驟中,系根據(jù)前述圖素的形狀來選取兩個圖紋元素作為前述圖紋元素對。
5.如權(quán)利要求3所述的雙線性圖紋過濾方法,其特征是其中當前述圖素的寬度大于長度時,選取最接近前述圖紋座標的垂直圖紋元素對作為前述圖紋元素對,而當前述圖素的寬度小于長度時,選取最接近前述圖紋座標的水平圖紋元素對作為前述圖紋元素對。
6.如權(quán)利要求2、3或4所述的雙線性圖紋過濾方法,其特征是其中在計算前述圖素顏色的步驟中,若選取水平圖紋元素對,則依據(jù)圖紋水平軸座標的小數(shù)部分計算圖紋元素對值的平均權(quán)值;若選取垂直圖紋元素對,則依據(jù)圖紋垂直軸座標的小數(shù)部分計算圖紋元素對值的平均權(quán)值。
7.一種三線式圖紋過濾的方法,其特征是它包含下列步驟讀取一圖素資料;計算第一層的顏色值,根據(jù)權(quán)利要求1所記載雙線性圖紋過濾方法計算前述圖素資料于接近的第一層圖紋庫的第一顏色值;計算第二層的顏色值,根據(jù)權(quán)利要求1所記載的雙線性圖紋過濾方法計算前述圖素資料于接近的第二層圖紋庫的第二顏色值;計算前述圖素顏色,根據(jù)前述第一顏色值、前述第二顏色值、以及以前述圖素靠近前述第一層圖紋庫與第二層圖紋庫的距離比例作為權(quán)值,計算前述圖素的顏色。
全文摘要
本發(fā)明公開了一種雙線性圖紋過濾方法,可僅通過讀取圖紋元素對來節(jié)省儲存器頻寬,并達到近乎一般雙線性圖紋過濾方法的效果;其包含下列步驟:讀取一圖素資料;根據(jù)圖素資料計算該圖素對應(yīng)于一圖紋庫的圖紋坐標,該圖紋坐標具有整數(shù)與小數(shù)部分;根據(jù)圖紋坐標的位置決定一組圖紋元素對;從圖紋庫讀取一組圖紋元素對資料;以圖紋坐標的小數(shù)部分作為權(quán)值,根據(jù)圖紋元素對的資料計算該圖素的顏色。
文檔編號G06T17/00GK1387170SQ0111615
公開日2002年12月25日 申請日期2001年5月17日 優(yōu)先權(quán)日2001年5月17日
發(fā)明者蕭見忠, 葉國煒, 張振強 申請人:矽統(tǒng)科技股份有限公司