專利名稱::計算機(jī)圖形處理器及生成計算機(jī)圖形圖像的方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及一種計算機(jī)圖形處理器。本發(fā)明還涉及一種生成計算機(jī)圖形圖像的方法。
背景技術(shù):
:為多個不同目的,通過采用多種不同技術(shù)實現(xiàn)計算機(jī)生成圖像的呈現(xiàn)。大量消費級產(chǎn)品都基于屏幕空間掃描線算法,該算法通過遍歷屏幕上的像素,來逐個呈現(xiàn)投影到該屏幕上的圖元。反向紋理映射(inversetexturemapping)用以決定圖元對這樣一個像素所貢獻(xiàn)的色彩。通過對該圖形流水線后面幾個階段(光柵化及其后)的修改[8],前向紋理映射(forwardtexturemapping)也得以使用。通過前向紋理映射,遍歷(traverse)圖元在紋理貼圖上的投影,而不是屏幕上的投影,并將掃描中所碰到的紋理采樣(紋理像素)映射和噴涂(splatted)到屏幕上。該映射包括了一個二維(2D)變換。已知,二維濾波的大部分濾波器可被近似看作使用兩個一維(1D)濾波器,從而提供更高效的解決方法。見[2、17]中例子。如下所述,這樣的分離會帶來所謂的瓶頸(bottleneck)和切變(shear)問題,且分別導(dǎo)致模糊(blurriness)和鋸齒(aliasing)。為了緩和這些不利效應(yīng)帶來的后果,這些公開描述了四種遍歷次序。從這四種遍歷次序中選擇一種來減輕瓶頸問題。超級采樣(supersample)作為對切變鋸齒的一種解決方法,在已知的文獻(xiàn)中得到描述。超級采樣需要一個額外的下變換(downscale)濾波器,以降低額外的分辨率從而達(dá)到要求的輸出分辨率。
發(fā)明內(nèi)容此發(fā)明的目的是提供一種計算機(jī)圖形處理器以及產(chǎn)生計算機(jī)圖形圖像的方法,其中,上述額外的下變換濾波器是多余的。本發(fā)明中,與該目的相一致的計算機(jī)圖形處理器在權(quán)利要求1中被聲明。本發(fā)明中,與該目的相一致的生成計算機(jī)圖形圖像的方法在權(quán)利要求6中被聲明。在根據(jù)本發(fā)明的計算機(jī)圖形處理器中,模型信息提供單元提供了代表一組圖形基元的信息,這些圖形基元諸如三角形、其他多邊形或貝塞爾形狀。所提供的信息可以包括定義了圖元形狀的幾何信息,和/或定義了圖元外觀的外觀信息,諸如紋理和色彩信息。光柵化引擎能夠生成第一序列坐標(biāo),該第一序列坐標(biāo)與關(guān)聯(lián)于圖元的基本柵格u、v相一致,該光柵化引擎還能夠進(jìn)一步生成與該第一序列關(guān)聯(lián)的一個或多個序列內(nèi)插值。該進(jìn)一步生成的序列可以包括屏幕(顯示)坐標(biāo)x、y,以及例如包括圖元所表現(xiàn)出的表面的一般信息。設(shè)置色彩生成器利用所述外觀信息為所述第一序列坐標(biāo)分配色彩。該色彩生成器可以簡單地使用由光柵化引擎提供的內(nèi)插色彩,但也可以進(jìn)行復(fù)雜的著色和紋理操作。設(shè)置顯示空間重采樣器對色彩生成器在基本柵格中為坐標(biāo)u、v所分配的色彩進(jìn)行重采樣,重采樣為與利用坐標(biāo)x、y的顯示關(guān)聯(lián)的柵格中的表示。該變換通過第一和第二變換執(zhí)行,其大大降低了計算量。顯示空間重采樣器利用轉(zhuǎn)置機(jī)構(gòu)和選擇機(jī)構(gòu),根據(jù)圖像數(shù)據(jù)是否被轉(zhuǎn)置,以及根據(jù)執(zhí)行第一和第二變換的次序,即,首先計算顯示坐標(biāo)的x坐標(biāo)還是y坐標(biāo),來從四個選項中進(jìn)行選擇。根據(jù)本發(fā)明的計算機(jī)圖形處理器和方法包括了一種從四個選項中進(jìn)行選擇的新選擇準(zhǔn)則,其還把切變考慮在內(nèi)。發(fā)明者發(fā)現(xiàn),第二遍濾波器可以作為在第一遍中進(jìn)行的任何超級采樣的下變換濾波器,而在第二遍的超級采樣則需要一個額外的下采樣濾波器(第三遍)。因此,第一選擇階段為了減小瓶頸,其中決定了是否應(yīng)用轉(zhuǎn)置,該第一步后,基于這兩遍(變換)中所出現(xiàn)的切變在剩余的兩個選項中進(jìn)行選擇。轉(zhuǎn)置意味著包括了變換,其中,坐標(biāo)對中的坐標(biāo)互換。舉例來說,可通過相對于直線x=y(tǒng)或x=-y對坐標(biāo)作鏡像來完成。通過前向或后向旋轉(zhuǎn)90°也可以達(dá)到相同效果。但是,在這種情況下,如果第一轉(zhuǎn)置是后向旋轉(zhuǎn),那么第二次轉(zhuǎn)置應(yīng)是前向旋轉(zhuǎn),反之亦然。被選中的選項應(yīng)使最低的切變量出現(xiàn)在第二遍中,從而避免在第二遍中需要超級采樣。或者,最壞的切變被放到第一遍中,其中可以很容易地利用超級采樣來減少切變鋸齒。具體地,四個選項可以被進(jìn)一步定義如下第一選項,其中在第一遍中,對于具有坐標(biāo)v的每條線,通過將u映射到x,uv圖像數(shù)據(jù)被重采樣為xv圖像數(shù)據(jù),以及在第二遍中,對于具有坐標(biāo)x的每條線,通過將v映射到y(tǒng),xv圖像數(shù)據(jù)被變換為xy圖像數(shù)據(jù),第二個選項,其中在第一遍中,對于具有坐標(biāo)u的每條線,通過將v映射到y(tǒng),uv圖像數(shù)據(jù)被重采樣為uy圖像數(shù)據(jù),以及在第二遍中,對于具有坐標(biāo)y的每條線,通過將u映射到x,uy圖像數(shù)據(jù)被變換為xy圖像數(shù)據(jù),第三個選項,其中在第一遍中,對于具有坐標(biāo)v的每條線,通過將u映射到y(tǒng),uv圖像數(shù)據(jù)被變換為yv圖像數(shù)據(jù),在第二遍中,對于具有坐標(biāo)y的每條線,通過將v映射到x,yv圖像數(shù)據(jù)被變換為yx圖像數(shù)據(jù),以及yx圖像數(shù)據(jù)被轉(zhuǎn)置為xy圖像數(shù)據(jù),第四個選項,其中在第一遍中,對于具有坐標(biāo)u的每條線,通過將v映射到x,uv圖像數(shù)據(jù)被變換為ux圖像數(shù)據(jù),在第二遍中,對于具有坐標(biāo)x的每條線,通過將u映射到y(tǒng),ux圖像數(shù)據(jù)被變換為yx圖像數(shù)據(jù),以及yx圖像數(shù)據(jù)被轉(zhuǎn)置為xy圖像數(shù)據(jù)。在第三和第四選項中,對光柵化引擎所產(chǎn)生的坐標(biāo)進(jìn)行直接轉(zhuǎn)置是不必要的。取而代之的是,可在生成基本柵格的坐標(biāo)之前,將用于定義圖元的頂點和/或控制點的坐標(biāo)進(jìn)行簡單的轉(zhuǎn)置。參考附圖詳細(xì)描述本發(fā)明的這些及其他方面,其中圖1示出了計算機(jī)圖形處理器的一種已知結(jié)構(gòu);圖2示出了適于實現(xiàn)本發(fā)明的計算機(jī)圖形處理器的第一結(jié)構(gòu);圖3說明了對于兩步圖像變換所遇到的第一個問題;圖4說明了對于兩步圖像變換所遇到的第二個問題;圖5示出了適于實現(xiàn)本發(fā)明的計算機(jī)圖形處理器的第二結(jié)構(gòu);圖6A示出了利用圖1所示的已知計算機(jī)圖形處理器所呈現(xiàn)出的圖像;圖6B示出了利用圖5所示的根據(jù)本發(fā)明的計算機(jī)圖形處理器所呈現(xiàn)出的圖像。在這些圖中,彼此對應(yīng)的部分所具有的參考號碼相差100或100的倍數(shù)。發(fā)明詳述圖1是一個圖形流水線中最后幾個階段的結(jié)構(gòu),其特點是可編程頂點和像素著色??删幊添旤c著色器10(與位于流水線末端的幀緩存器70一起)向參考圖2等圖所述的結(jié)構(gòu)提供了變化的上下文。對于所呈現(xiàn)圖元的每個頂點,頂點著色器[6]可為像素著色器30修改和建立數(shù)據(jù)。頂點著色器10向光柵化引擎20提供的數(shù)據(jù)(用于內(nèi)插)通常包括一些屬性,如漫反射色彩(diffusecolor)和/或高光反射色彩(specularcolor)、紋理坐標(biāo)、(齊次)屏幕坐標(biāo)、以及有時出現(xiàn)的如曲面法線這樣的額外數(shù)據(jù),或著色處理需要的其他數(shù)據(jù)。將這些屬性提供給屏幕空間光柵化引擎20,該光柵化引擎20通過從這些頂點屬性中選擇屏幕坐標(biāo)作為光柵化處理的驅(qū)動變量,使用掃描線算法來遍歷位于圖元在屏幕上的投影內(nèi)的像素。光柵化引擎20內(nèi)插這些屬性,從而為給每個被訪問的像素賦值。該內(nèi)插解決了從世界空間到屏幕空間的透視映射。因而這些屬性在每個像素位置上都是可用的,其中像素著色器[11、12、13]可利用它們來計算局部表面色彩(localsurfacecolor)。當(dāng)需要紋理數(shù)據(jù)時,利用紋理空間重采樣器40,基于紋理坐標(biāo)從紋理存儲器50中獲得紋理采樣?;趶墓鈻呕?0接收的內(nèi)插坐標(biāo),以及基于來自先前紋理提取的(所謂的相關(guān)紋理(dependenttexturing))和/或經(jīng)計算得到的任何結(jié)果,由像素著色器30生成這些紋理坐標(biāo)。紋理濾波操作通常基于臨近紋理像素的雙線性或三線性內(nèi)插,或基于這樣的紋理探測(textureprobes)的結(jié)合,來近似一個各向異性的(透視變換)濾波器覆蓋范圍(footprint)。當(dāng)一個像素的表面顏色被確定后,所得到的像素片斷被繼續(xù)發(fā)送到邊緣抗鋸齒失真和隱藏表面消除(EAA&HSR)單元60。通常,該單元針對隱藏表面消除使用Z緩存,并針對邊緣抗鋸齒失真使用多重采樣(利用相關(guān)的子采樣緩存和下采樣邏輯)。當(dāng)所有的圖元都被呈現(xiàn)時,使用預(yù)濾波器(通常為box濾波器)進(jìn)行下采樣,從而將子采樣合成為最終像素分辨率的色彩。當(dāng)呈現(xiàn)高保真圖像時,一個重要的問題就是抗鋸齒失真(包括紋理抗鋸齒失真和邊緣抗鋸齒失真)。當(dāng)前的超級采樣和多重采樣技術(shù)的計算強(qiáng)度高,需要大量的存儲帶寬。在使用前向紋理映射的圖形流水線結(jié)構(gòu)中,通過容易地使用預(yù)濾波可避免鋸齒失真[8、9、2]。這樣的前向紋理映射結(jié)構(gòu)如圖2所述。如圖1的傳統(tǒng)流水線,圖2中所示的計算機(jī)圖形處理器包括模型信息提供單元110,該單元也被表示為可編程頂點著色器,或被表示為轉(zhuǎn)換與光照單元(transformationandlightingunit),以提供代表一組圖形基元的信息。該計算機(jī)圖形處理器還包括光柵化引擎125,其能夠生成第一序列坐標(biāo),這些坐標(biāo)與關(guān)聯(lián)于圖元的基本柵格(grid)相一致。與傳統(tǒng)屏幕空間光柵化引擎20不同,紋理空間光柵化引擎125通過選擇紋理坐標(biāo)(而不是屏幕坐標(biāo))作為光柵化處理的驅(qū)動變量,遍歷圖元在紋理貼圖(而不是屏幕)上的投影。所有屬性都被內(nèi)插(線性內(nèi)插,除了紋理像素被投影到其上的屏幕坐標(biāo)之外,該屏幕坐標(biāo)被透視內(nèi)插)。例如在對應(yīng)于四維(4D)MIP映射(mipmapping,一種多紋理映射技術(shù))(關(guān)于四維MIP映射的更多細(xì)節(jié),見Heckbert的關(guān)于紋理映射的概述[4])的柵格上,紋理空間光柵化引擎125遍歷紋理貼圖。然后,紋理拾取從存儲在紋理存儲器150中的三維(3D)MIP映射數(shù)據(jù)得到4維MIP映射重構(gòu)(mipmapreconstruction)?;蛘撸y理可被無壓縮地存儲在存儲器150中,或者可以以飛速寫入方式(onthefly)生成。計算機(jī)圖形處理器還包括了色彩生成器(未示出),來為上述的第一序列坐標(biāo)分配色彩。其中,被拾取的紋理像素可由內(nèi)插的滿反射和/或高光反射色彩來合成,從而產(chǎn)生一個表面的色彩采樣,其具有相關(guān)聯(lián)的屏幕坐標(biāo)(通常非整數(shù)),該屏幕坐標(biāo)表示這個紋理采樣映射到屏幕上的位置。色彩生成器在基本柵格內(nèi)為坐標(biāo)u、v所分配的色彩,被顯示空間重采樣器145重采樣為在與利用坐標(biāo)x、y的顯示關(guān)聯(lián)的柵格中的表示。然后,來自于屏幕空間重采樣器145的像素片斷(pixelfragments)在EAA&HSR單元160中被合成,該單元使用了一個片斷緩存器[8]。像素片斷被按深度分類(depth-sorted),保存到該緩存器內(nèi),以解決隱藏表面問題。在所有的圖元都被呈現(xiàn)后,每個像素的所有可視片斷被合成在一起(其可以相當(dāng)于簡單求和,因為屏幕空間重采樣器145傳遞的色彩已被預(yù)濾波器加權(quán)),并被發(fā)送到幀緩存器170。邊緣抗鋸齒失真是由屏幕空間重采樣器145在臨近邊緣處產(chǎn)生的部分貢獻(xiàn)的結(jié)合引起的,其最終導(dǎo)致由來自不同圖元的色彩所合成的像素色彩。在A-緩存[1]、Z3緩存[5]或三維引擎(WarpEngine)[14]中使用的技術(shù),也可用于EAA&HSR單元中,盡管Meinds的文章[8]中所述的片斷緩存器與這些技術(shù)不同之處在于,緩存器中來自于一個像素的色彩被看作對該像素的整個濾波器覆蓋范圍(可能彼此會部分重疊)的部分貢獻(xiàn),而不是超級采樣?xùn)鸥?總是一個接著一個)上的某一位置的色彩。由像素著色處理得到的著色的色彩采樣連同其屏幕坐標(biāo)一起被發(fā)送到屏幕空間重采樣器145。屏幕空間重采樣器145將色彩樣本(一般位于非整數(shù)像素位置)重采樣到顯示所需的整數(shù)像素位置。即,屏幕空間重采樣器將映射的紋理像素噴涂到整數(shù)屏幕位置上,并在屏幕上提供圖元的圖像。二維重采樣操作可以通過第一和第二一維變換被高效地執(zhí)行[2],例如,使用一維FIR濾波器結(jié)構(gòu),并有選擇地包括轉(zhuǎn)置(transposition)。在由相同發(fā)明者于2003年2月13日申請的歐洲專利申請03100313.0中描述了光柵化引擎和色彩生成器,其為模型信息提供單元的可能實現(xiàn)方式。根據(jù)本發(fā)明,處理器具有一個選擇機(jī)構(gòu),用于對變換的次序進(jìn)行選擇,并基于偏導(dǎo)數(shù)∂x∂u,∂x∂v,∂y∂u,∂y∂v]]>的計算來選擇是否使用轉(zhuǎn)置,這四個偏導(dǎo)數(shù)中,兩個決定變換中的切變,兩個決定變換中的縮放(scaling)。選擇出的相對較大的偏導(dǎo)數(shù)作為縮放因子出現(xiàn),相對較小的偏導(dǎo)數(shù)作為切變因子出現(xiàn),其中,在第二變換中出現(xiàn)最低切變量。該選擇過程可進(jìn)一步闡明如下。如果屏幕空間重采樣器245通過兩遍濾波(2-passfiltering)來實現(xiàn),光柵化引擎227除了為圖元表面遍歷做準(zhǔn)備,還必須為兩遍濾波做準(zhǔn)備。已知的是,兩遍濾波會受到瓶頸和切變問題的影響[17、15、2]。瓶頸問題如圖3所示,其中,中間圖像II的區(qū)域相對于輸入和輸出圖像TI、SI變得很小。其以接近90度的旋轉(zhuǎn)出現(xiàn),并在第二遍方向上導(dǎo)致額外的模糊(因為第二遍必須再次將折疊后的中間圖像放大)。切變問題如圖4所示,其中,示出了紋理貼圖TI中的兩行以及中間圖像II。紋理貼圖TI有一條黑色的垂直線,并且透視映射的切變是這樣的,第二行中的黑像素位置相對第一行中的黑像素位置向右移了五個像素。一遍水平濾波只能去除水平鋸齒,但不能去除垂直鋸齒。切變導(dǎo)致了在一行中黑像素和在下一行中白像素之間很明顯的躍遷。而且,中間圖像II中的這條線由不相連的部分組成,該不相連的部分被該線對其沒有貢獻(xiàn)的列(例如,x=3處)所分離。對于切變問題的一種解決方法[17]是以更高的分辨率來光柵化,這樣會導(dǎo)致產(chǎn)生額外的中間線,使得在多個空白的中間位置填入黑像素。如果對第一遍的切變執(zhí)行該操作,那么第二遍將會對較大的中間圖像進(jìn)行下采樣,以達(dá)到其最終的分辨率。如果使用相同的超級采樣方法來處理第二遍中的切變,則需要有第三遍來降低所生成的較高水平分辨率,以達(dá)到輸出分辨率。與Catmull和Smith的文章[2]十分相似,本發(fā)明通過在四個選項中進(jìn)行選擇來避免瓶頸問題,這個選擇通過決定以下兩點來獲得,(1)決定立刻產(chǎn)生輸出圖像SI,或產(chǎn)生轉(zhuǎn)置的版本并轉(zhuǎn)置所生成的圖像,以及,(2)決定首先進(jìn)行一遍水平處理,還是首先進(jìn)行一遍垂直處理。但是,根據(jù)本發(fā)明,使用不同的標(biāo)準(zhǔn)從這些選項中進(jìn)行選擇,以最小化第二遍的切變。通過這種方法,不必生成額外的圖像列來處理第二遍中的切變。在最壞情況下,只需產(chǎn)生中間的線來處理第一遍中的切變鋸齒。這就避免了進(jìn)行第三遍的代價??紤]到在某一點p周圍映射的局部線性x-xpy-yp=∂x∂u∂x∂v∂y∂u∂y∂vu-upv-vp]]>這里所使用的偏導(dǎo)數(shù)是瓶頸和切變問題(在點p處)的很好的指示器第一遍中u映射到x且在第二遍中v映射到y(tǒng)的情況下,是第一遍的縮放因子如果該值小(接近于零),則中間圖像將會折疊,并表現(xiàn)出瓶頸問題。是第二遍的縮放因子,以及和分別是第一遍和第二遍的切變量。對于處理瓶頸問題的四個選項之一,四個偏導(dǎo)數(shù)中的每一個都起到第一遍縮放因子的作用。選擇對應(yīng)于最大的第一遍縮放因子的選項(從而最大化中間圖像區(qū)域[2]),減少了瓶頸問題,但是會把切變問題留給第二遍,而不是第一遍。根據(jù)本發(fā)明,通過兩個階段在四個選項中進(jìn)行選擇,考慮到了切變問題。第一,決定如何配對坐標(biāo)將u映射到x,將v映射到y(tǒng),或者將u映射到y(tǒng),將v映射到x。基于圖元頂點處的偏導(dǎo)數(shù)以及一方面u和v之間的相關(guān)量和另一方面x和y之間的相關(guān)量,確定上述映射。通過選擇相關(guān)性最強(qiáng)的兩個偏導(dǎo)數(shù)作為縮放因子,來配對坐標(biāo)。另兩個偏導(dǎo)數(shù)成為切變因子。這就相當(dāng)于Catmull和Smith所述的“轉(zhuǎn)置與否”的選擇。第二,選擇兩遍處理的次序。交換兩遍處理的次序,就是把第一遍的縮放和切變因子轉(zhuǎn)置到第二遍當(dāng)中,反之亦然。該次序的選擇使得第二遍中具有最少的切變量。該選擇也決定了兩個縮放因子中的哪個是第一遍的縮放因子,哪個是第二遍的縮放因子。就瓶頸問題而言,這可以產(chǎn)生一個次優(yōu)的選擇,但是由于第一準(zhǔn)則選擇強(qiáng)相關(guān)的坐標(biāo)作為縮放因子,所以兩個縮放因子通常都足夠大以避免瓶頸問題。這樣,該選擇處理在避免瓶頸和第二遍切變問題之間提供了很好的折衷。像素著色通常相當(dāng)于使用一種或另一種方法,進(jìn)行幾個紋理的合成。這可以通過如圖1所示的傳統(tǒng)結(jié)構(gòu)來容易地完成,這是因為紋理空間重采樣器40將所有紋理都重采樣到普通屏幕像素柵格上,其中,可以對每個像素的紋理采樣進(jìn)行合成。在參考圖2所描述的前向紋理映射結(jié)構(gòu)中,只有在屏幕空間重采樣器階段145之后,紋理采樣在普通屏幕像素柵格上才是可用的。而且,光柵化引擎一次僅可以遍歷一個柵格,所以,當(dāng)如前向映射結(jié)構(gòu)中一樣正在紋理柵格上發(fā)生光柵化并使能多紋理化(multi-textureing)時,光柵化引擎必須從很多紋理中選擇一個紋理,同時在相關(guān)聯(lián)的柵格上遍歷圖元。多紋理可以以多遍(multi-pass)方式處理,使得在將這些紋理重采樣到屏幕像素柵格后,可以對其進(jìn)行合成。但是,這樣會使EAA&HSR單元160中的片斷緩存器擁塞。這樣也會阻止高級特性,例如相關(guān)紋理處理,或具有相反性質(zhì)的紋理模型,如環(huán)境映射凹凸貼圖(environmentmappedbumpmapping)(其中,在每個柵格位置的凹凸映射信息決定了定位環(huán)境貼圖的位置,可能會導(dǎo)致從環(huán)境貼圖到圖元表面和屏幕的一對多前向映射)。如果屏幕空間重采樣器可以在認(rèn)為只有一個紋理貼圖與圖元關(guān)聯(lián)的情況下映射紋理采樣,那么這些問題就都可避免。因此,表面色彩的著色可以在屏幕空間重采樣處理之前進(jìn)行。其在圖5中有相應(yīng)描述,該圖5表示了一種混合圖形流水線。該混合流水線中,光柵化引擎在“表面柵格”上對圖元進(jìn)行光柵化,即,在為圖元表面提供二維參數(shù)化的坐標(biāo)系統(tǒng)中的柵格上進(jìn)行光柵化。與紋理貼圖關(guān)聯(lián)的柵格提供這樣一個表面柵格,并且優(yōu)選地用作表面柵格(由于在紋理柵格上獲取紋理采樣不需要重采樣)。但是,萬一出現(xiàn)紋理貼圖的空缺,或者例如紋理是一維或三維時,則可以選擇另一柵格。其它段落中更詳細(xì)地對其進(jìn)行描述。除了(在前向紋理映射情況下)與每個柵格位置關(guān)聯(lián)的透視映射屏幕坐標(biāo)之外,可以在該柵格上線性地內(nèi)插屬性。光柵化引擎227在該柵格上的多個位置處內(nèi)插屬性(包括二級紋理坐標(biāo))。然后,像素著色器235對該表面柵格的柵格位置上各個屬性進(jìn)行操作,并且如果有任何與圖元關(guān)聯(lián)的二級紋理(secondarytexture),其就使用標(biāo)準(zhǔn)紋理空間重采樣器進(jìn)行反向映射,以從這些紋理中獲得色彩。如果該表面柵格從一個紋理貼圖中被選擇,那么該“初級(primary)”紋理階段的紋理像素拾取從前向映射流水線濃縮為四維MIP映射重構(gòu)處理。該處理是一種沿坐標(biāo)軸的各向異性濾波的形式,且在標(biāo)準(zhǔn)的紋理空間重采樣器中各向異性濾波通常是可用的。被拾取的紋理采樣以及其他屬性可被像素著色器程序使用,以計算當(dāng)前柵格位置的表面色彩。一旦表面柵格上的采樣被著色,利用屏幕空間重采樣器245將該色彩噴涂到屏幕像素上,其中,EAA&HSR單元260可以將來自不同圖元的貢獻(xiàn)合成在一起。使用圖5所示的混合結(jié)構(gòu)會產(chǎn)生若干結(jié)果,并具有若干吸引人的特性。對于混合流水線的不同階段,來討論這些結(jié)果和特性,并討論這些階段相對于圖1所示的傳統(tǒng)流水線的變化。光柵化引擎227必須選擇一個圖元柵格,并避免瓶頸和切變問題,以及控制MIP映射??删幊痰南袼刂?30和紋理空間重采樣器240保持與傳統(tǒng)像素著色流水線中相同,且對于屏幕空間重采樣器245有一些選擇。表面空間光柵化引擎227包含一個額外的第一流水線階段(在正常的建立和遍歷階段之后),其中表面柵格被選定。該階段在正常的光柵化引擎設(shè)置之前完成。優(yōu)選地,該表面柵格從紋理貼圖中的一個得到,從而不必通過紋理空間重采樣器240重采樣該紋理貼圖(除可選的四維MIP映射之外)。因此,柵格建立階段可以檢查與圖元關(guān)聯(lián)的紋理貼圖。對于符合能夠提供表面柵格這個條件的紋理貼圖,其必須滿足三個要求。第一,其必須不是相關(guān)尋址;第二,其必須是二維紋理(一維和三維紋理不適合遍歷二維2D表面);第三,頂點的紋理坐標(biāo)不應(yīng)該組成退化的圖元(例如,其中所有的紋理坐標(biāo)連成一線,生成有效一維紋理)。如果一個以上紋理符合條件,則選取在紋理空間具有最大區(qū)域的紋理該紋理具有潛在的最多細(xì)節(jié)和最高頻率(這樣最能避免對于該紋理的紋理空間重采樣處理,因為該處理過程會導(dǎo)致不需要的模糊和鋸齒)。如果沒有符合條件的紋理可用(例如,假設(shè)有一個簡單的高氏(Gouraud)著色的圖元),通過為每個頂點分配虛構(gòu)的“紋理坐標(biāo)”,可以在圖元的表面選擇虛構(gòu)的柵格,使光柵化引擎227進(jìn)行遍歷。然后,該虛構(gòu)柵格如同紋理柵格一樣(除對于這些坐標(biāo)的紋理拾取被禁止外)被光柵化引擎遍歷。正如Chen[3]所提到的,其優(yōu)點是所得到的表面上的線性內(nèi)插為透視提供了正確的高氏著色。將每個頂點的x和y屏幕坐標(biāo)分配為虛構(gòu)紋理坐標(biāo)成為一種選擇。注意,該選擇并不意味著光柵化引擎遍歷屏幕像素,因為當(dāng)把一個“紋理像素”映射到屏幕上時,每個頂點的齊次w仍被考慮在內(nèi)。另一個選擇(對于諸如三角形的平表面)是在眼睛空間內(nèi)旋轉(zhuǎn)三維頂點坐標(biāo),使得被旋轉(zhuǎn)表面的法線與眼睛空間z軸對準(zhǔn),然后選擇旋轉(zhuǎn)的眼睛空間x和y坐標(biāo)作為每個頂點的虛構(gòu)柵格坐標(biāo)。在圖元表面遍歷任何柵格的能力提供了很大自由度。例如,這種自由度可以被用來避免任何瓶頸和切變問題,這些問題可能會與特定紋理柵格到屏幕的映射關(guān)聯(lián)。這種自由度可以被用來遍歷非平坦的圖元(例如,經(jīng)由其表面參數(shù)化所決定的二維柵格遍歷一個貝塞爾面片(Bezierpatch),并使用前向映射來直接將表面色彩噴涂到屏幕上)。光柵化引擎也可以在圖元的運(yùn)動方向上利用這種自由度,從而可以沿著光柵化的方向應(yīng)用一維濾波器,以高效地實現(xiàn)運(yùn)動模糊[7]。光柵化引擎227必須以某一分辨率對圖元的表面進(jìn)行采樣,該分辨率對于其投射到屏幕上的圖像SI的分辨率是合適的。因此,以與傳統(tǒng)流水線中的MIP映射相似的方式對柵格進(jìn)行遍歷。當(dāng)有或多或少的細(xì)節(jié)需求時,通過改變用作柵格坐標(biāo)和內(nèi)插屬性的增量的delta值,光柵化引擎可以改變MIP映射級別(mipmaplevel)。這樣,光柵化引擎在表面柵格上采取或大或小的步長。光柵化引擎227經(jīng)由透視映射來保持與每個柵格位置關(guān)聯(lián)的屏幕坐標(biāo)。利用這些坐標(biāo),通過確認(rèn)后續(xù)柵格位置的屏幕坐標(biāo)之間的差異保持在合適的范圍之內(nèi)(例如,在和1之間,但是,當(dāng)然可以采用MIP映射級別偏差(mipmaplevelbias)),可以確定MIP映射開關(guān)(mipmapswitch)是否狀況良好。上述處理并不直接提供用于從任何關(guān)聯(lián)的紋理貼圖拾取采樣的MIP映射級別,這是由于它僅能保證一個合適的表面到屏幕的MIP映射級別。對于每個紋理貼圖來說,還有一個與從紋理柵格到表面柵格的映射關(guān)聯(lián)的縮放因子。該縮放因子對應(yīng)一個紋理到表面的MIP映射級別,該紋理到表面的MIP映射級別可以被加到表面到屏幕的MIP映射級別上,以達(dá)到所需的總體的紋理到屏幕的MIP映射級別。從用于在圖元表面上內(nèi)插紋理坐標(biāo)的delta值可以直接獲得紋理到表面的MIP映射級別,并且由于該內(nèi)插是線性的,所以紋理到表面的MIP映射級別對每個圖元來說是不變的,并且可以被光柵化引擎建立儲存在與每個紋理重采樣階段關(guān)聯(lián)的寄存器內(nèi),用作偏移量??删幊獭跋袼亍敝?30和紋理空間重采樣器240(對于串行或并行拾取紋理采樣,該采樣器可以是一個或多個)與傳統(tǒng)流水線中的對應(yīng)部分完全相同。像素著色器230接收到某一位置的一組(內(nèi)插的)屬性,包括紋理和屏幕坐標(biāo)。紋理坐標(biāo)與著色程序一起經(jīng)由紋理空間重采樣器240,來確定定位紋理貼圖的位置。在把紋理坐標(biāo)發(fā)送到紋理空間重采樣器240以實現(xiàn)相關(guān)紋理之前,著色器230還可以改變紋理坐標(biāo),與傳統(tǒng)的流水線中的方式完全相同??删幊讨?30將著色的色彩以及通常為非整數(shù)的相關(guān)聯(lián)的屏幕坐標(biāo)一起傳送給屏幕空間重采樣器245??衫门c傳統(tǒng)像素著色器流水線(圖1)中像素著色器30類似的方法對其進(jìn)行處理,當(dāng)進(jìn)行超級采樣時該傳統(tǒng)流水線可接收子像素(sub-pixel)屏幕位置。著色的色彩是對一個位置進(jìn)行計算的結(jié)果,且并不依賴于被光柵化引擎227遍歷的柵格。這就是說,現(xiàn)有的著色器程序無需進(jìn)行修改,就可以在所推薦的結(jié)構(gòu)上運(yùn)行。在表面空間進(jìn)行可編程著色具有一些優(yōu)點和缺點。除了前向映射所帶來的高質(zhì)量的抗鋸齒失真之外,一個主要優(yōu)點就是紋理空間重采樣器240不必處理到屏幕的透視映射。大部分時間里,可編程著色被用來進(jìn)行從紋理柵格到另一柵格的仿射變換(affinetransformation)?;跇?biāo)準(zhǔn)雙線性/三線性探測的紋理空間重采樣器,相比透視映射所需的更為一般的著色覆蓋區(qū)域,能更好地近似該仿射映射所需的濾波器覆蓋區(qū)域,因此這種重采樣處理的質(zhì)量將會比較高。僅有屏幕空間重采樣器245必須處理透視重采樣,且它僅會在表面柵格的著色采樣上應(yīng)用一次。這種方法的一個缺點是,與傳統(tǒng)的像素著色流水線相比,要對更多的采樣進(jìn)行著色。這是由于在每個方向上MIP映射保持了一個介于1和2之間的縮小因子(因此,對于每個像素,大約有1.5×1.5的表面元素被采樣)。然而,高質(zhì)量的抗鋸齒失真將會確保子像素細(xì)節(jié)仍對最終的圖像有所貢獻(xiàn),從而更進(jìn)一步改善圖像質(zhì)量。另一個缺點是現(xiàn)在二級紋理被兩次重采樣(一次被紋理空間重采樣器240,另一次被屏幕空間重采樣器245),這樣可能會引入額外的模糊。通過選擇具有最高細(xì)節(jié)的紋理貼圖作為主紋理(primarytexture),這就保證了最豐富的細(xì)節(jié)僅被重采樣了一次。二級紋理將會有更小的縮小(或甚至?xí)U(kuò)大,通常在如光照貼圖的情況下出現(xiàn)),所以一些額外的模糊就不是很明顯。屏幕空間重采樣器245還使用了高質(zhì)量銳度增強(qiáng)濾波器,其也能幫助保持清晰的圖像。圖6表示了來自游戲QuakeIII中同一場景[16]的比較,該場景分別由圖1的傳統(tǒng)流水線以及圖5混合流水線的樣機(jī)所呈現(xiàn)。圖6a展示了例如在樓梯上的鋸齒失真,即使采用了2×2的多采樣,失真仍存在。在圖6b中,雖然生成該圖像所花費的計算量和帶寬幾乎和圖6a的相同,而該鋸齒失真幾乎消失了。在地板上的影子和在墻上的燈光證明使用了光照貼圖,其是利用混合流水線的樣機(jī)中的多紋理“著色器”所呈現(xiàn)的。參考文獻(xiàn)1.LorenCarpenter.TheA-buffer,anantialiasedhiddensurfacemethod(A-緩存,一種抗鋸齒的隱藏表面方法).InHankChristiansen,editor,ComputerGraphics(SIGGRAPH’84Proceedings),volume18,pages103-108,July1984.2.EdwinCatmullandAlvyRaySmith.3-dtransformationsofimagesinscanlineorder(掃描行順序的圖像三維變換).InComputerGraphics(SIGGRAPH’80Proceedings),volume14(3),pages279-285,1980.3.BaoquanChen,F(xiàn)rankDachille,andArieKaufman.Forwardimagemapping(前向圖像映射).InProceedingsofIEEEVisualization’99,pages89-96,October1999.4.PaulS.Heckbert.Surveyoftexturemapping(紋理映射概論).IEEEComputerGraphicsandApplications,Nov.1986.5.NormanP.JouppiandChun-FaChang.Z3Aneconomicalhardwaretechniqueforhigh-qualityantialiasingandtransparency(用于高質(zhì)量抗鋸齒及透明的一種經(jīng)濟(jì)的硬件技術(shù)).InProceedingsofEurographics/Siggraphworkshopongraphicshardware1999,pages85-93.ACMPress,1999.6.ErickLindholm,MarkJ.Kilgard,andHenryMoreton.Auser-programmablevertexengine(一種用戶可編程的頂點引擎).InProceedingsSiggraph2001,pages149-158,August2001.7.KoenMeinds.Temporalanti-aliasingwithforwardtexturemapping(使用前向紋理映射的時域抗鋸齒失真).InSubmittedtoGraphicsHardware2003,2003.8.KoenMeindsandBartBarenbrug.Resamplehardwarefor3dgraphics(三維圖形的重采樣硬件).InT.Ertl,W.Heidrich,andMDoggett,editors,ProceedingsofGraphicsHardware2002,pages17-26,2002.9.Theresamplehardwarefor3dgraphicswebpageat(三維圖形的重采樣硬件網(wǎng)頁)http//www.extra.research.philiphics/,2003.10.TheMesahomepage(Mesa的主頁)athttp//www.mesa3d.org/11.Microsoft.DirectXGrqphicsProgrammersGuide(DirectX圖形程序員指南).MicrosoftDevelopersNetworkLibrary.12.M.Olano,J.C.Hart,W.Heidrich,andM.McCool.Real-timeshadings(實時著色).AKPeters,Natick,Massachusetts,2002.13.M.OlanoandA.Lastra.AshadinglanguageongraphicshardwareThepixelflowshadingsystem(一種關(guān)于圖形硬件的著色語言像素流著色系統(tǒng)).InProceedingsSiggraph1998,pages159-168,July1998.14.VoicuPopescu,JohnEyles,AnselmoLastra,JoshuaSteinhorst,NickEngland,andLarsNyland.ThewarpengineAnarchitectureforthepost-polygonalage(三維變形引擎一種用于多邊形貼圖時代的結(jié)構(gòu)).InProceedingsSiggraph2000,pages433-442,2000.15.AlvyRaySmith.Planar2-passtexturemappingandwarping(平面兩遍的紋理映射和變形).InComputerGraphics(ProceedingsSiggraph1987),volume21(4),pages263-272,1987.16.QuakeIIIlevel“SubversiveTendencies”availableat(QuakeIII級別“顛覆趨向”可在如下網(wǎng)頁找到)http//bettenberg.home.mindspring.com/teqtmy3.htmlbyTequila,whichusestexturesmapsfromhttp//www.planetquake.com/hfx/Someofthesearereplaced,andforsomethecontrastisincreased(使用了來自該網(wǎng)址的紋理貼圖,其中一些被替換,一些的對比度提高).17.GeorgeWolbergandTerranceE.Boult.Separableimagewarpingwithspatiallookuptables(使用空間查找表的可分離的圖像變形).InComputerGraphics(Proc.Siggraph’89),volume23(3),pages369-378,July1989.18.MatthiasZwicker,HanspeterPfister,JeroenvanBaar,andMarkusGross.Surfacesplatting(表面噴涂).InProceedingsSiggraph2001,pages371-378,August2001.權(quán)利要求1.一個計算機(jī)圖形處理器,包括模型信息提供單元,用于提供表示一組圖形基元的信息;光柵化引擎,其能夠生成第一序列坐標(biāo),所述第一序列坐標(biāo)與關(guān)聯(lián)于所述圖元的基本柵格一致;色彩生成器,用于為所述第一序列坐標(biāo)分配色彩;以及顯示空間重采樣器,用于在第一和第二變換中,對所述色彩生成器在所述基本柵格內(nèi)為坐標(biāo)u、v分配的色彩進(jìn)行重采樣,重采樣為與利用坐標(biāo)x、y的顯示關(guān)聯(lián)的柵格內(nèi)的表示,所述第一和第二變換在第一和第二遍中執(zhí)行,并有選擇地包括轉(zhuǎn)置,所述處理器有一個選擇機(jī)構(gòu),用于選擇所述變換的次序以及基于以下偏導(dǎo)數(shù)的計算來選擇是否進(jìn)行轉(zhuǎn)置,∂x∂u,∂x∂v,∂y∂u,∂y∂v]]>其中的兩個偏導(dǎo)數(shù)決定切變,另兩個偏導(dǎo)數(shù)決定所述變換中的縮放,所作出的選擇中,相對較大的偏導(dǎo)數(shù)作為縮放因子出現(xiàn),相對較小的偏導(dǎo)數(shù)作為切變因子出現(xiàn),并且其中,最低的切變量出現(xiàn)在第二次變換中。2.如權(quán)利要求1所述計算機(jī)圖形處理器,其中,所述光柵化引擎在一個坐標(biāo)系內(nèi)的柵格上光柵化所述圖元,所述坐標(biāo)系提供了所述圖元表面的二維參數(shù)化。3.如權(quán)利要求2所述計算機(jī)圖形處理器,其中,所述柵格是從紋理貼圖中的一個得來的。4.如權(quán)利要求3所述計算機(jī)圖形處理器,其中,如果有一個以上紋理符合條件,則選擇在紋理空間內(nèi)具有最大區(qū)域的紋理。5.如權(quán)利要求2所述計算機(jī)圖形處理器,其中,如果沒有與所述圖元關(guān)聯(lián)的紋理,則通過為每個頂點分配虛構(gòu)紋理坐標(biāo),來選擇所述圖元表面上的虛構(gòu)柵格。6.生成計算機(jī)圖形圖像的方法,包括以下步驟-提供表示一組圖形基元的信息,-生成第一序列坐標(biāo),所述第一序列坐標(biāo)與關(guān)聯(lián)于所述圖元的基本柵格一致,-利用表示所述圖形圖元的信息,來為所述第一序列坐標(biāo)分配色彩,-在第一和第二遍中,對所述色彩生成器在基本柵格內(nèi)為坐標(biāo)u、v分配的色彩進(jìn)行重采樣,重采樣為與利用坐標(biāo)x、y的顯示關(guān)聯(lián)的柵格內(nèi)的表示,計算所述顯示中的坐標(biāo)相對于所述基本柵格中的坐標(biāo)的偏導(dǎo)數(shù)∂x∂u,∂x∂v,∂y∂u,∂y∂v,]]>其中的兩個偏導(dǎo)數(shù)決定切變,另兩個偏導(dǎo)數(shù)決定變換中的縮放,在所作出的選擇中,相對較大的偏導(dǎo)數(shù)作為縮放因子出現(xiàn),相對較小的偏導(dǎo)數(shù)作為切變因子出現(xiàn),并且其中,最低的切變量出現(xiàn)在第二變換中。全文摘要描述了一種計算機(jī)圖形處理器,包括模型信息提供單元(210),其提供表現(xiàn)一組圖形基元的信息;光柵化引擎(227),其能夠生成第一序列坐標(biāo),該第一序列坐標(biāo)與關(guān)聯(lián)于圖元的基本柵格一致;色彩生成器(235),其為所述第一序列坐標(biāo)分配色彩;以及顯示空間重采樣器(245),其在第一和第二變換中,對色彩生成器在基本柵格內(nèi)為坐標(biāo)u、v分配的色彩進(jìn)行重采樣,重采樣為與利用坐標(biāo)為x、y的顯示關(guān)聯(lián)的柵格內(nèi)的表示。該變換通過第一和第二遍執(zhí)行,并有選擇地包括轉(zhuǎn)置。這兩遍的次序以及決定是否進(jìn)行轉(zhuǎn)置取決于偏導(dǎo)數(shù)公式(I)的計算,其中的兩個偏導(dǎo)數(shù)決定切變,另兩個偏導(dǎo)數(shù)決定變換中的縮放。所作出的選擇中,相對較大的偏導(dǎo)數(shù)作為縮放因子出現(xiàn),相對較小的偏導(dǎo)數(shù)作為切變因子出現(xiàn),并且其中,最低的切變量出現(xiàn)在第二次變換中。文檔編號G06T15/50GK1774725SQ200480010027公開日2006年5月17日申請日期2004年4月13日優(yōu)先權(quán)日2003年4月15日發(fā)明者巴特·G·B·巴倫布呂格,科內(nèi)利斯·邁因德斯申請人:皇家飛利浦電子股份有限公司