專利名稱:圖元邊緣預(yù)濾波的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計(jì)算機(jī)圖形系統(tǒng)以及一種計(jì)算機(jī)圖形處理方法。
背景技術(shù):
紋理映射是3D圖形渲染(rendering)中的一個(gè)重要部分。將紋理映射到計(jì)算機(jī)生成的對象的表面上是一種大大提高其外觀真實(shí)性的技術(shù)。這些紋理一般是2D圖片,如照片或者計(jì)算機(jī)生成的圖像。例如,在計(jì)算機(jī)游戲中,可以將墻壁的2D圖像(的一部分)投影到墻壁的3D表示形式上。術(shù)語“紋理”被用作要映射到一個(gè)對象上的任意圖像或結(jié)構(gòu)的同義詞。術(shù)語“紋理元素”(texture elementtexel)指的是該紋理的圖像元素(像素)。一般來說,將紋理映射到屏幕網(wǎng)格上的已知方法有多種。大多數(shù)常規(guī)的計(jì)算機(jī)圖形系統(tǒng)使用所謂的逆向紋理映射法。該方法順序地處理屏幕上的每個(gè)像素,并且,在光柵化處理過程中,對于每個(gè)像素,確定該屏幕像素在該紋理上的投影(得到投影像素在紋理空間中的“覆蓋區(qū)(footprint)”),然后,計(jì)算最接近正確像素顏色的平均值。這樣做需要確定那些與投影像素覆蓋區(qū)重疊的紋理元素。另外一種方法即所謂的前向紋理映射法。該方法是通過遍歷由紋理圖所定義的坐標(biāo)系統(tǒng)中的紋理元素而實(shí)現(xiàn)的(即從紋理空間開始)。然后,采用視頻縮放中常用的重采樣器,將紋理元素的顏色分配(spat)給屏幕像素。這一重采樣可以包括紋理空間中的重建、從紋理空間到屏幕空間的映射以及屏幕空間中的預(yù)濾波和采樣。然后,將紋理元素的貢獻(xiàn)分配給該紋理元素的重建濾波器覆蓋區(qū)與預(yù)濾波器覆蓋區(qū)重疊的像素。
待渲染的2D或3D對象一般使用圖元(通常為三角形)來進(jìn)行建模。圖形系統(tǒng)的頂點(diǎn)著色器接收圖元(primitive)頂點(diǎn)作為輸入,并使用頂點(diǎn)著色程序來修改或者增加每個(gè)頂點(diǎn)的屬性。光柵化器(rasterizer)接受用于定義圖元頂點(diǎn)的頂點(diǎn)坐標(biāo)。在前向映射系統(tǒng)中,在對這些屬性進(jìn)行插值的同時(shí),光柵化器遍歷紋理空間中的圖元。對于遍歷期間訪問過的紋理的每個(gè)網(wǎng)格位置(u,v),紋理元素著色器根據(jù)這些屬性計(jì)算該圖元的表面的局部顏色。然后,屏幕空間重采樣器將這些表面顏色映射并重新采樣到屏幕像素位置。
發(fā)明內(nèi)容
本發(fā)明的一個(gè)目的是提供一種計(jì)算機(jī)圖形系統(tǒng),它能夠提供更高質(zhì)量的前向紋理映射。
為了實(shí)現(xiàn)本發(fā)明的目的,一種采用前向紋理映射來渲染圖像以供顯示的計(jì)算機(jī)圖形系統(tǒng),所述圖像的像素是根據(jù)屏幕空間中預(yù)定的像素網(wǎng)格而確定的;所述圖像包括至少一個(gè)通過圖元進(jìn)行建模的對象;該系統(tǒng)包括紋理存儲器,存儲至少一個(gè)紋理圖;紋理圖的紋理元素是根據(jù)紋理空間中預(yù)定的紋理元素網(wǎng)格而確定的;光柵化器,對于所述紋理空間中的每個(gè)圖元,確定至少部分地處于所述圖元之內(nèi)的相關(guān)紋理元素,以及給所述相關(guān)紋理元素分配紋理元素屬性;貢獻(xiàn)濾波器(810),對于所述紋理空間中的每個(gè)圖元,對描述所述圖元的連續(xù)信號進(jìn)行濾波,當(dāng)對特定紋理元素位置進(jìn)行采樣時(shí),產(chǎn)生相應(yīng)的貢獻(xiàn)因子,所述貢獻(xiàn)因子提供紋理空間中所述圖元與相應(yīng)紋理元素的重疊程度的度量;紋理元素著色器(130),對于所述紋理空間的每個(gè)圖元,將所述相關(guān)紋理元素的紋理元素屬性轉(zhuǎn)換為所述紋理元素的顏色屬性;以及屏幕空間重采樣器(140),根據(jù)所述預(yù)定的像素網(wǎng)格,將所述貢獻(xiàn)因子用作權(quán)重來對所述紋理元素的顏色屬性進(jìn)行重采樣,從而形成像素?cái)?shù)據(jù)以供顯示。
發(fā)明人認(rèn)識到除了在屏幕空間進(jìn)行重采樣之外,還可以通過在紋理空間執(zhí)行濾波步驟來提高圖形系統(tǒng)的性能。通過對描述圖元的連續(xù)信號進(jìn)行濾波,在針對已經(jīng)訪問的紋理元素位置對它進(jìn)行采樣之前,根據(jù)紋理空間中圖元與紋理元素的重疊程度的度量,分配貢獻(xiàn)因子。對于多邊形,連續(xù)信號表示是在圖元之內(nèi)還是之外,該多邊形一般是由圖元的邊緣利用其頂點(diǎn)來確定的。在現(xiàn)有技術(shù)的前向紋理映射系統(tǒng)中,如果紋理元素位于圖元之外,它們將被忽略,即便紋理元素覆蓋區(qū)部分地和圖元邊界重疊。本發(fā)明的系統(tǒng)可以獲得較高的渲染質(zhì)量,尤其對于現(xiàn)有技術(shù)機(jī)制導(dǎo)致較強(qiáng)烈鋸齒(aliasing)效果的狹窄對象。從原理上講,圖元可以是任何合適的形狀。常用的形狀是多邊形,尤其是三角形。
根據(jù)從屬權(quán)利要求2,貢獻(xiàn)因子取決于紋理元素網(wǎng)格中的圖元與紋理元素覆蓋區(qū)的區(qū)域重疊百分比??梢詫⑺醋鞑捎孟涫綖V波器(box fiter)對圖元邊界信號進(jìn)行濾波。
在優(yōu)選實(shí)施例中,根據(jù)從屬權(quán)利要求3的手段,區(qū)域重疊是通過分析而確定的。這給出了區(qū)域重疊百分比的準(zhǔn)確結(jié)果。
根據(jù)從屬權(quán)利要求4的手段,通過分析來進(jìn)行確定的步驟包括對于未完全位于圖元之外或者之內(nèi)的紋理元素覆蓋區(qū),確定所述圖元的邊界和所述紋理元素覆蓋區(qū)的邊界之間的多個(gè)交叉點(diǎn)。知道這些交叉點(diǎn)之后,尤其是對于多邊形,重疊百分比的確定就變得很簡單。
根據(jù)從屬權(quán)利要求5的手段,預(yù)先計(jì)算出圖元邊界的邊界方程。這樣,就能夠快速確定圖元邊界和紋理元素覆蓋區(qū)的交叉點(diǎn)。
為了實(shí)現(xiàn)本發(fā)明的目的,一種采用前向紋理映射來渲染圖像以供顯示的方法,所述圖像的像素是根據(jù)屏幕空間中預(yù)定的像素網(wǎng)格而確定的;所述圖像包括至少一個(gè)通過圖元進(jìn)行建模的對象;該方法包括存儲至少一個(gè)紋理圖;紋理圖中的紋理元素是根據(jù)紋理空間中預(yù)定的紋理元素網(wǎng)格而確定的;對于所述紋理空間中的每個(gè)圖元,確定至少部分地處于所述圖元之內(nèi)的相關(guān)紋理元素,以及為所述相關(guān)紋理元素分配紋理元素屬性;對描述所述圖元的連續(xù)信號進(jìn)行濾波,當(dāng)對特定的紋理元素位置進(jìn)行采樣時(shí),產(chǎn)生相應(yīng)的貢獻(xiàn)因子,所述貢獻(xiàn)因子提供紋理空間中所述圖元與相應(yīng)紋理元素的重疊程度的度量;以及將所述相關(guān)紋理元素的屬性轉(zhuǎn)換為所述紋理元素的顏色屬性;以及根據(jù)所述預(yù)定的像素網(wǎng)格,將所述貢獻(xiàn)因子用作權(quán)重來對所述紋理元素的顏色屬性進(jìn)行重采樣,從而形成像素?cái)?shù)據(jù)以供顯示。
通過后面描述的實(shí)施例,本發(fā)明的上述和其它方面將變得顯而易見。
附圖中圖1示出了可以使用本發(fā)明的圖形流水線;圖2示出了4D多紋理圖(mipmap)結(jié)構(gòu);圖3示出了重建濾波;圖4示出了屏幕空間預(yù)濾波;圖5示出了依據(jù)本發(fā)明的紋理預(yù)濾波;圖6示出了區(qū)域預(yù)濾波;圖7提供了區(qū)域預(yù)濾波的另一例子;圖8以區(qū)域預(yù)濾波器的形式示出了根據(jù)本發(fā)明的貢獻(xiàn)濾波器;圖9和10對比了使用紋理空間區(qū)域預(yù)濾波和不使用紋理空間區(qū)域預(yù)濾波的系統(tǒng)的效果;圖11示出了針對相鄰三角形而獲得的改善;并且圖12以改進(jìn)的紋理空間重建濾波器的形式示出了本發(fā)明;圖13示出了重建濾波器覆蓋區(qū)的2D表示形式;以及圖14示出了集成有根據(jù)本發(fā)明的圖形系統(tǒng)的計(jì)算機(jī)的框圖。
優(yōu)選實(shí)施例詳述圖1示出了可以使用本發(fā)明的圖形流水線的最末級的代表性體系結(jié)構(gòu)。在本說明書中,假定使用三角形作為圖元來描述要可視化的模型。本領(lǐng)域技術(shù)人員可以容易地將同樣的技術(shù)應(yīng)用于其它圖元,如其它多邊形、四邊形或者諸如貝塞爾曲面之類的曲面。該流水線的輸入為圖元,這些圖元由諸如計(jì)算機(jī)游戲之類的圖形程序以及圖形流水線的前級根據(jù)其圖元頂點(diǎn)來確定。這些圖元在屏幕空間中用坐標(biāo)(x,y)給出,在相應(yīng)的紋理元素空間中用坐標(biāo)(u,v)給出。該流水線包括頂點(diǎn)著色器110、紋理空間光柵化器120、紋理元素著色器130、紋理空間重采樣器132、紋理存儲器134、屏幕空間重采樣器140、邊緣抗鋸齒效應(yīng)和隱藏表面消除(EAA&HSR)單元150。輸出的像素存儲在幀緩沖區(qū)160中以供顯示,例如,使用諸如RAM DAC之類的D/A轉(zhuǎn)換器產(chǎn)生模擬輸出。如果需要的話,也可以用諸如DVI之類的數(shù)字接口向顯示器提供像素?cái)?shù)據(jù)。該顯示器可為任何類型,包括CRT、LCD、等離子顯示器?;蛘撸秩镜膱D像也可用作后續(xù)圖元的紋理圖。下面更詳細(xì)地描述圖1示出的圖形流水線,以說明可以使用本發(fā)明的示例性系統(tǒng)。
頂點(diǎn)著色器110接收三角形(圖元)的頂點(diǎn)作為輸入,并使用頂點(diǎn)著色程序來修改或者增加每個(gè)頂點(diǎn)的屬性。頂點(diǎn)著色器提供的數(shù)據(jù)通常包括諸如漫射色和/或鏡反射色、紋理坐標(biāo)、(均勻的)屏幕坐標(biāo)等屬性,有時(shí)還包括額外數(shù)據(jù),如表面法線或用于著色處理所需的其它數(shù)據(jù)。頂點(diǎn)著色器可以是傳統(tǒng)的幾何轉(zhuǎn)換和光源處理(Transformand Lighting)單元。頂點(diǎn)著色器產(chǎn)生的屬性被提供給光柵化器。
光柵化器120一般工作在屏幕空間中。該光柵化器使用掃描線算法,通過從頂點(diǎn)屬性中選擇屏幕坐標(biāo)作為光柵化處理的驅(qū)動變量,從而遍歷圖元在屏幕上的投影之內(nèi)的像素。在使用本發(fā)明的前向紋理映射系統(tǒng)中,光柵化器工作在表面空間中。表面空間光柵化器遍歷圖元的參數(shù)化表面(而不是屏幕上的投影),比如通過選擇紋理坐標(biāo)(而不是屏幕坐標(biāo))作為光柵化處理的驅(qū)動變量。光柵化器在“表面網(wǎng)格”中遍歷該圖元。與紋理圖關(guān)聯(lián)的網(wǎng)格提供了這樣一個(gè)表面網(wǎng)格,并且優(yōu)選用作表面網(wǎng)格(因?yàn)樵诩y理網(wǎng)格上獲取紋理采樣不需重采樣)。如果沒有紋理圖,或者比如紋理是1D或3D紋理時(shí),則可以選擇另一個(gè)網(wǎng)格。紋理空間中的坐標(biāo)采用u(代表“水平”方向)和v(代表“垂直”方向)表示。在本說明書中,“水平”和“垂直”是相對的。例如,可以旋轉(zhuǎn)屏幕,使圖形處理不受影響,而旋轉(zhuǎn)屏幕上的輸出。由于紋理網(wǎng)格經(jīng)常用作表面網(wǎng)格,所以,術(shù)語“紋理網(wǎng)格”(和“紋理空間”及“紋理元素”)將用于表示這樣的通用網(wǎng)格(以及相關(guān)的空間和采樣)。當(dāng)光柵化器遍歷網(wǎng)格的紋理元素位置時(shí),對網(wǎng)格上每個(gè)頂點(diǎn)的所有屬性進(jìn)行插值(一般以線性方式,紋理元素投影的屏幕坐標(biāo)除外,它們是采用透視方式進(jìn)行插值的)。然后,這些屬性在每個(gè)紋理元素位置都可用的,紋理元素著色器130可以在這些位置使用之。當(dāng)遍歷基礎(chǔ)網(wǎng)格的u和v紋理坐標(biāo)時(shí),光柵化器也維護(hù)相應(yīng)的屏幕坐標(biāo)(x,y),其中x代表水平像素位置,y代表垂直像素位置??赏ㄟ^ 和 的線性插值維持該對應(yīng)關(guān)系,其中^表示均勻坐標(biāo)。這種坐標(biāo)在本領(lǐng)域是熟知的,故在此不再贅述。然后,可以使用透視除法x=x^w^]]>和y=y^w^]]>計(jì)算屏幕坐標(biāo)。屏幕坐標(biāo)y僅用于確定多紋理圖,下文將詳細(xì)描述這一點(diǎn)。對于實(shí)際顏色的計(jì)算,光柵化器可以對漫射色(RGBA)、鏡反射色(RGB)和額外紋理坐標(biāo)(支持多個(gè)紋理)進(jìn)行插值。也可以對其它屬性(例如表面法線)進(jìn)行插值。
優(yōu)選情況下,紋理空間光柵化器遍歷與4D多紋理映射相對應(yīng)的網(wǎng)格上的紋理圖,如圖2所示。通過使用多紋理映射,在預(yù)處理步驟中,創(chuàng)建原始紋理的數(shù)個(gè)縮減版本(2D圖片)。在紋理映射過程中,只讀取與屏幕圖像的分辨率最匹配的較小縮減圖片的部分,并將其映射到屏幕。原始2D圖片及其縮減版本被稱為多紋理圖。紋理映射和多紋理圖在1986年11月IEEE《計(jì)算機(jī)圖形和應(yīng)用》中由Paul S.Heckbert發(fā)表的“Survey ofTexture Mapping”和美國專利6236405 B1中做了具體闡述。在多紋理圖中,原始圖像被表示為等級0。在等級1中,每個(gè)條目擁有例如2×2紋理元素的平均值。此處,術(shù)語“紋理元素”(紋理元素)指的是紋理的圖像元素(即像素)??梢赃@樣繼續(xù)下去,直至到達(dá)最高等級,該等級僅有一個(gè)擁有整個(gè)紋理平均顏色的條目。因此,在每個(gè)方向使用因子2對后續(xù)等級進(jìn)行縮減的正方形多紋理圖中,等級n大小為等級n-1的1/4。也可以使用其它縮減因子。已知有多種多紋理圖,因其中存儲的縮減圖像而異。在3D多紋理圖中,兩個(gè)方向用同樣的因子進(jìn)行縮減,而在4D多紋理圖中,在兩個(gè)維度上獨(dú)立縮減原始圖像。相對3D多紋理圖而言,一組4D多紋理圖需要很多存儲容量進(jìn)行存儲。因此,諸如游戲之類的計(jì)算機(jī)圖形程序經(jīng)常使用3D多紋理圖結(jié)構(gòu)。本申請人的一個(gè)早期申請IB02/05468與本申請具有相同的發(fā)明人,其描述了通過3D多紋理圖快速產(chǎn)生4D多紋理圖的方法。這使得能夠與不支持4D多紋理圖的程序結(jié)合起來,從而高質(zhì)量地渲染至圖形系統(tǒng)。3D多紋理圖由多紋理圖等級指定。4D多紋理圖由水平多紋理圖等級mmlu和垂直多紋理圖等級mmlv確定。圖2所示出的4D多紋理圖給出了16個(gè)多紋理圖(0,0),(1,0)...,(3,3)的細(xì)節(jié)。灰色的多紋理圖(0,0),(1,1),(2,2)和(3,3)分別形成原始3D多紋理圖等級0、1、2、3。光柵化器提供4D多紋理圖等級(mmlu,mmlv)。
紋理元素著色器130計(jì)算每個(gè)紋理元素的局部表面顏色。紋理元素著色器對表面網(wǎng)格中的網(wǎng)格位置的屬性進(jìn)行操作,如果還有與該圖元關(guān)聯(lián)的任何次要紋理,則它使用具有標(biāo)準(zhǔn)紋理空間重采樣器的反向映射從中獲取顏色。當(dāng)需要紋理數(shù)據(jù)時(shí),使用紋理空間重采樣器獲取指定紋理坐標(biāo)的紋理采樣。這些紋理坐標(biāo)由紋理元素著色器基于從光柵化器接收的插值坐標(biāo)和任何來自前級紋理(所謂的相關(guān)紋理)獲取和/或計(jì)算的結(jié)果而生成。紋理濾波器操作通?;卩徑y理元素的二次線性插值或三次線性插值,或者這些紋理探針的組合,從而近似出各向異性(透視轉(zhuǎn)換)濾波器覆蓋區(qū)。通過使用1D FIR濾波器結(jié)構(gòu)的兩個(gè)1D重采樣通道,可以高效地實(shí)現(xiàn)紋理空間重采樣器的2D重采樣操作。于是,在快速構(gòu)造4D多紋理圖的情況下,紋理的獲取升格為根據(jù)紋理存儲器134中儲存的3D數(shù)據(jù)進(jìn)行4D多紋理圖重構(gòu)。在圖2的示例中,4D多紋理圖(3,0)是通過3D多紋理圖等級0的向下采樣重建的。取得的紋理元素可以與插入的漫射色和/或鏡反射色組合起來,從而得到具有相關(guān)(一般非整數(shù))屏幕坐標(biāo)的表面顏色采樣,這些坐標(biāo)指示該紋理采樣被映射到屏幕上的哪個(gè)位置。
屏幕空間重采樣器140將映射的紋理元素分配到屏幕上的整數(shù)位置,從而在屏幕上提供圖元的圖像。屏幕空間重采樣包括以下操作將紋理元素網(wǎng)格中的顏色信息重建為連續(xù)信號,將連續(xù)信號從紋理空間映射至屏幕空間,在屏幕空間中對映射的連續(xù)信號進(jìn)行預(yù)濾波,且在屏幕空間中對預(yù)濾波信號進(jìn)行采樣。
圖3示出了使用方框作為重建濾波器覆蓋區(qū)的重建濾波。也可以使用其它濾波器,如高階濾波器。該圖示出了紋理元素網(wǎng)格。所示出的每個(gè)紋理元素為矩形,代表像素覆蓋的圖像表面。原始紋理元素的覆蓋區(qū)被取出并投影到屏幕上。這不僅改變了這些輸入覆蓋區(qū)的位置,而且改變這些輸入覆蓋區(qū)的大小。圖3所示的典型變換的大小和位置用具有虛線的方框來表示。實(shí)點(diǎn)示出了變換后無量綱(dimensionless)輸入紋理元素坐標(biāo)(一般與輸入紋理元素覆蓋區(qū)的中點(diǎn)相符合)的位置。作為變換的一部分,計(jì)算紋理元素輸出域中方框的大小。在重建濾波過程中,對于在區(qū)域遍歷時(shí)好像被遮蔽的輸入紋理元素,可以將其丟棄并且不重建。也可使用更精細(xì)的重建,尤其是正比于圖像的一階重建紋理元素的未被遮蔽部分的貢獻(xiàn)。圖3示出了方框重建和遮蔽處理的結(jié)果。方框的大小是原始紋理元素貢獻(xiàn)的一種度量。例如,輸入紋理元素320的重建覆蓋區(qū)(即,變換后的覆蓋區(qū))用片段340表示。在此例中,重建覆蓋區(qū)大約是輸出紋理元素覆蓋區(qū)的75%。在這種情形中,將輸入紋理元素對輸出圖像的貢獻(xiàn)設(shè)置為因子0.75。輸入紋理元素330的重建映射覆蓋區(qū)部分地處于輸出紋理元素310中,部分地處于輸出紋理元素310的右側(cè)。輸入紋理元素330的重建覆蓋區(qū)大約占輸出紋理元素310覆蓋區(qū)的25%,占相鄰輸出紋理元素覆蓋區(qū)的大約75%。于是,輸入紋理元素330的貢獻(xiàn)為25%+75%。如圖4所示,然后,將每個(gè)輸出紋理元素分配給屏幕空間中的像素,其中屏幕空間預(yù)濾波覆蓋區(qū)與屏幕空間重建方框重疊(即,紋理元素被映射到屏幕空間之后)。所示出的像素400重建方框中的矩形410是突出顯示的。預(yù)濾波覆蓋區(qū)可以延伸穿過多個(gè)像素。濾波器可以僅水平延伸,但是也可以垂直延伸。在圖4的例子中,使用的濾波器具有三個(gè)像素水平和垂直延伸,以其所屬的像素為中心且覆蓋兩個(gè)相鄰像素。在這種情況下,12個(gè)輸出像素接收一個(gè)貢獻(xiàn)。對于這些輸出像素中的每一個(gè),該貢獻(xiàn)通過利用它們各自的預(yù)濾波器的形狀對輸入的像素值進(jìn)行加權(quán)來加以確定。
然后,邊緣抗失真和隱藏表面消除(EAA&HSR)單元150將來自屏幕空間重采樣器的像素片斷進(jìn)行組合,它使用了片斷緩沖器160。像素片斷按深度排序到該緩沖器中,以解決隱藏表面問題。所有圖元經(jīng)過渲染之后,將每個(gè)像素的所有可見片斷進(jìn)行組合(其通常為簡單相加,因?yàn)槠聊豢臻g重采樣器傳遞的顏色已經(jīng)被預(yù)濾波器加權(quán)),并將其發(fā)送給幀緩沖器。將邊緣附近由屏幕空間光柵化器產(chǎn)生的部分貢獻(xiàn)進(jìn)行組合,從而實(shí)現(xiàn)邊緣抗鋸齒,這導(dǎo)致最終的像素顏色可能為不同圖元顏色的組合。
圖1示出的流水線描述了兩個(gè)重采樣級通過著色器控制的紋理空間重采樣器132和用于執(zhí)行到顯示網(wǎng)格的重采樣的屏幕空間重采樣器140。紋理映射可被視為從紋理采樣(紋理元素)到屏幕采樣(像素)的重采樣過程。高質(zhì)量的紋理和邊緣抗鋸齒效應(yīng)可以通過在采樣過程之前使用屏幕空間預(yù)濾波而獲得,它是重采樣之前的最后一個(gè)步驟。然而,當(dāng)光柵化圖元時(shí)要比僅僅進(jìn)行紋理(重)采樣執(zhí)行更多的采樣。光柵化器確定應(yīng)該訪問哪個(gè)光柵化網(wǎng)格位置時(shí)本身對三角形進(jìn)行采樣。該采樣過程也會導(dǎo)致鋸齒效應(yīng)。這可以通過使用額外的預(yù)濾波來減少,此時(shí)是在紋理空間進(jìn)行的,以避免假象(artifact)。三角形的光柵化過程有兩個(gè)輸入離散紋理圖形式的紋理信號和描述連續(xù)三角形信號的三個(gè)頂點(diǎn)形式的三角形信號。通常,該信號位于三角形內(nèi)代表1、之外代表0,作為一種離散分布信號,它確定所述三角形以外的紋理信息不應(yīng)該有貢獻(xiàn)、而位于三角形內(nèi)的紋理信息完全有貢獻(xiàn)。在傳統(tǒng)的光柵化過程中,通過準(zhǔn)確地訪問三角形信號為1的網(wǎng)格位置,對該信號進(jìn)行采樣。對這樣一個(gè)網(wǎng)格位置,其紋理元素顏色完全做出貢獻(xiàn)。這導(dǎo)致鋸齒效應(yīng)。依照本發(fā)明,邊緣附近的紋理元素(在三角形內(nèi)部和外部)肯定只做出部分貢獻(xiàn)。這可以通過對連續(xù)信號進(jìn)行預(yù)濾波而實(shí)現(xiàn),從而獲得邊緣附近0和1之間的貢獻(xiàn)。下文將首先詳細(xì)描述這種預(yù)濾波過程。或者,該濾波也可以被視為從紋理空間到屏幕空間的重采樣過程的更好形式的重建濾波。在紋理空間預(yù)濾波部分的描述以后給出該觀點(diǎn)。
紋理空間預(yù)濾波當(dāng)采用前向紋理映射時(shí),使用紋理空間光柵化器。在紋理空間中考慮三角形信號,且對其進(jìn)行預(yù)濾波,以避免紋理空間邊緣出現(xiàn)鋸齒效應(yīng)。圖5對此做了描述。若無預(yù)濾波,則輸入紋理中的每個(gè)紋理元素要么被映射到屏幕空間(如果其位置位于三角形內(nèi)),要么不被映射。所以,紋理元素要么完全做出貢獻(xiàn),要么完全不做出貢獻(xiàn)。后續(xù)的重采樣過程將利用該采樣,在該采樣的鄰域內(nèi)使用箱式濾波器重建連續(xù)信號。如果該區(qū)域的一部分不在三角形內(nèi),則紋理元素貢獻(xiàn)太大;如果紋理元素位于三角形外部,則其貢獻(xiàn)可能不夠,但是重建信號仍然與三角形重疊。對三角形進(jìn)行預(yù)濾波有助于改正此問題。原則上,可以使用任何適當(dāng)?shù)臑V波器。通過使用箱式濾波器,該預(yù)濾波可被視為區(qū)域重建。其它適當(dāng)?shù)臑V波器包括三角形濾波器、立方B樣條濾波器等。圖6描述了使用箱式濾波器的區(qū)域?yàn)V波。圖6A中示出了具有三角形的采樣網(wǎng)格。在圖6B中,對該信號進(jìn)行采樣(黑點(diǎn)表示完全貢獻(xiàn),白點(diǎn)表示無貢獻(xiàn)),以反映通過紋理空間光柵化/重采樣的現(xiàn)有技術(shù)點(diǎn)采樣。圖6C中示出了三角形,與箱式濾波器相關(guān)的預(yù)濾波區(qū)域用虛線標(biāo)示。圖6D示出了與三角形和每個(gè)紋理元素濾波器覆蓋區(qū)的區(qū)域重疊相對應(yīng)的貢獻(xiàn)(為這些點(diǎn)的灰度等級)。這等于對三角形信號進(jìn)行箱形預(yù)濾波,其中紋理元素覆蓋區(qū)和三角形的區(qū)域重疊百分比用于決定紋理元素的初始貢獻(xiàn)(用于后續(xù)的重采樣過程)。圖7示出了另一個(gè)例子。圖7A示出了和紋理元素方框覆蓋區(qū)相交的三角形的邊界。圖7B示出了使用灰度等級表示的結(jié)果貢獻(xiàn)因子。
在圖8示出的優(yōu)選實(shí)施例中,在當(dāng)前位置光柵網(wǎng)格顏色已知時(shí)(如果需要的話,可以在著色計(jì)算同時(shí)進(jìn)行區(qū)域計(jì)算),區(qū)域預(yù)濾波810在紋理著色器130之后執(zhí)行。此顏色被發(fā)送至屏幕空間重采樣器,該重采樣器也接受貢獻(xiàn)值。按照慣例,此貢獻(xiàn)因子為1。在區(qū)域預(yù)濾波方法中,區(qū)域覆蓋分?jǐn)?shù)被用作重采樣器的貢獻(xiàn)輸入。然后,區(qū)域預(yù)濾波就簡化到計(jì)算紋理元素中被三角形覆蓋的矩形濾波器覆蓋區(qū)的分?jǐn)?shù)。可以用任何合適的方法確定區(qū)域分?jǐn)?shù)。舉例來說,可以采用一種近似的方法,使用超采樣計(jì)算區(qū)域分?jǐn)?shù),其中,采用三角形內(nèi)的點(diǎn)測試判斷采樣在三角形之內(nèi)或之外的方法對覆蓋區(qū)進(jìn)行采樣?;蛘?,亦可以通過分析確定該分?jǐn)?shù)。對于三角形,測試表明分析方法更有效。采用分析方法,首先檢查濾波器覆蓋區(qū)是否完全位于三角形之內(nèi)(當(dāng)紋理元素覆蓋區(qū)位于三角形內(nèi)部、遠(yuǎn)離任何邊緣時(shí),這是一種經(jīng)常出現(xiàn)的情形)。在此情形下,區(qū)域分?jǐn)?shù)為1。如果不是,對三角形完全包含在覆蓋區(qū)內(nèi)的進(jìn)一步特殊情形進(jìn)行檢查。在此情形下,區(qū)域分?jǐn)?shù)可被計(jì)算為三角形區(qū)域和覆蓋區(qū)區(qū)域之間的比值。如果這兩種特例均不滿足,則計(jì)算三角形邊緣和覆蓋區(qū)邊緣之間的交叉點(diǎn),如此構(gòu)建的多邊形區(qū)域用于計(jì)算區(qū)域分?jǐn)?shù)。確定三角形和方框覆蓋區(qū)交叉點(diǎn)是本領(lǐng)域技術(shù)人員所公知的。應(yīng)當(dāng)注意的是,光柵化器一般不會訪問與三角形沒有重疊的紋理元素。如果一個(gè)簡化的光柵化器訪問這樣的紋理元素,則應(yīng)當(dāng)產(chǎn)生分?jǐn)?shù)0。
為了加速點(diǎn)容納和交叉點(diǎn)計(jì)算,作為三角形設(shè)置的一部分,對于每個(gè)三角形,最好預(yù)先計(jì)算該三角形的(紋理空間)邊緣等式。區(qū)域覆蓋分?jǐn)?shù)為三角形內(nèi)覆蓋區(qū)區(qū)域與所有覆蓋區(qū)區(qū)域的比值。后者僅取決于當(dāng)前的多紋理圖等級,并且因此僅被初始化一次,且僅在發(fā)生多紋理圖等級切換時(shí)才需更新。
預(yù)濾波尤其有助于處理小的三角形,這些小三角形可能丟失,或貢獻(xiàn)太多,導(dǎo)致屏幕的重采樣過程的第一步中的三角形信號重建階梯化。圖9示出了此效應(yīng)。圖9A示出了兩個(gè)細(xì)長的三角形,像尖峰一樣從較大基線伸出。該圖將每個(gè)紋理元素的貢獻(xiàn)描述為灰度等級。如圖9A所示,在沒有預(yù)濾波的情況下,峰值以塊狀出現(xiàn),因?yàn)榧y理元素要么完全貢獻(xiàn)要么完全不貢獻(xiàn)。如圖9B所示,有三角形預(yù)濾波時(shí),峰值跌落強(qiáng)度意味著三角形變窄。圖10示出了紋理顏色增加(將貢獻(xiàn)用作權(quán)重)并投影至屏幕之后的類似對象。圖10A示出了無預(yù)濾波的結(jié)果,圖10B為有預(yù)濾波的結(jié)果。要注意的是即使沒有三角形預(yù)濾波,屏幕空間重采樣器也會從最終圖像中去除高頻部分。但是,這些濾波器不能去除由壞三角形采樣所導(dǎo)致的塊狀鋸齒效應(yīng)假象。此外,由于紋理坐標(biāo)相對于對象通常保持固定,所以,后續(xù)幀的任何重建(和三角形信號采樣)都是一致的。在反向映射中,小的三角形可能引起閃爍,因?yàn)樗麄冊谀骋粠衼G失,而在下一幀中未丟失。在紋理空間中對三角形信號進(jìn)行預(yù)濾波和采樣的情況下,不會發(fā)生這種問題。所以,輪廓邊緣外形真正地受益于三角形預(yù)濾波。
紋理空間光柵化的一個(gè)問題是對于三角形邊緣附近的像素,相鄰三角形的貢獻(xiàn)可能無法準(zhǔn)確地互相補(bǔ)充。當(dāng)在不同網(wǎng)格上對三角形進(jìn)行光柵化或者在同一網(wǎng)格上以不同分辨率條件進(jìn)行光柵化時(shí),會出現(xiàn)這種問題,當(dāng)選擇不同的多紋理圖等級時(shí)也會如此。圖11示出了這一點(diǎn)(該圖示出了至屏幕的采樣過程中所使用的方框重建信號)。圖11A示出了兩個(gè)相鄰圖元。在左側(cè),兩個(gè)三角形偏移開一定量,以更清晰地顯示重建的邊緣,在右側(cè),這兩個(gè)三角形并排,以示出貢獻(xiàn)之和。由于這兩個(gè)三角形時(shí)在同一網(wǎng)格上進(jìn)行采樣的,所以它們準(zhǔn)確地互補(bǔ)。圖11B示出了相同的情形,但是左上角的三角形以較高多紋理圖等級進(jìn)行渲染。孔和重疊出現(xiàn)在組合后信號中。當(dāng)對三角形信號進(jìn)行區(qū)域預(yù)濾波時(shí)(如圖11C示出),三角形問題在一定程度上減輕了;本例中錯(cuò)誤的最大幅度已減半。還有一些由于紋理元素的方框重建而引起的錯(cuò)誤較粗糙多紋理圖等級中的方框重建將這一貢獻(xiàn)均勻地分配到與較精細(xì)等級中四個(gè)區(qū)域相對應(yīng)的一個(gè)區(qū)域。并不強(qiáng)求這四個(gè)區(qū)域具有相同的貢獻(xiàn)值,所以,兩個(gè)的和并不恒定。但是,錯(cuò)誤較小,因?yàn)檫吘壐浇呢暙I(xiàn)較少依賴光柵化器進(jìn)行采樣的采樣位置,而是更加依賴實(shí)際的連續(xù)信號,這對于相鄰三角形是一致互補(bǔ)的。
改進(jìn)的重建濾波器上面將本發(fā)明系統(tǒng)描述為對三角形信號進(jìn)行預(yù)濾波處理。本系統(tǒng)也可被視為具有圖1中項(xiàng)目140所示的重采樣的改進(jìn)的重建過程。此解釋亦包括在此,以更好地理解如何近似精確的卷積。將三角形信號和紋理采樣結(jié)合在一起可視為重建過程的開始,此過程在映射到屏幕之前重建紋理信號。為了解釋原理,圖12示出了一維情形下的重采樣過程。圖12A至D示出了不考慮三角形邊緣的重采樣過程。圖12A示出了三角形邊緣附近的一個(gè)紋理元素。箱式濾波器(圖12B)用于重建連續(xù)信號。然后,此重建信號被映射到屏幕空間(圖12C),其中,應(yīng)該用預(yù)濾波函數(shù)對其作卷積運(yùn)算。結(jié)果區(qū)域(圖12D)是紋理元素的權(quán)重,用于確定它對像素的貢獻(xiàn)。圖12E至H示出了考慮三角形邊緣的同樣過程,這導(dǎo)致邊緣紋理元素的權(quán)重較小。圖5的重采樣過程根據(jù)圖6描述的計(jì)算,給紋理元素加權(quán),得到圖6D所示的權(quán)重。然后,將該權(quán)重乘以區(qū)域覆蓋系數(shù)。該結(jié)果為圖12H描述的權(quán)重的近似。對于圖12所示的例子,這提供一個(gè)總的權(quán)重,它是這個(gè)三角形一個(gè)略微太小的近似(但是對于此三角形左側(cè)任何相鄰三角形而言,略微太大)。通過簡單地乘以區(qū)域系數(shù),可以有效地假定預(yù)濾波段的空間權(quán)重分布為恒定的。
對于具有2D表面的2D紋理圖,該原理同樣有效。圖13示出了屏幕空間中一個(gè)紋理的映射重建覆蓋區(qū)1310,其上的段1320為某個(gè)紋理元素的預(yù)濾波器。這是圖12C的2D變種。僅需要考慮位于預(yù)濾波段之下、三角形之上的那一部分體積。即黑色體1330,其與圖12H中的區(qū)域類似。不用準(zhǔn)確地計(jì)算這個(gè)體積,而是用整個(gè)預(yù)濾波器段下面的總體積(通常是通過重采樣處理來計(jì)算的)乘以紋理空間中所述三角形覆蓋的那個(gè)區(qū)域的分?jǐn)?shù)1240(在一般的透視映射下它與屏幕空間中的區(qū)域分?jǐn)?shù)不同),紋理空間中該紋理元素的區(qū)域加權(quán)近似這一體積(重采樣處理以前)。觀看圖13的另外一種方法是在紋理空間考慮之。那么,重建濾波器覆蓋區(qū)在紋理空間中為矩形覆蓋區(qū),且預(yù)濾波片段是映射(從屏幕至紋理空間)片段。
圖14示出了計(jì)算機(jī)1400的框圖,計(jì)算機(jī)1400包括中央處理器單元1410、存儲器1420、顯示器1430和依據(jù)本發(fā)明的計(jì)算機(jī)圖形系統(tǒng)1440。該計(jì)算機(jī)可以為常規(guī)的計(jì)算機(jī),如個(gè)人電腦或工作站。該計(jì)算機(jī)圖形系統(tǒng)可以使用圖形處理器來實(shí)現(xiàn)。這樣的圖形處理器可以在執(zhí)行本發(fā)明方法的程序控制下工作。該程序可以固定嵌入(比如在ROM中),但也可從背景存儲器中載入。在后一種情況下,該程序可以任何適當(dāng)?shù)姆椒ǚ职l(fā),例如使用諸如CD-ROM之類的記錄介質(zhì)或諸如因特網(wǎng)之類的有線或無線通信方式。
應(yīng)當(dāng)注意的是,上述實(shí)施例用于說明、而非限制本發(fā)明,并且,在不脫離所附權(quán)利要求的保護(hù)范圍的前提下,本領(lǐng)域技術(shù)人員能夠設(shè)計(jì)出多種其它的實(shí)施例。在權(quán)利要求中,括號內(nèi)的任何標(biāo)號不應(yīng)當(dāng)被解釋為限制權(quán)利要求?!鞍ā币辉~及其變形并不排除存在權(quán)利要求所記錄的部件或步驟之外的其他部件或步驟。部件前面的冠詞“一個(gè)”并不排除存在多個(gè)這樣的部件。本發(fā)明可以通過包含幾個(gè)不同部件的硬件來實(shí)現(xiàn),或經(jīng)適當(dāng)編程的計(jì)算機(jī)來實(shí)現(xiàn)。在裝置權(quán)利要求中列舉了數(shù)個(gè)模塊,這些模塊中的幾個(gè)可以實(shí)現(xiàn)為一個(gè)和同樣的硬件。相互不同的從屬權(quán)利要求中記錄的特定手段并不表示這些手段的組合不具有優(yōu)勢。
權(quán)利要求
1.一種采用前向紋理映射來渲染圖像以供顯示的計(jì)算機(jī)圖形系統(tǒng),所述圖像的像素是根據(jù)屏幕空間中預(yù)定的像素網(wǎng)格而確定的;所述圖像包括至少一個(gè)通過圖元進(jìn)行建模的對象;該系統(tǒng)包括紋理存儲器(134),存儲至少一個(gè)紋理圖;紋理圖的紋理元素是根據(jù)紋理空間中預(yù)定的紋理元素網(wǎng)格而確定的;光柵化器(120),對于所述紋理空間中的每個(gè)圖元,確定至少部分地處于所述圖元之內(nèi)的相關(guān)紋理元素,以及給所述相關(guān)紋理元素分配紋理元素屬性;貢獻(xiàn)濾波器(810),對于所述紋理空間中的每個(gè)圖元,對描述所述圖元的連續(xù)信號進(jìn)行濾波,當(dāng)對特定紋理元素位置進(jìn)行采樣時(shí),產(chǎn)生相應(yīng)的貢獻(xiàn)因子,所述貢獻(xiàn)因子提供紋理空間中所述圖元與相應(yīng)紋理元素的重疊程度的度量;紋理元素著色器(130),對于所述紋理空間的每個(gè)圖元,將所述相關(guān)紋理元素的紋理元素屬性轉(zhuǎn)換為所述紋理元素的顏色屬性;以及屏幕空間重采樣器(140),根據(jù)所述預(yù)定的像素網(wǎng)格,將所述貢獻(xiàn)因子用作權(quán)重來對所述紋理元素的顏色屬性進(jìn)行重采樣,從而形成像素?cái)?shù)據(jù)以供顯示。
2.如權(quán)利要求1所述的計(jì)算機(jī)圖形系統(tǒng),其中,所述貢獻(xiàn)濾波器為區(qū)域?yàn)V波器,其中所述貢獻(xiàn)因子取決于所述紋理元素網(wǎng)格中紋理元素覆蓋區(qū)與所述圖元的區(qū)域重疊百分比。
3.如權(quán)利要求2所述的計(jì)算機(jī)圖形系統(tǒng),其中,所述區(qū)域?yàn)V波器通過分析來確定所述區(qū)域重疊。
4.如權(quán)利要求3所述的計(jì)算機(jī)圖形系統(tǒng),其中,通過分析來進(jìn)行確定的步驟包括對于未完全位于圖元之外或者之內(nèi)的紋理元素覆蓋區(qū),確定所述圖元的邊界和所述紋理元素覆蓋區(qū)的邊界之間的多個(gè)交叉點(diǎn)。
5.如權(quán)利要求4所述的計(jì)算機(jī)圖形系統(tǒng),包括預(yù)先計(jì)算所述圖元邊界的邊界方程,以及,將所述邊界方程應(yīng)用到未完全位于所述圖元之外或之內(nèi)的每一個(gè)紋理元素。
6.一種計(jì)算機(jī),包括中央處理單元、存儲器、顯示器和如權(quán)利要求1所述的計(jì)算機(jī)圖形系統(tǒng)。
7.一種采用前向紋理映射來渲染圖像以供顯示的方法,所述圖像的像素是根據(jù)屏幕空間中預(yù)定的像素網(wǎng)格而確定的;所述圖像包括至少一個(gè)通過圖元進(jìn)行建模的對象;該方法包括存儲至少一個(gè)紋理圖;紋理圖中的紋理元素是根據(jù)紋理空間中預(yù)定的紋理元素網(wǎng)格而確定的;對于所述紋理空間中的每個(gè)圖元確定至少部分地處于所述圖元之內(nèi)的相關(guān)紋理元素,以及為所述相關(guān)紋理元素分配紋理元素屬性;對描述所述圖元的連續(xù)信號進(jìn)行濾波,當(dāng)對特定的紋理元素位置進(jìn)行采樣時(shí),產(chǎn)生相應(yīng)的貢獻(xiàn)因子,所述貢獻(xiàn)因子提供紋理空間中所述圖元與相應(yīng)紋理元素的重疊程度的度量;以及將所述相關(guān)紋理元素的屬性轉(zhuǎn)換為所述紋理元素的顏色屬性;以及根據(jù)所述預(yù)定的像素網(wǎng)格,將所述貢獻(xiàn)因子用作權(quán)重來對所述紋理元素的顏色屬性進(jìn)行重采樣,從而形成像素?cái)?shù)據(jù)以供顯示。
8.一種計(jì)算機(jī)程序,用于使處理器執(zhí)行如權(quán)利要求7所述的方法。
全文摘要
一種計(jì)算機(jī)圖形系統(tǒng),采用前向紋理映射對圖像進(jìn)行渲染。圖像像素形成屏幕空間中的像素網(wǎng)格。該圖像的對象是通過圖元進(jìn)行建模的。紋理存儲器(134)存儲紋理圖,多個(gè)紋理元素形成紋理空間中的一個(gè)紋理元素網(wǎng)格。光柵化器(120)為紋理空間中的每個(gè)圖元確定至少部分地處于所述圖元之內(nèi)的相關(guān)紋理元素,并為這些紋理元素分配像素屬性。紋理元素著色器(130)將紋理元素屬性轉(zhuǎn)換為顏色屬性。貢獻(xiàn)濾波器(810)對描述所述圖元的連續(xù)信號進(jìn)行濾波,當(dāng)對特定紋理元素位置進(jìn)行采樣時(shí),產(chǎn)生相應(yīng)的貢獻(xiàn)因子,所述貢獻(xiàn)因子提供所述紋理空間中所述圖元與對應(yīng)紋理元素的重疊程度的度量。屏幕空間重采樣器(140)根據(jù)所述像素網(wǎng)格將所述貢獻(xiàn)因子用作權(quán)重來對紋理元素的顏色屬性進(jìn)行重采樣,從而形成像素?cái)?shù)據(jù)以供顯示。
文檔編號G06T15/04GK1806259SQ200480016715
公開日2006年7月19日 申請日期2004年6月11日 優(yōu)先權(quán)日2003年6月17日
發(fā)明者巴特·G·B·巴倫布呂格, 帕特里克·托伊訥 申請人:皇家飛利浦電子股份有限公司