專利名稱:用于在紋理映射中適應(yīng)性重新取樣的系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及用于將圖元從紋理空間重新取樣到屏幕空間的裝置和用于將圖元從紋理空間重新取樣到屏幕空間的方法。
背景技術(shù):
繪制三維圖形的一個(gè)重要元素是紋理映射。在計(jì)算機(jī)生成對(duì)象的表面映射紋理是能夠大大改善所述對(duì)象外觀真實(shí)性的技術(shù)。二維或者三維對(duì)象典型地利用圖元(通常是三角形)而建模。紋理可以是諸如照片或者計(jì)算機(jī)生成圖像之類的二維畫片。例如,墻的二維圖像(的一部分)可以被投射到計(jì)算機(jī)游戲中的墻的三維表示上。術(shù)語(yǔ)“紋理元素(texel)”(紋理元素)是指紋理的圖片元素(像素)。
一般而言,存在幾種已知的用于將紋理圖映射到屏幕網(wǎng)格上的方法。大多數(shù)常規(guī)的計(jì)算機(jī)制圖系統(tǒng)使用所謂的反向紋理映射方法。在這種方法中,在光柵化(rasterization)處理期間,屏幕的像素是被順序地和逐個(gè)地處理的,確定紋理上屏幕像素的投影(產(chǎn)生像素的“軌跡”)并通常利用加權(quán)平均的形式計(jì)算最接近正確的像素顏色的平均值。一種備選方法是所謂的向前紋理映射方法。這種方法通過(guò)檢查(traverse)由紋理圖(紋理空間)定義的坐標(biāo)系中的紋理元素的方式執(zhí)行。圖形系統(tǒng)的頂點(diǎn)著色器接收?qǐng)D元的頂點(diǎn)作為輸入并使用頂點(diǎn)著色程序改變或者增加這些頂點(diǎn)的每一個(gè)的屬性。當(dāng)插入這些屬性時(shí)光柵化器則檢查紋理空間中的圖元。光柵化器計(jì)算將被投影到三角形的每個(gè)紋理元素的紋理坐標(biāo)(u,v)。對(duì)所訪問(wèn)的紋理的每個(gè)網(wǎng)格位置(u,v)而言,在由紋理空間重新取樣器將紋理圖重新取樣到紋理元素網(wǎng)格之后,紋理元素著色器從所存儲(chǔ)的紋理圖中接收屬性。紋理元素著色器根據(jù)這些屬性計(jì)算圖元表面的局部顏色。最后,所獲取的紋理元素?cái)?shù)據(jù)被屏幕空間重新取樣器重新取樣到屏幕像素位置。所述映射(包括重新取樣)是二維的。最初的重新取樣技術(shù)即是所謂的一次轉(zhuǎn)換(one-pass)二維映射,其中在圖元的一次轉(zhuǎn)換中像素/紋理元素?cái)?shù)據(jù)是被雙向重新取樣的。另外的一種技術(shù)即是所謂的二次轉(zhuǎn)換向前映射方法,其中二維圖像的映射被分解為兩個(gè)一維映射。首先,所述圖像被映射到一個(gè)方向上,典型地是掃描行方向,也就是水平方向,從而產(chǎn)生中間圖像。中間圖像被映射到另一個(gè)方向以產(chǎn)生最終圖像。一維重新取樣可以利用通常用于視頻縮放的重新取樣器來(lái)實(shí)現(xiàn)。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種用于將紋理映射到圖元的改善的裝置和方法,其能夠在品質(zhì)和性能之間保持很好的平衡。
為了實(shí)現(xiàn)本發(fā)明的目的,一種用于將三維圖像模型圖元從紋理空間映射到屏幕空間的裝置,所述裝置包括用于存儲(chǔ)紋理圖的紋理存儲(chǔ)器;以及可操作地用于將每個(gè)圖元的數(shù)據(jù)從與圖元對(duì)應(yīng)的紋理圖重新取樣到對(duì)應(yīng)的像素?cái)?shù)據(jù)的重新取樣器,其中所述像素?cái)?shù)據(jù)用于定義與圖元對(duì)應(yīng)的顯示圖像的一部分;所述重新取樣器可操作用于從至少包含兩個(gè)不同的重新取樣算法的一個(gè)獨(dú)立組中選擇用于執(zhí)行重新取樣的重新取樣算法;所述選擇取決于圖元的大小。
傳統(tǒng)上,在圖形或者視頻處理系統(tǒng)的設(shè)計(jì)期間,在向前或者反向映射之間進(jìn)行選擇。反向映射系統(tǒng)傳統(tǒng)上使用一次轉(zhuǎn)換二維重新取樣。對(duì)向前映射而言,根據(jù)二次轉(zhuǎn)換一維重新取樣或者一次轉(zhuǎn)換二維重新取樣來(lái)選擇一個(gè)固定的采樣算法。在根據(jù)本發(fā)明的裝置中,重新取樣器可以在至少兩個(gè)重新取樣算法中作出選擇,并且不作出固定的選擇。相反,根據(jù)圖元的大小動(dòng)態(tài)地為每個(gè)圖元在算法之間作出選擇。這就使得對(duì)圖元采用最優(yōu)的重新取樣算法,其中可以在重新取樣的質(zhì)量和諸如可用處理循環(huán)和存儲(chǔ)容量之類的系統(tǒng)限制之間作出平衡選擇。所述裝置可以是根據(jù)反向映射或者向前映射技術(shù)的。重新取樣可以由一個(gè)重新取樣器或者多個(gè)重新取樣器來(lái)執(zhí)行。例如,向前紋理映射系統(tǒng)可以使用紋理空間重新取樣器和屏幕空間重新取樣器。所述其中一種重新取樣器或者兩種重新取樣器都可以應(yīng)用重新取樣算法的動(dòng)態(tài)選擇。
根據(jù)從屬權(quán)利要求2所述的手段,可用算法之間的選擇是通過(guò)比較圖元的大小與預(yù)定閾值的方式實(shí)現(xiàn)的。對(duì)于在兩種算法間進(jìn)行的選擇,可以使用一個(gè)閾值,其中為小圖元選擇第一個(gè)算法,而為大圖元選擇第二個(gè)算法。對(duì)于多于兩種算法的情況,需要幾個(gè)閾值來(lái)進(jìn)行核對(duì)。
根據(jù)從屬權(quán)利要求3所述的手段,所述重新取樣器與用于累加重新取樣的數(shù)據(jù)的緩存器有關(guān)。所述緩存器具有預(yù)定緩存器大小。所述閾值取決于緩存器的預(yù)定大小。對(duì)于小的圖元而言,可以使用需要更多緩沖區(qū)空間(圖元的每個(gè)像素)的重新取樣算法。可以根據(jù)該算法的有利特征來(lái)選擇該算法,諸如高質(zhì)量或者處理速度。對(duì)于大的圖元而言,可以選擇需要較少累加緩沖區(qū)空間(圖元的每個(gè)像素)的重新取樣算法。這可能導(dǎo)致某種代價(jià),諸如處理循環(huán)的增加。處理循環(huán)的可能的增加可以利用在處理更大的圖元中更有效的算法來(lái)抵消(例如,每個(gè)圖元具有相對(duì)苛求的初始化的算法,但是有效處理像素)。
根據(jù)從屬權(quán)利要求4所述的手段,圖元的大小取決于在圖元邊界內(nèi)的紋理元素或者像素的數(shù)目。紋理元素的數(shù)目可以確切的計(jì)算,也可以估算。
根據(jù)從屬權(quán)利要求5所述的手段,為小圖元選擇一次轉(zhuǎn)換二維重新取樣算法,為大圖元使用二次轉(zhuǎn)換一維重新取樣算法。所述一次轉(zhuǎn)換二維重新取樣算法提供了高質(zhì)量的重新取樣,每個(gè)圖元耗費(fèi)較低的初始化成本,但是需要相對(duì)大的累加緩存器(也就是二維緩存器)。這使得二維重新取樣最適合于小的圖元。另一方面,所述二次轉(zhuǎn)換一維重新取樣算法需要較小的緩沖區(qū)空間(也就是一維緩存器),但是每個(gè)圖元耗費(fèi)較高的初始化成本。這使得一維重新取樣更適合于大的圖元。優(yōu)選地選擇這樣的閾值,使得具有大小小于閾值的圖元的累加數(shù)據(jù)僅適合使用二維重新取樣的緩存器。
為了實(shí)現(xiàn)本發(fā)明的目的,一種用于將三維圖像模型的圖元從紋理空間映射到屏幕空間的方法包括在紋理空間中對(duì)于每個(gè)圖元將數(shù)據(jù)從與圖元對(duì)應(yīng)的紋理圖重新取樣到與圖元有關(guān)的紋理元素的紋理數(shù)據(jù);以及在屏幕空間中對(duì)于每個(gè)圖元將紋理數(shù)據(jù)重新取樣到用于定義與圖元對(duì)應(yīng)的顯示圖像的一部分的對(duì)應(yīng)像素?cái)?shù)據(jù);以及從有至少兩個(gè)不同的重新取樣算法的一個(gè)單獨(dú)組中,為紋理空間重新取樣和/或屏幕空間重新取樣選擇重新取樣算法;所述選擇取決于圖元的大小。
將參照在下文中描述的實(shí)施方式來(lái)描述本發(fā)明的這些和其他方面,并且通過(guò)在下文中描述的實(shí)施方式本發(fā)明的這些和其他方面將變得十分明顯。
附圖簡(jiǎn)述在所述附圖中
圖1顯示了向前紋理映射系統(tǒng)的圖形流水線;圖2顯示了四維分級(jí)細(xì)化映射(mipmap)結(jié)構(gòu);圖3舉例說(shuō)明了重建過(guò)濾;圖4舉例說(shuō)明了屏幕空間預(yù)過(guò)濾;圖5顯示了向前紋理映射系統(tǒng)的圖形流水線;圖6舉例說(shuō)明了一次轉(zhuǎn)換和二次轉(zhuǎn)換重新取樣;圖7顯示了瓶頸問(wèn)題;圖8顯示了剪切(shear)問(wèn)題;圖9顯示了包括根據(jù)本發(fā)明的圖形系統(tǒng)的計(jì)算機(jī)的方框圖;以及圖10顯示了包括根據(jù)本發(fā)明的圖形系統(tǒng)的計(jì)算機(jī)的方框圖。
發(fā)明詳述系統(tǒng)概述在向前紋理映射系統(tǒng)中或者反向紋理映射系統(tǒng)中可以使用重新取樣算法的動(dòng)態(tài)選擇。所述系統(tǒng)可以包括一個(gè)或多個(gè)重新取樣器。那些重新取樣器的任一個(gè)都可以使用動(dòng)態(tài)選擇。參照?qǐng)D1將描述具有兩個(gè)重新取樣器的向前紋理映射系統(tǒng)。參照?qǐng)D2將描述具有一個(gè)重新取樣器的反向紋理映射系統(tǒng)。
圖1顯示了其中可以利用本發(fā)明的向前紋理映射系統(tǒng)的圖形流水線的最后級(jí)的示例性結(jié)構(gòu)。在該描述中假定利用三角形作為圖元來(lái)描述所設(shè)想的模型。所屬技術(shù)領(lǐng)域的專業(yè)人員可以容易地將相同的技術(shù)應(yīng)用到其他的圖元,諸如其他的多邊形或四邊形或者諸如貝塞爾曲面之類的曲面。流水線的輸入是由諸如計(jì)算機(jī)游戲以及圖形流水線的前一級(jí)之類的圖形程序通過(guò)其頂點(diǎn)所指定的圖元。在屏幕空間中圖元的坐標(biāo)被設(shè)定為(x,y),在紋理元素空間中圖元的坐標(biāo)被設(shè)定為(u,v)。流水線包括頂點(diǎn)著色器110、紋理空間光柵化器120、具有紋理空間重新取樣器132和紋理存儲(chǔ)器134的紋理元素著色器130、屏幕空間重新取樣器140和邊緣抗鋸齒和隱面移去單元(Edge Anti-Aliasing andHidden Surface Removal,EAA & HSR)150。輸出像素被存儲(chǔ)在幀緩沖器160中以用于顯示,例如利用諸如RAM DAC之類的數(shù)模變換器來(lái)生成模擬輸出。如果還如此要求,那么諸如DVI之類的數(shù)字接口可用于向顯示器提供像素?cái)?shù)據(jù)。所述顯示器可以是包括CRT、LCD、等離子體顯示器在內(nèi)的任何類型?;蛘?,所繪制的圖片還可以被用作后續(xù)圖元的紋理圖。現(xiàn)在將詳細(xì)描述圖1所示的圖形流水線的功能以舉例說(shuō)明采用了本發(fā)明的示例性的系統(tǒng)。應(yīng)當(dāng)理解的是本發(fā)明還可以被應(yīng)用到諸如電視之類的視頻處理裝置中,其中例如廣播視頻信號(hào)與由圖元建模的圖形信息相結(jié)合。
圖1的頂點(diǎn)著色器110接收三角形(圖元)的頂點(diǎn)作為輸入,并利用頂點(diǎn)著色程序改變或者增加這些頂點(diǎn)的每一個(gè)的屬性。由頂點(diǎn)著色器提供的數(shù)據(jù)通常包括諸如散射和/或反射顏色、紋理坐標(biāo)、(同類的)屏幕坐標(biāo)之類的屬性,并且有時(shí)還包括象表面法線這樣的額外數(shù)據(jù)或者著色處理所需的其他數(shù)據(jù)。頂點(diǎn)著色器可以是傳統(tǒng)的變換和加亮單元。由頂點(diǎn)著色器生成的屬性被提供給光柵化器。
圖1的光柵化器120在表面空間(所謂的向前紋理映射系統(tǒng))操作。所述光柵化器例如通過(guò)選擇紋理坐標(biāo)(而不是屏幕坐標(biāo))作為光柵化處理的驅(qū)動(dòng)變量而檢查圖元表面(而不是屏幕上的投影)的參數(shù)化。光柵化器檢查整個(gè)“表面網(wǎng)格”的圖元。與紋理圖有關(guān)的網(wǎng)格提供了這樣一種表面網(wǎng)格,并且優(yōu)選地將與紋理圖有關(guān)的網(wǎng)格用作表面網(wǎng)格(因?yàn)楂@取紋理網(wǎng)格上的紋理樣品不需要重新取樣)。當(dāng)不存在紋理圖時(shí),或者當(dāng)紋理例如是一維或者三維時(shí),可以選擇另一個(gè)網(wǎng)格。在紋理空間中利用u(‘水平’方向)和v(‘垂直’方向)作為坐標(biāo)。應(yīng)當(dāng)理解的是說(shuō)明書中的‘水平’和‘垂直’僅是相對(duì)的。例如,所述屏幕可以旋轉(zhuǎn),使得圖形處理不受影響但是屏幕上的輸出旋轉(zhuǎn)了。因?yàn)榧y理網(wǎng)格常常用作表面網(wǎng)格,因此注釋“紋理網(wǎng)格”(和“紋理空間”和“紋理元素”)將要用于表示這種一般的網(wǎng)格(和相關(guān)的空間和取樣)。當(dāng)光柵化器檢查網(wǎng)格的紋理元素位置時(shí),將在每個(gè)頂點(diǎn)設(shè)定的全部屬性內(nèi)插到網(wǎng)格中(除紋理元素被投影其上的屏幕坐標(biāo)以外,典型地是線性地,而紋理元素被投影的屏幕坐標(biāo)是透視地插入的)。而后在每個(gè)紋理元素位置的屬性都是可用的,其中紋理元素著色器130可以使用所述屬性。當(dāng)檢查基本網(wǎng)格的u和v紋理坐標(biāo)時(shí),所述光柵化器還保持相應(yīng)的屏幕坐標(biāo)(x,y)(或者對(duì)反向映射系統(tǒng)而言反之亦然)。通過(guò) 和 的線性插值法保持所述對(duì)應(yīng),其中^表示齊次坐標(biāo)。這種坐標(biāo)在本領(lǐng)域是公知的,所以這里將不會(huì)進(jìn)一步描述。屏幕坐標(biāo)能因此利用透視除法x=x^w^]]>和y=y^w^]]>來(lái)計(jì)算。如下面將要詳細(xì)解釋的那樣,利用根據(jù)二次通過(guò)一維重新取樣的屏幕空間重新取樣,屏幕y坐標(biāo)僅用于分級(jí)細(xì)化映射判定目的。利用一次轉(zhuǎn)換二維屏幕空間重新取樣器,y坐標(biāo)還可以用作到重新取樣器的輸入。對(duì)計(jì)算真實(shí)顏色而言,光柵化器可以內(nèi)插散射顏色(RGBA)、反射顏色(RGB)和額外的紋理坐標(biāo)對(duì)(考慮到多種紋理)。同時(shí)可以內(nèi)插其他的屬性(諸如表面法線)。優(yōu)選地,紋理空間光柵化器檢查與四維分級(jí)細(xì)化映射相關(guān)的網(wǎng)格的紋理圖。下面將更詳細(xì)地描述四維分級(jí)細(xì)化映射。
紋理元素著色器130為每個(gè)紋理元素計(jì)算局部表面顏色。紋理元素著色器操作表面網(wǎng)格中的網(wǎng)格位置上的屬性,并且如果存在與圖元有關(guān)的任何次級(jí)紋理,那么就使用具有紋理空間重新取樣器132的反向映射以從中獲取顏色。當(dāng)需要紋理數(shù)據(jù)時(shí),所述紋理空間重新取樣器用于獲取設(shè)定了紋理坐標(biāo)的紋理樣品。這些紋理坐標(biāo)是由紋理元素著色器根據(jù)從光柵化器接收的內(nèi)插坐標(biāo)和來(lái)自先前的紋理獲取(所謂的從屬紋理)和/或計(jì)算的任何結(jié)果生成的。所述紋理過(guò)濾操作通常根據(jù)附近紋理元素的雙線性插值法(bi-linear interpolation)或者三線性插值法(tri-linear interpolation)或者這種紋理檢測(cè)的組合來(lái)近似各向異性的(透視地變換)過(guò)濾軌跡。
紋理圖典型地是諸如照片或者計(jì)算機(jī)生成圖像之類的二維圖片。例如,墻的二維圖像(的一部分)可以被投影到計(jì)算機(jī)游戲中墻的三維表示上。大多數(shù)三維對(duì)象僅覆蓋屏幕的一小部分,常常導(dǎo)致紋理圖的縮小(其具有足夠的分辨率以便當(dāng)靠近地從上面觀看(view up close)時(shí)還能夠提供合理的外觀)。通常,在紋理映射期間,例如如果墻是可以遠(yuǎn)離的,那么二維圖片將被顯著縮小。原則上,紋理映射能因此通過(guò)顯著縮小原始圖像的方式來(lái)執(zhí)行。為了減少讀取較高分辨率的二維圖片所需的帶寬,優(yōu)選地執(zhí)行一預(yù)處理步驟,在所述預(yù)處理步驟中創(chuàng)建二維圖片的幾個(gè)縮小的版本。在紋理映射期間,僅僅與屏幕圖像的分辨率最好地匹配的較小的部分縮小圖片被讀取并被映射到屏幕上。原始二維圖片連同它的縮小版本一起被稱為分級(jí)細(xì)化映射。在1986年11月的IEEE Computer Graphics and Applications期刊第56-67頁(yè)中由Paul S.Heckbert撰寫的“Survey of Texture Mapping”一文和U.S.6,236,405B1中均具體描述了紋理映射以及分級(jí)細(xì)化映射。在三維分級(jí)細(xì)化映射中,原始圖像被表示為0級(jí)。在1級(jí),每個(gè)條目(entry)保持例如2×2的紋理元素的平均值。這可以一直延續(xù)直到到達(dá)最高級(jí)為止,所述最高級(jí)僅具有保持有全部紋理的平均顏色的一個(gè)條目。因此,在正方形的分級(jí)細(xì)化映射中,n級(jí)具有n-1級(jí)的四分之一大小。已知了幾種類型的分級(jí)細(xì)化映射,其中僅在存儲(chǔ)縮小圖像的方面有所不同。在所描述的三維分級(jí)細(xì)化映射中,利用相同的因數(shù)在雙向進(jìn)行縮小,而在四維分級(jí)細(xì)化映射中分別兩個(gè)維度上獨(dú)立縮小原始圖像。四維分級(jí)細(xì)化映射由水平分級(jí)細(xì)化映射級(jí)mmlu和垂直分級(jí)細(xì)化映射級(jí)mmlv來(lái)表示。圖2顯示了給出16個(gè)分級(jí)細(xì)化映射級(jí)別(0,0)、(1,0)、…(3,3)的四維分級(jí)細(xì)化映射?;疑?0,0)、(1,1)、(2,2)和(3,3)所表示的分級(jí)細(xì)化映射級(jí)別分別構(gòu)成了原始三維分級(jí)細(xì)化映射級(jí)別0、1、2和3。與三維分級(jí)細(xì)化映射相比,四維分級(jí)細(xì)化映射配置需要大量存儲(chǔ)器用于存儲(chǔ)。因此,諸如游戲之類的計(jì)算機(jī)圖形學(xué)程序常常使用三維分級(jí)細(xì)化映射結(jié)構(gòu)。在一個(gè)優(yōu)選實(shí)施方式中,紋理存儲(chǔ)器134存儲(chǔ)三維分級(jí)細(xì)化映射結(jié)構(gòu)的紋理圖。在這個(gè)實(shí)施方式中,如代理人案號(hào)為PHNL010924EPP的未預(yù)先公開歐洲專利申請(qǐng)所描述的那樣,紋理空間重新取樣器132優(yōu)選地被設(shè)置用于從三維分級(jí)細(xì)化映射即時(shí)(on-the-fly)重建所需要的四維分級(jí)細(xì)化映射。則紋理取指令就等于(amount to)從存儲(chǔ)在紋理存儲(chǔ)器134中的三維分級(jí)細(xì)化映射數(shù)據(jù)中重建四維分級(jí)細(xì)化映射。優(yōu)選地,紋理空間光柵化器檢查與四維分級(jí)細(xì)化映射對(duì)應(yīng)的網(wǎng)格上的紋理圖。所述光柵化器為每個(gè)紋理元素(u,v)提供對(duì)應(yīng)的四維分級(jí)細(xì)化映射級(jí)(mmlu,mmlv)到紋理元素著色器130。在圖2所述的實(shí)例中,通過(guò)向下采樣(downsample)三維分級(jí)細(xì)化映射級(jí)別0來(lái)重建四維分級(jí)細(xì)化映射(3,0)。所獲取的紋理元素可以同內(nèi)插的散射顏色和/或反射顏色相結(jié)合從而產(chǎn)生與屏幕坐標(biāo)相關(guān)的表面的色彩樣品,其中屏幕坐標(biāo)表明該紋理樣品(通常非整數(shù))被映射到屏幕上的位置。紋理空間重新取樣器例如經(jīng)由標(biāo)準(zhǔn)雙線性插值的方式從次級(jí)紋理圖獲取紋理樣品。如果如此要求,那么這可以被擴(kuò)展至三線性或者各向異性過(guò)濾法,并且還可以增加一維和三維紋理獲取的支持(一旦已經(jīng)進(jìn)行了此添加,由光柵化器進(jìn)行的紋理坐標(biāo)內(nèi)插就還需要被歸納以支持可能的第三坐標(biāo))。
屏幕空間重新取樣器140將映射的紋理元素潑濺(splat)到整數(shù)的屏幕位置,從而提供屏幕上圖元的圖像。屏幕空間重新取樣包括以下操作-重建紋理元素網(wǎng)格中顏色信息為連續(xù)信號(hào),-將連續(xù)信號(hào)從紋理空間映射到屏幕空間,-在屏幕空間中預(yù)過(guò)濾所映射的連續(xù)信號(hào),以及-在屏幕空間中采樣預(yù)過(guò)濾信號(hào)。
應(yīng)當(dāng)理解的是首先可以執(zhí)行從紋理空間到屏幕空間的映射,然后重建所映射的信號(hào)。圖3利用方框作為重建過(guò)濾器的軌跡舉例說(shuō)明了所述映射和重建過(guò)濾。諸如高階過(guò)濾器之類的其他的過(guò)濾器也可以被使用。所述附圖顯示了像素的網(wǎng)格。每一個(gè)像素被顯示為像素的無(wú)限小的(dimensionless)位置周圍的矩形。實(shí)心點(diǎn)舉例說(shuō)明了在變換(映射)之后無(wú)限小的輸入紋理元素坐標(biāo)的位置。原始紋理元素的軌跡被抓取并被投影在屏幕上。在圖3中將變換后的紋理元素的軌跡的大小和位置顯示為具有虛線的矩形。
如圖4中所舉例說(shuō)明的那樣,接下來(lái),每個(gè)映射的紋理元素然后被潑濺(也就是散布)到屏幕空間的像素上,其中在所述屏幕空間中的預(yù)過(guò)濾軌跡與屏幕空間中的重建方框重疊(也就是在將紋理元素映射到屏幕空間之后)。紋理元素400的重建方框被顯示為具有高亮度顯示的矩形410。所述預(yù)過(guò)濾軌跡可以在幾個(gè)像素上延伸。所述過(guò)濾可以僅水平地延伸,但是也可以垂直地延伸。在圖4所述的實(shí)例中,使用在水平和垂直方向上都有三個(gè)像素范圍的過(guò)濾器,以其包括的像素為中心并覆蓋兩個(gè)相鄰的像素。在這種情況下,十二個(gè)輸出像素都可以接收到影響。對(duì)那些輸出像素的每一個(gè)而言,可以利用其各自預(yù)過(guò)濾器的形狀來(lái)確定所述影響以衡量輸入紋理元素的值。
來(lái)自屏幕空間重新取樣器的像素片段(fragment)然后在圖1的邊緣防鋸齒處理和隱面移去(EAA&HSR)單元150中組合,所述邊緣防鋸齒處理和隱面移去單元150可以使用片段緩存器160。像素片段被深度分類(depth sort)到該緩存器中以解決隱藏表面問(wèn)題。在已經(jīng)繪制了所有的圖元之后,每個(gè)像素的全部看得見(jiàn)的片段被組合(因?yàn)橐呀?jīng)通過(guò)預(yù)過(guò)濾器衡量了屏幕空間重新取樣器發(fā)出的顏色,因此其基本上等于簡(jiǎn)單的總和)并被發(fā)送給幀緩沖器。由于結(jié)合邊緣附近的由屏幕空間光柵化器所產(chǎn)生的部分影響而引起邊緣防鋸齒處理,從而產(chǎn)生最后的像素顏色,所述最后的像素顏色是來(lái)自不同圖元的顏色的組合。
圖5顯示了反向紋理映射系統(tǒng)的圖形流水線的最后級(jí)的示例性結(jié)構(gòu)。圖5的頂點(diǎn)著色器510執(zhí)行與圖1中的頂點(diǎn)著色器110相同的角色。在所謂的反向紋理映射系統(tǒng)中,圖2的光柵化器520在屏幕空間中運(yùn)行,也就是將像素從屏幕空間映射到紋理空間中的紋理而不是將紋理投影到屏幕的像素上。這種光柵化器通過(guò)從頂點(diǎn)屬性選擇屏幕坐標(biāo)作為光柵化處理的驅(qū)動(dòng)變量,從而利用掃描線算法檢查位于屏幕上的圖元的投影內(nèi)的像素。光柵化器因此檢查整個(gè)“屏幕網(wǎng)格”上的圖元。在屏幕空間中利用x(用于‘水平’方向)和y(用于‘垂直’方向)作為坐標(biāo)。至于其他,光柵化器520以類似于圖1的光柵化器120的方式運(yùn)行。同樣地,圖5的像素著色器530以類似于圖1的紋理元素著色器130的方式運(yùn)行;紋理存儲(chǔ)器534以類似于紋理存儲(chǔ)器134的方式運(yùn)行;紋理空間重新取樣器532以類似于紋理空間重新取樣器132的方式運(yùn)行;EAA&HSR單元550以類似于EAA&HSR單元150的方式運(yùn)行,片段緩存器560以類似于片段緩存器160的方式運(yùn)行。圖1的屏幕空間重新取樣器140和圖5的紋理空間重新取樣器532負(fù)責(zé)將從紋理存儲(chǔ)器(134,534)獲取的紋理數(shù)據(jù)映射到定義所述顯示圖像的相應(yīng)像素?cái)?shù)據(jù)。該映射功能被統(tǒng)稱為紋理映射。盡管在向前紋理映射系統(tǒng)中該功能是分配在紋理空間重新取樣器132和屏幕空間重新取樣器140中的,但是如在圖5的反向映射系統(tǒng)中所看到的那樣,該功能因此與紋理空間重新取樣相結(jié)合并被置于像素著色器530之前。
重新取樣算法的動(dòng)態(tài)選擇根據(jù)本發(fā)明,對(duì)由紋理空間重新取樣器132/532和/或屏幕空間重新取樣器140所執(zhí)行的重新取樣而言,在至少兩個(gè)不同的重新取樣算法之間進(jìn)行選擇。所述算法可以是常規(guī)算法。所述重新取樣器將輸入網(wǎng)格中指定位置處的多個(gè)輸入紋理元素/像素集映射(重新取樣)到輸出網(wǎng)格中位置處的對(duì)應(yīng)多個(gè)輸出紋理元素/像素集。典型地,相應(yīng)的網(wǎng)格中的位置是不同的發(fā)生了變換。所述變換可以是簡(jiǎn)單的移動(dòng)、旋轉(zhuǎn)、放大/縮小,但是也可以是透視變換。所述輸入和輸出網(wǎng)格可以是相同的,但是也可以在位置和/或分辨率方面有所不同。所包括的像素/紋理元素的集合典型地是與用于模擬對(duì)象(的一部分)的對(duì)象或者圖元對(duì)應(yīng)的那些像素/紋理元素。因?yàn)榧y理和屏幕通常是二維的,所以重新取樣器原則上也是二維的。相同的原則同樣適用于繪制三維圖像的圖形或者視頻處理。對(duì)三維繪制而言,典型地也在二維圖像上執(zhí)行所述基本處理。如何利用二維技術(shù)創(chuàng)建三維圖像是公知的,諸如將兩個(gè)不同的二維圖像投影在觀看者的各只眼睛上。其余的將集中在二維處理上。圖6A顯示了一次轉(zhuǎn)換二維重新取樣的實(shí)例。在圖6的實(shí)例中,由規(guī)律間隔的點(diǎn)所表示的輸入網(wǎng)格640與輸出網(wǎng)格630相同。所述水平和垂直間隔也是相同的。應(yīng)當(dāng)理解的是所述網(wǎng)格并非必需是相同的,而且所述水平和垂直分辨率也可以是不同的。圖6顯示了由紋理元素坐標(biāo)u、v表示的紋理空間中的重新取樣。相同的規(guī)則也同樣適用于屏幕空間(典型地由x和y坐標(biāo)表示)中的重新取樣。在圖6A的一次轉(zhuǎn)換重新取樣中,位于圖元(或者全部對(duì)象)660內(nèi)的紋理元素被從位于紋理圖的區(qū)域640內(nèi)的對(duì)應(yīng)紋理元素重新取樣。在u、v兩個(gè)方向上均存在變換。在圖元的紋理元素的一次轉(zhuǎn)換過(guò)程中,在雙方向上存在重新取樣。圖6B舉例說(shuō)明了同樣的變換,但是現(xiàn)在使用二次轉(zhuǎn)換重新取樣。在每次轉(zhuǎn)換過(guò)程中僅在一個(gè)方向上存在重新取樣。在圖6B的實(shí)例中,在在水平方向u上第一次轉(zhuǎn)換重新取樣所述輸入,從而產(chǎn)生了中間圖片,其中所述輸入?yún)^(qū)域640被映射到區(qū)域650中。中間圖像的網(wǎng)格是用620表示的。在所述第二次轉(zhuǎn)換中,僅在剩余的方向上(在該實(shí)例中也就是垂直方向)將中間圖像的區(qū)域650重新取樣到輸出圖像中的最后的區(qū)域660。
在重新取樣期間,對(duì)輸出的每個(gè)像素/紋理元素累加值(例如衡量一個(gè)或多個(gè)輸入像素/紋理元素的影響)。這些中間結(jié)果被緩存在累加緩存器中。對(duì)一次轉(zhuǎn)換重新取樣而言,輸出圖元660的全部像素/紋理元素都需要累加緩存器(實(shí)際上是‘二維’緩存器)。對(duì)二次轉(zhuǎn)換重新取樣而言,因?yàn)橛锌赡芤悦啃?用于圖6B的第一次轉(zhuǎn)換的水平線和第二次轉(zhuǎn)換的垂直線)的方式執(zhí)行重新取樣,所以一維的緩存器就足夠了。在已經(jīng)完全地重新取樣一行之后,在緩存器中所累加的結(jié)果被移到完整圖像輸出緩存器中(例如在幀緩沖器中),并且所述累加緩存器能被用于下一行的重新取樣。原則上,一維重新取樣器僅需要少數(shù)寄存器來(lái)作為累加緩存器(寄存器的數(shù)目是由過(guò)濾器的分接(taps)的數(shù)目,也就是寬度,來(lái)確定的)。然而,對(duì)兩次轉(zhuǎn)換而言需要存儲(chǔ)中間圖像。通過(guò)交織水平和垂直的轉(zhuǎn)換,就可以取決于過(guò)濾器寬度將存儲(chǔ)器需求降低為滿足幾行存儲(chǔ)器的程度。因此,用于二次轉(zhuǎn)換重新取樣的累加緩存器顯著地小于用于同一尺寸圖元的一次轉(zhuǎn)換重新取樣的累加緩存器。另一方面,一次轉(zhuǎn)換重新取樣的設(shè)置較慢。對(duì)一次轉(zhuǎn)換重新取樣而言,為整個(gè)圖元僅初始化重新取樣器一次。對(duì)二次轉(zhuǎn)換重新取樣而言,設(shè)置操作需要兩個(gè)重新取樣步驟。此外,在沒(méi)有預(yù)防措施的情況下,二次轉(zhuǎn)換重新取樣容易受到所謂的瓶頸和剪切問(wèn)題的影響。在圖7中舉例說(shuō)明了所述瓶頸問(wèn)題,其中相對(duì)于輸入圖像710和輸出圖像730,中間圖像720的區(qū)域變得非常小。它發(fā)生接近于90度的旋轉(zhuǎn),并在第二次轉(zhuǎn)換的方向上導(dǎo)致過(guò)量的模糊(因?yàn)榈诙无D(zhuǎn)換要再次放大損壞的(collapsed)中間圖像)。在圖8中舉例說(shuō)明了所述剪切問(wèn)題,其中顯示了紋理圖和中間圖像的兩行(利用為像素重建的方框)。紋理圖具有黑色的垂直線,透視圖的剪切是這樣的,使得第二行上的黑色像素比第一行上的黑色像素多向右移動(dòng)了五個(gè)像素。水平過(guò)濾轉(zhuǎn)換阻止了水平鋸齒,但是不能阻止垂直鋸齒。剪切在一行上的黑色像素和下一行的白色像素之間產(chǎn)生相當(dāng)急劇的變化。同樣,中間圖像中的行由分離的部分組成,其是由行沒(méi)有影響的(例如對(duì)x=3的情況)列所分隔的。剪切問(wèn)題的解決方案是在更精細(xì)的分辨率下光柵化,從而使得生成額外的中間行,以中間位置的黑色像素填充空位。由在四個(gè)重新取樣選項(xiàng)之間作出抉擇的方式可以避免所述瓶頸問(wèn)題,通過(guò)決定下面內(nèi)容進(jìn)行所述四個(gè)重新取樣選項(xiàng)選擇1)立刻生成輸出圖像,或者生成轉(zhuǎn)置形式并轉(zhuǎn)置所生成的圖像,以及2)首先執(zhí)行水平轉(zhuǎn)換,或者首先執(zhí)行垂直轉(zhuǎn)換。
導(dǎo)致選擇的標(biāo)準(zhǔn)優(yōu)選地被作為設(shè)置的一部分進(jìn)行檢查,從而增加了二次轉(zhuǎn)換重新取樣器的設(shè)置時(shí)間。適當(dāng)?shù)倪x擇將減少瓶頸問(wèn)題和剪切問(wèn)題這兩個(gè)問(wèn)題。
應(yīng)當(dāng)理解的是圖元重新取樣的設(shè)置通常需要整個(gè)重新取樣(也就是設(shè)置加實(shí)際的重新取樣)所需的處理循環(huán)數(shù)目中相當(dāng)多的一部分。隨著圖元減少,相對(duì)的設(shè)置開銷增加。
根據(jù)本發(fā)明,重新取樣器從包括至少兩個(gè)不同的重新取樣算法的組中選擇用于執(zhí)行重新取樣的重新取樣算法。其根據(jù)圖元的大小選擇所述重新取樣算法??梢砸匀魏芜m當(dāng)?shù)姆绞浇o定、計(jì)算或者估計(jì)所述大小。特別地,圖元的大小取決于圖元邊界內(nèi)的紋理元素的數(shù)目,例如位于三角形內(nèi)的紋理元素的數(shù)目[或者輸出像素的數(shù)目]。如何計(jì)算圖元邊界內(nèi)的紋理元素的數(shù)目是公知的。本領(lǐng)域的技術(shù)人員可以選擇是忽略還是考慮下述這種紋理元素,所述紋理元素并未完全落入紋理元素的指定過(guò)濾軌跡的邊界內(nèi)但是與該邊界相重疊。如果如此要求,可以估計(jì)所述大小(例如根據(jù)寬度和高度的最大值)。
優(yōu)選地,重新取樣器可以通過(guò)對(duì)圖元大小和預(yù)定閾值進(jìn)行比較的方式選擇算法。例如,如果所述大小低于所述閾值,那么選擇一次轉(zhuǎn)換重新取樣。如果大小高于所述閾值,那么選擇二次轉(zhuǎn)換重新取樣。如果在多于兩個(gè)重新取樣算法之間存在選擇,那么可以使用多個(gè)閾值。例如,不同的一次轉(zhuǎn)換重新取樣算法可以用于不同大小的圖元,其中算法在減少瓶頸和/或剪切問(wèn)題的方式方面有所不同。
如上所指出的那樣,所述裝置包括與用于累加重新取樣數(shù)據(jù)的重新取樣器有關(guān)的緩存器。所述緩存器具有預(yù)定的緩沖器大小。然后優(yōu)選地選擇所述閾值,以便對(duì)為具有低于閾值的大小的圖元所選擇的算法而言,該圖元的累加的數(shù)據(jù)完全適合于緩存器,對(duì)于較大圖元?jiǎng)t超出該緩存器。優(yōu)選地,為具有低于閾值大小的圖元選擇一次轉(zhuǎn)換二維重新取樣算法,并且為具有高于閾值大小的圖元選擇二次轉(zhuǎn)換一維重新取樣算法。
圖9顯示了根據(jù)本發(fā)明的計(jì)算機(jī)900方框圖,所述計(jì)算機(jī)900包括中央處理單元910、存儲(chǔ)器920、顯示器930和根據(jù)本發(fā)明的計(jì)算機(jī)圖形系統(tǒng)940。所述計(jì)算機(jī)可以是諸如個(gè)人計(jì)算機(jī)、游戲控制臺(tái)或者工作站之類的常規(guī)計(jì)算機(jī)??梢岳脠D形處理器實(shí)現(xiàn)所述計(jì)算機(jī)圖形系統(tǒng)。這種圖形處理器可以是在用于促使所述圖形處理器執(zhí)行根據(jù)本發(fā)明的方法的程序的控制之下運(yùn)行的。所述程序可以是固定嵌入的(例如在ROM中),但是也可以是從后臺(tái)存儲(chǔ)器加載的。就后一種情況來(lái)說(shuō),所述程序可以被配置在任何適合的諸如CD-ROM之類的記錄載體或者諸如因特網(wǎng)之類的有線或無(wú)線的通信裝置中。計(jì)算機(jī)圖形系統(tǒng)940執(zhí)行參照?qǐng)D1所描述的一個(gè)或多個(gè)功能。特別是,計(jì)算機(jī)圖形系統(tǒng)940可以包括或者附加有如上所述的累加緩存器944。每個(gè)重新取樣器可以與各自的累加緩存器有關(guān)。優(yōu)選地,所述累加緩存器可以被集成到同用于執(zhí)行圖形處理系統(tǒng)的主圖形處理器一樣的IC中。所述累加緩存器優(yōu)選地是高速緩沖存儲(chǔ)器的一部分。計(jì)算機(jī)圖形系統(tǒng)940還可以包括幀緩沖器或者同幀緩沖器相連接,所述幀緩沖器包括將要在顯示器930上顯示的全部圖像。
圖10顯示了根據(jù)本發(fā)明的諸如電視之類的視頻處理系統(tǒng)1000的方框圖,所述視頻處理系統(tǒng)1000包括中央處理單元1010、存儲(chǔ)器1020、顯示器1030和根據(jù)本發(fā)明的視頻子系統(tǒng)1040。所述視頻子系統(tǒng)1040可以利用圖形或者視頻處理器實(shí)現(xiàn)。這種處理器可以在用于促使處理器執(zhí)行根據(jù)本發(fā)明的方法的程序的控制之下運(yùn)行。所述程序可以是固定嵌入的(例如在ROM中),但是還可以是從后臺(tái)存儲(chǔ)器加載的。就后一種情況來(lái)說(shuō),所述程序可以被配置在任何適合的諸如CD-ROM之類的記錄載體或者諸如因特網(wǎng)之類的有線或無(wú)線的通信裝置中。所述視頻子系統(tǒng)1040執(zhí)行參照?qǐng)D1所描述的一個(gè)或多個(gè)功能。在如圖9所述的方式中,視頻子系統(tǒng)1040可以包括或者附加有累加緩存器1044,或者附加有包括在顯示器1030上顯示的全部圖像的幀緩沖器。典型地,所述視頻子系統(tǒng)1040還經(jīng)由視頻輸入1046接收視頻信息流。所述信息流可以通過(guò)內(nèi)部調(diào)諧器接收,或者可以以任何其他適當(dāng)?shù)姆绞教峁?,例如?jīng)由視頻連接或者數(shù)字網(wǎng)從VCR、DVD播放器、機(jī)頂盒等等提供。所述視頻子系統(tǒng)1040可以將視頻流與圖形信息相結(jié)合,所述圖形信息通常是在主處理器1010的控制之下提供的。
應(yīng)當(dāng)注意的是,以上實(shí)施方式僅是舉例說(shuō)明而不是限制本發(fā)明的,并且本領(lǐng)域的技術(shù)人員將能夠在不脫離所附權(quán)利要求的范圍的情況下設(shè)計(jì)許多替換的實(shí)施方式。在權(quán)利要求中,任何置于括號(hào)內(nèi)的附圖標(biāo)記不應(yīng)該被看作是限制權(quán)利要求的。動(dòng)詞“包括”和它的動(dòng)詞的詞形變化的使用不排除在權(quán)利要求中所表述的元素或者步驟以外的元素或者步驟的存在。元素前的冠詞“一”或者“一個(gè)”不排除多個(gè)這種元素的存在。本發(fā)明可以通過(guò)包括幾個(gè)不同元件的硬件實(shí)現(xiàn),也可以通過(guò)適當(dāng)編程的計(jì)算機(jī)實(shí)現(xiàn)。在枚舉了幾個(gè)裝置的產(chǎn)品權(quán)利要求中,這些裝置中的幾個(gè)可以是由一個(gè)和同樣項(xiàng)目的硬件實(shí)現(xiàn)的。在相互不同的從屬權(quán)利要求中列舉某些手段的事實(shí)并不表明不能利用這些手段的組合。
權(quán)利要求
1.一種用于將三維圖形模型的圖元從紋理空間映射到屏幕空間的裝置;所述裝置包括用于存儲(chǔ)紋理圖的紋理存儲(chǔ)器(134);以及可用于對(duì)每個(gè)圖元將數(shù)據(jù)從與該圖元對(duì)應(yīng)的紋理圖重新取樣到對(duì)應(yīng)的像素?cái)?shù)據(jù)的重新取樣器(132,140),其中所述像素?cái)?shù)據(jù)用于定義與該圖元對(duì)應(yīng)的顯示圖像的一部分;所述重新取樣器可用于從至少兩個(gè)不同重新取樣算法的一個(gè)單獨(dú)組中選擇用于執(zhí)行該重新取樣的重新取樣算法;所述選擇取決于該圖元的大小。
2.根據(jù)權(quán)利要求1所述的裝置,其中所述重新取樣器可用于通過(guò)將該圖元的大小與預(yù)定閾值相比較來(lái)執(zhí)行該選擇。
3.根據(jù)權(quán)利要求2所述的裝置,其中所述裝置包括與該重新取樣器相關(guān)的緩存器,用于收集重新取樣的數(shù)據(jù);所述緩存器具有預(yù)定緩沖器大小;所述閾值取決于該預(yù)定緩沖器大小。
4.根據(jù)權(quán)利要求1所述的方法,其中該圖元的大小取決于在該圖元的邊界內(nèi)的紋理元素或者像素的數(shù)目。
5.根據(jù)權(quán)利要求2或3所述的裝置,其中該重新取樣算法的第一個(gè)是一次轉(zhuǎn)換二維重新取樣算法,該重新取樣算法的第二個(gè)是二次轉(zhuǎn)換一維重新取樣算法;該第一個(gè)算法被選擇為用于具有小于該閾值的大小的圖元,該第二個(gè)算法被選擇為用于具有大于該閾值的大小的圖元。
6.一種用于將三維圖形模型的圖元從紋理空間映射到屏幕空間的方法;所述方法包括在紋理空間中對(duì)每個(gè)圖元將數(shù)據(jù)從與該圖元對(duì)應(yīng)的紋理圖重新取樣到與該圖元相關(guān)的紋理元素的紋理數(shù)據(jù);以及在屏幕空間中對(duì)每個(gè)圖元將該紋理數(shù)據(jù)重新取樣到用于定義與該圖元對(duì)應(yīng)的顯示圖像的一部分的對(duì)應(yīng)像素?cái)?shù)據(jù);以及從至少兩個(gè)不同重新取樣算法的一個(gè)單獨(dú)組中為該紋理空間重新取樣和/或該屏幕空間重新取樣選擇重新取樣算法;所述選擇取決于該圖元的大小。
7.一種計(jì)算機(jī)程序,所述計(jì)算機(jī)程序可使處理器執(zhí)行如權(quán)利要求6所述的方法。
全文摘要
一種用于將三維圖形模型的圖元從紋理空間映射到屏幕空間的裝置。所述裝置包括用于存儲(chǔ)紋理圖的紋理存儲(chǔ)器(134)。重新取樣器(132,140)對(duì)于每個(gè)圖元將數(shù)據(jù)從與圖元對(duì)應(yīng)的紋理圖重新取樣到對(duì)應(yīng)的像素?cái)?shù)據(jù),其中所述像素?cái)?shù)據(jù)用于定義與圖元對(duì)應(yīng)的顯示圖像的一部分。所述紋理空間重新取樣器(132)和/或屏幕空間重新取樣器(140)可用于從至少兩個(gè)不同的重新取樣算法的一個(gè)單獨(dú)組中選擇用于執(zhí)行重新取樣的重新取樣算法。所述選擇取決于圖元的大小。
文檔編號(hào)G06T15/04GK1830007SQ200480021830
公開日2006年9月6日 申請(qǐng)日期2004年7月21日 優(yōu)先權(quán)日2003年7月30日
發(fā)明者巴爾特·G·B·巴倫布呂格, 科內(nèi)利斯·梅德斯 申請(qǐng)人:皇家飛利浦電子股份有限公司