專利名稱:計算機(jī)圖形處理器及在三維圖像顯示屏上呈現(xiàn)三維場景的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種計算機(jī)圖形處理器和一種呈現(xiàn)三維場景的N個視圖的方法。
背景技術(shù):
最近,人們對在三維圖像顯示屏上提供三維圖像和三維場景很感興趣。人們相信繼彩色圖像之后,三維圖像將是成像技術(shù)中下一個重大的革新。由包括三維模型輸入和視點(diǎn)輸入的呈現(xiàn)器(renderer)來呈現(xiàn)顯示圖像所需的信息(數(shù)據(jù))?;镜?,可以通過使用立體對(進(jìn)入觀看者兩只眼睛里的兩幅不同圖像)、全息技術(shù)或者顯示器中多平面來生成三維印象。
產(chǎn)生立體圖像有幾種方式??梢詫D像在二維顯示器上時間復(fù)用,但這要求觀看者佩戴有例如LCD快門的眼鏡。當(dāng)在同一時刻顯示立體圖像時,則可以通過使用頭盔顯示器或者使用偏振光眼鏡(那么要以正交偏振光來產(chǎn)生圖像)將各圖像引入適當(dāng)?shù)难劬?。觀看者所佩戴的眼鏡能有效地將視圖引導(dǎo)到每只眼睛里。眼鏡中的快門或者偏振器與幀率同步,以控制該引導(dǎo)過程。為了防止閃爍,相對于同等二維圖像,幀率必須翻倍或者分辨率減半。這種系統(tǒng)的缺點(diǎn)是兩幅圖像僅提供了有限的“環(huán)視”能力。此外,必須佩戴的眼鏡也會產(chǎn)生某些影響。對于那些不習(xí)慣佩戴眼鏡的觀察者來說眼鏡是令人討厭的,對于那些已經(jīng)戴眼鏡的人來說,因為附加的一副眼鏡不總合適,所以眼鏡也是個潛在的問題。
為了不接近觀察者的眼睛,也可以用諸如視差柵欄(parallaxbarrier)的分割屏幕裝置在顯示屏上將兩幅立體圖像分開,例如,如US 5969850中所示。從無需專用眼鏡來觀看三維圖像的意義上講,該顯示屏的視圖是自動立體顯示的,他們常常僅為空間中位于固定位置處的一個觀看者工作。然而,觀看區(qū)很窄。在觀看區(qū)之外,觀看者會看到導(dǎo)致令人討厭的觀看效果的多幅圖像或者是立體倒置。在實踐中,這意味著對于多種應(yīng)用,例如在起居室內(nèi),觀看區(qū)是這么小以至于觀看者不得不坐在一個特定位置才能看到三維圖像。
因此,具有能提供N視圖(即在顯示屏上有很多個視圖)的顯示設(shè)備的系統(tǒng)是一種發(fā)展趨勢。這樣的設(shè)備可以在顯示屏上提供三維圖像,并且該三維圖像在較大視角范圍對于多個觀看者來說是可觀看的。
為了顯示這些圖像,特別是在三維游戲中顯示這些圖像,使用了呈現(xiàn)器。呈現(xiàn)器必須呈現(xiàn)這些圖像的數(shù)據(jù)。對于簡單的立體顯示器,即視點(diǎn)數(shù)目為2,呈現(xiàn)器必須呈現(xiàn)兩幅圖像的數(shù)據(jù),而對于更復(fù)雜的三維,例如自動立體顯示器,視圖的數(shù)目大量增加,目前可以達(dá)到N~10,對于未來的三維顯示器預(yù)期會達(dá)到N~100,這就要求呈現(xiàn)器能提供更多視圖并從而支持更多數(shù)據(jù)。該呈現(xiàn)器可以是顯示設(shè)備本身的一部分,或者可以是提供圖像信息的獨(dú)立設(shè)備,將該圖像信息作為顯示設(shè)備尋址模塊的輸入提供給該圖像設(shè)備。首要方面是不僅必須生成許多視圖信息而且最好使每個視點(diǎn)的圖像質(zhì)量充分相同。
當(dāng)前的呈現(xiàn)技術(shù)使用了呈現(xiàn)器,該呈現(xiàn)器基于三維模型和單獨(dú)視圖的視點(diǎn),為每個所述單獨(dú)視圖呈現(xiàn)圖像信息,即數(shù)據(jù)。雖然這種方法對N=2的三維成像是有用的,但為了增加視野(field of view)并能從許多個不同視點(diǎn)看到圖像,這種不斷增加視點(diǎn)數(shù)目的具體實現(xiàn)要求必須呈現(xiàn)大量具有充分相同圖像質(zhì)量的、具有高速度和高細(xì)節(jié)度的視點(diǎn)。
圖6說明了基本立體設(shè)備的問題。未坐在適當(dāng)觀看區(qū)的觀看者會感到迷惑混亂。該觀看區(qū)是很窄的。在觀看區(qū)外,觀看者將看到多幅圖像或者立體倒置,這都導(dǎo)致非常討厭的觀看效果。在實際中,這意味著對于多種應(yīng)用,例如在起居室內(nèi),這樣的觀看區(qū)太小以至于觀看者必須坐在一個特定的位置才能看到所有內(nèi)容。
視差顯示器(parallax display)是一類多視圖顯示器,該顯示器能為在不同觀看位置同時觀看的多位觀看者示出三維場景的固定一組不同透視視圖(圖像)。
視差顯示器所能示出的視圖數(shù)目(N)決定了可表現(xiàn)的三維-圖像質(zhì)量和總體深度范圍。當(dāng)相鄰的視圖更相似的時候,圖像質(zhì)量就高。這為觀看者頭部運(yùn)動產(chǎn)生平滑的(逼真的)透視過渡。此外,大部分時間里兩個相鄰視圖是輕微重疊的。就意味著如果視圖相似性降低,“雙輪廓”或(重像)會增加。然而,因為更多深度需要視圖間有更多的差異(更少的相似性),所以相鄰視圖的相似性限制了這些視圖可貢獻(xiàn)的深度量。
因此,需要大量的透視視圖(N)就要求有成本合算的方法來生成這些視圖。
一種方法是根據(jù)所有視圖的三維描述生成這些視圖。這就可能有來自十分不同角度的視點(diǎn)。生成所有多幅視圖的一種昂貴實例是使用單獨(dú)的多條圖形流水線(甚至可能處于不同的PC或其它設(shè)備中)。這要求在圖形流水線之間進(jìn)行同步,并在這些流水線中復(fù)制所有的模型和紋理數(shù)據(jù)。
然而,一種實例是僅復(fù)制部分呈現(xiàn)流水線。在圖7中示出了傳統(tǒng)的反向映射呈現(xiàn)流水線。圖7示出了反向映射呈現(xiàn)流水線最后幾個級的結(jié)構(gòu),其特點(diǎn)為可編程頂點(diǎn)和所訪問像素的像素著色??删幊讨鱌PS可以將每個像素位置處可獲得的屬性用于計算局部表面色彩。當(dāng)需要紋理數(shù)據(jù)時,將紋理空間重采樣器TSR用于獲得來自紋理存儲器TM的由紋理坐標(biāo)給定的紋理采樣?;诮邮兆怨鈻呕鍿SR的內(nèi)插坐標(biāo)以及由先前紋理拾取的(所謂的相關(guān)紋理化(dependenttexturing))和/或計算得到的任何結(jié)果,像素著色器PPS生成了這些紋理坐標(biāo)。當(dāng)PPS確定了像素表面色彩后,將所得到的像素片斷繼續(xù)發(fā)送到邊緣抗鋸齒失真和隱藏表面消除(EAA & HSR)單元。通常,該單元針對隱藏表面消除使用Z緩存,并針對邊緣抗鋸齒失真使用多重采樣(利用相關(guān)的子采樣緩存和下采樣邏輯)。當(dāng)用預(yù)濾波器(通常為box濾波器)呈現(xiàn)出所有圖元時,應(yīng)用下采樣將子采樣合成為最終像素分辨率的色彩,。
對于待呈現(xiàn)圖元的每個頂點(diǎn),頂點(diǎn)著色器PVS可為像素著色器PPS修改和準(zhǔn)備數(shù)據(jù)。頂點(diǎn)著色器向光柵化引擎設(shè)置單元RS提供的數(shù)據(jù)通常包括一些屬性,如漫反射和/或高光色彩、紋理坐標(biāo)、(齊次)屏幕坐標(biāo)、以及有時出現(xiàn)的額外數(shù)據(jù),如表面法線或著色處理所需的其它數(shù)據(jù)。將這些屬性提供給屏幕空間光柵化引擎SS,該光柵化引擎通過從這些頂點(diǎn)屬性中選擇屏幕坐標(biāo)作為光柵化處理的驅(qū)動變量,用掃描線算法來遍歷(traverse)位于圖元在屏幕上的投影內(nèi)的像素。
在這樣的流水線中,光柵化引擎遍歷屏幕上場景中的圖元投影(諸如三角形)。該投影對于每個視圖是不同的。所以,需要為每個視圖復(fù)制光柵化引擎SS(包括設(shè)置單元RS)以及流水線中該光柵化引擎之后所有單元。因此,為每個視圖復(fù)制了光柵化引擎設(shè)置單元RS、屏幕空間光柵化引擎SSR、紋理空間重采樣器TSR、PPS及TSR、邊緣抗鋸齒失真和隱藏表面消除EAA & HSR單元以及幀存儲器FB。這在硬件(大量復(fù)制)、存儲器帶寬(對于所有的流水線復(fù)制來說單獨(dú)拾取紋理數(shù)據(jù))以及處理要求(針對每個視圖重復(fù)執(zhí)行像素著色計算)方面都是高花費(fèi)。
因此本發(fā)明的目標(biāo)是提供一種能夠無需過多計算量來呈現(xiàn)具有充分相等的圖像質(zhì)量的N幅圖像的系統(tǒng)和方法。
發(fā)明概述該目標(biāo)可以通過如權(quán)利要求1所述的計算機(jī)圖形處理器、如權(quán)利要求9所述的呈現(xiàn)三維圖像的N幅視圖的方法以及如權(quán)利要求14所述的計算機(jī)程序產(chǎn)品來解決。
因此,提供了具有用于呈現(xiàn)三維圖像的N個視圖的呈現(xiàn)器的計算機(jī)圖形處理器。所述呈現(xiàn)器包括光柵化引擎SS,用于針對所有N個視圖,在所述三維圖像的圖元的表面上遍歷表面柵格。此外,所述呈現(xiàn)器包括著色器模塊PPS,用于確定來自光柵化引擎SS輸出的色彩并將著色后的色彩采樣及其屏幕坐標(biāo)一起提供給N個屏幕空間重采樣器SSR,每個屏幕空間重采樣器SSR根據(jù)N個視圖之一,對所述著色器模塊PPS確定的著色后的色彩采樣進(jìn)行重采樣。
該實現(xiàn)的效率高得多,這是因為對于N個不同視圖,僅執(zhí)行一次表面遍歷、紋理拾取以及著色計算。將產(chǎn)生的著色后的色彩重新用于所有視圖。另外,在圖元表面上遍歷任何柵格的能力提供了更多呈現(xiàn)自由度。
根據(jù)本發(fā)明的一個方面,所述計算機(jī)圖形處理器還包括存儲紋理貼圖的紋理存儲器TM。所述表面柵格是根據(jù)與所述圖元相關(guān)聯(lián)并存儲在所述紋理存儲器TM中的紋理貼圖得到的。因為在紋理柵格上獲得紋理采樣不需要重新采樣,所以將與紋理貼圖相關(guān)聯(lián)的柵格用作表面柵格是有優(yōu)勢的。
根據(jù)本發(fā)明的另一方面,如果a)所述紋理貼圖是被獨(dú)立尋址的,b)所述紋理貼圖是基于二維紋理的,以及c)頂點(diǎn)處的紋理坐標(biāo)不組成退化的圖元,則將與紋理存儲器TM中所存儲的紋理貼圖之一相關(guān)聯(lián)的柵格選為表面柵格。
根據(jù)本發(fā)明的另一方面,如果所述紋理存儲器TM中所存儲的多于一個紋理貼圖滿足所述三個條件a)-c),則選擇紋理空間中具有最大區(qū)域的紋理貼圖。該紋理貼圖潛在具有最多細(xì)節(jié)和最高頻率,因為紋理空間重采樣處理會引起不需要的模糊和鋸齒失真,所以最好避免在對該紋理進(jìn)行紋理空間重采樣處理。
根據(jù)本發(fā)明的另一方面,所述計算機(jī)圖形處理器還包括對顯示屏幕進(jìn)行尋址的模塊。所述呈現(xiàn)器具有三維模型的輸入和至少一個視點(diǎn)的輸入,用于呈現(xiàn)提供給該尋址模塊的圖像信息。該呈現(xiàn)器包括初始部分70,該部分70具有三維模型和主視點(diǎn)的輸入,用于以主視點(diǎn)Z-堆棧91、94的形式呈現(xiàn)對象,該主視點(diǎn)Z-堆棧91、94包括具有色彩信息和Z-值的堆棧層S1、S2、S3。而且,該呈現(xiàn)器包括Z-堆棧構(gòu)造器,在該Z-堆棧構(gòu)造器中根據(jù)由初始級生成的主視點(diǎn)Z-堆棧(91、94)構(gòu)建附加視點(diǎn)的Z-堆棧97。該呈現(xiàn)器還包括圖像信息封閉語義(occlusion semantics)級,用于根據(jù)Z-堆棧97中生成圖像信息79。
因此,通過N個屏幕空間重采樣器可以僅生成少數(shù)適當(dāng)遠(yuǎn)離的視圖,而很少Z-堆棧用于生成中間鄰近的視圖。因此,可以存在多于一個主視點(diǎn),這些主視點(diǎn)每個可以由其自身SSR生成。
本發(fā)明還涉及一種呈現(xiàn)三維圖像的N個視圖的方法。針對所有N個視圖,在所述三維圖像的圖元表面上遍歷表面柵格。生成光柵化引擎SS的輸出的色彩并提供著色后的色彩采樣及其屏幕坐標(biāo)。對于N個視圖的每個視圖,對所述著色器模塊PPS確定的著色后的色彩采樣進(jìn)行重采樣。
本發(fā)明基于僅進(jìn)行一次表面遍歷、紋理拾取以及著色計算的思想。然后將所產(chǎn)生的著色后的色彩重用于所有N個視圖。
參考下文描述的實施例,本發(fā)明的這些和其它方面得以闡明并且將是明顯的。
在圖中圖1示出了根據(jù)第一實施例的用于多視圖呈現(xiàn)的前向映射流水線;圖2示意性說明了根據(jù)第二實施例的用于顯示設(shè)備和方法的呈現(xiàn)器管道(pipe);圖3說明了圖2的用于顯示設(shè)備和方法的呈現(xiàn)器管道的細(xì)節(jié);圖4說明了根據(jù)圖2的呈現(xiàn)器管道和方法的細(xì)節(jié);圖5說明了根據(jù)圖2的方法的進(jìn)一步細(xì)節(jié);圖6說明了基本視差柵欄顯示器所遇到的問題,以及圖7示出了多視圖呈現(xiàn)的反向映射流水線。
這些圖并非按比例繪制。一般地,這些圖中相同成分表示為相同參考數(shù)字。
優(yōu)選實施例詳述圖1示出了根據(jù)本發(fā)明第一實施例的用于多視圖呈現(xiàn)的前向映射流水線,第一實施例是優(yōu)選實施例。該呈現(xiàn)流水線,尤其是其后端,包括可編程頂點(diǎn)著色器PVS、光柵化引擎設(shè)置單元RS、表面空間光柵化引擎SS、紋理存儲器TM、紋理空間重采樣器TSR、可編程像素著色器PPS、屏幕空間重采樣器SSR、邊緣抗鋸齒失真單元EAA、隱藏表面消除單元HSR以及幀緩存器FB。
首先,針對單個視圖描述該呈現(xiàn)流水線的操作。根據(jù)本發(fā)明的混合呈現(xiàn)流水線結(jié)構(gòu)基于反向映射像素著色結(jié)構(gòu)和前向映射流水線的組合。
可編程頂點(diǎn)著色器PVS(例如,Erick Lindholm、Mark J.Kilgard和Henry Moreton于2001年八月在Proceedings Siggraph 2001第149-158頁所著的“A user-programmable vertex engine(用戶可編程的頂點(diǎn)引擎)”中所描述的)適于針對待呈現(xiàn)圖元的每個頂點(diǎn)為可編程像素著色器PPS修改和準(zhǔn)備數(shù)據(jù)??删幊添旤c(diǎn)著色器PVS提供給光柵化引擎SS(用于內(nèi)插)的數(shù)據(jù)通常包括一些屬性,如漫反射和/或高光色彩、紋理坐標(biāo)、(齊次)屏幕坐標(biāo)、以及有時出現(xiàn)的額外數(shù)據(jù),如表面法線或著色處理所需的其它數(shù)據(jù)。
邊緣抗鋸齒失真單元EAA和隱藏表面消除單元HSR針對隱藏表面消除使用Z緩存,并針對邊緣抗鋸齒失真使用多重采樣(利用相關(guān)的子采樣緩存和下采樣邏輯)。
在前向紋理映射結(jié)構(gòu)中,只有在屏幕空間重采樣器級SSR之后,在普通屏幕像素柵格上才可獲得紋理采樣。而且,光柵化引擎一次僅可以遍歷一個柵格,所以,當(dāng)和前向映射結(jié)構(gòu)一樣在紋理柵格上進(jìn)行光柵化并允許多紋理化時,光柵化引擎必須從很多紋理中選擇出一個,并在相關(guān)聯(lián)的柵格上遍歷圖元??梢杂枚啾?multi-pass)方式處理多紋理,使得將這些紋理重采樣到屏幕像素柵格后,可以對其進(jìn)行合成。但是,這樣會使EAA & HSR單元中的片斷緩存器擁塞。也會阻止高級特性,如相關(guān)紋理化,或具有相反性質(zhì)的紋理模型,如環(huán)境映射凹凸貼圖(environment mapped bump mapping)(其中,在每個柵格位置的凹凸貼圖信息決定了定位環(huán)境貼圖的位置,可能會導(dǎo)致從環(huán)境貼圖到圖元表面及屏幕的一對多前向映射)。根據(jù)本發(fā)明,可以確信,為了避免這些問題,屏幕空間重采樣器SSR可以就像僅有一個紋理貼圖與圖元關(guān)聯(lián)那樣映射紋理采樣。所以,表面色彩的著色應(yīng)該在屏幕空間重采樣處理之前進(jìn)行。
表面空間光柵化引擎SS在“表面柵格”上遍歷圖元,即,在提供圖元表面二維參數(shù)化的坐標(biāo)系中的柵格上進(jìn)行遍歷。與紋理貼圖相關(guān)聯(lián)的柵格提供這種表面柵格,并優(yōu)選用作表面柵格(因為在紋理柵格上獲取紋理采樣不需重采樣)。但是,如果缺少紋理貼圖,或者例如當(dāng)紋理是一維或三維時,可以選擇另一柵格。除了(如在前向紋理映射情況下)與每個柵格位置關(guān)聯(lián)的透視映射屏幕坐標(biāo)之外,可以在該柵格上線性地內(nèi)插屬性。該表面空間光柵化引擎SS在該柵格的多個位置上內(nèi)插屬性(包括二級紋理坐標(biāo))。然后,像素著色器PPS對該表面柵格的柵格位置上的屬性進(jìn)行操作,并且如果有任何二級紋理(secondary texture)與圖元相關(guān)聯(lián),就用標(biāo)準(zhǔn)紋理空間重采樣器TSR進(jìn)行反向映射,以便從這些紋理中獲得色彩。如果從紋理貼圖中選擇表面柵格,那么該“初級(primary)”紋理級的紋理像素拾取可以由前向映射流水線的4D MIP映射重構(gòu)處理來實現(xiàn)。該處理是一種沿坐標(biāo)軸的各向異性濾波的形式,并且在標(biāo)準(zhǔn)的紋理空間重采樣器中通常可用各向異性濾波。被拾取的紋理采樣以及其他屬性可由像素著色器程序用于計算當(dāng)前柵格位置的表面色彩。一旦對表面柵格上的采樣進(jìn)行了著色,就用屏幕空間重采樣器SSR將該色彩噴涂(splat)到屏幕像素上,其中,EAA & HSR單元可以合成不同圖元的貢獻(xiàn)。
表面空間光柵化引擎SS將會包含額外的第一流水線級(在正常的設(shè)置和遍歷級之后),在該級中確定表面柵格。這在正常光柵化引擎設(shè)置之前完成。
該表面柵格可以從紋理貼圖之一得到,這樣不必由紋理空間重采樣器TSR重采樣該紋理貼圖(4D MIP映射除外)。因此,柵格設(shè)置級可以檢查存儲在紋理存儲器TM中、與圖元關(guān)聯(lián)的紋理貼圖。對于符合提供表面柵格條件的紋理貼圖,其必須滿足三個要求。第一,其必須不是相關(guān)尋址;第二,其必須是二維紋理(一維和三維紋理不適合遍歷二維表面);第三,頂點(diǎn)紋理坐標(biāo)不應(yīng)該組成退化的圖元(例如,其中所有的紋理坐標(biāo)連成一線,生成有效一維紋理)。
如果一個以上的紋理符合條件,則柵格設(shè)置級選取紋理空間中具有最大區(qū)域的紋理該紋理具有潛在的最多細(xì)節(jié)和最高頻率(這樣最好能避免該紋理的紋理空間重采樣處理,因為該處理過程會導(dǎo)致不需要的模糊和鋸齒失真)。
如果沒有符合條件的紋理可用(例如,假設(shè)有一個簡單的高氏(Gouraud)著色圖元),通過為每個頂點(diǎn)分配虛構(gòu)的“紋理坐標(biāo)”,可以在圖元的表面上選擇虛構(gòu)的柵格,以便光柵化引擎進(jìn)行遍歷。然后,如同對紋理柵格一樣(除了不能對這些坐標(biāo)進(jìn)行紋理拾取外),光柵化引擎遍歷該虛構(gòu)柵格。優(yōu)點(diǎn)是該表面上得到的線性內(nèi)插為透視提供了正確的高氏著色,需要更多信息請參考Baoquan Chen、Frank Dachille以及Arie Kaufman于1999年10月在Proceedings of IEEEVisualization’99的第89-96頁發(fā)表的“Forward image mapping(前向圖像映射)”。將每個頂點(diǎn)的x和y屏幕坐標(biāo)分配為虛構(gòu)紋理坐標(biāo)是一種選擇。因為當(dāng)把“紋理像素”映射到屏幕上時,每個頂點(diǎn)的齊次w仍被考慮在內(nèi),所以要注意該選擇并不意味著光柵化引擎遍歷屏幕像素。另一個選擇(對于諸如三角形的平坦表面)是在眼睛空間內(nèi)旋轉(zhuǎn)三維頂點(diǎn)坐標(biāo),使得旋轉(zhuǎn)表面的法線與眼睛空間z軸一致,然后選擇旋轉(zhuǎn)的眼睛空間x和y坐標(biāo)作為每個頂點(diǎn)的虛構(gòu)柵格坐標(biāo)。
在圖元表面遍歷任何柵格的能力提供了很大的自由度。例如,這種自由度可以用于避免任何瓶頸(bottleneck)和切變(shear)問題,這些問題可能會與特定紋理柵格到屏幕的映射相關(guān)聯(lián)。它可以用于遍歷非平坦的圖元(例如,通過由其表面參數(shù)化決定的二維柵格來遍歷貝塞爾面片(Bezier patch),并用前向映射直接將表面色彩噴涂到屏幕上)。它也可以用于圖元運(yùn)動方向上的光柵化引擎,從而可以沿著光柵化方向應(yīng)用一維濾波器,以便有效率地實現(xiàn)運(yùn)動模糊。
可編程“像素”著色器PPS和紋理空間重采樣器TSR(如果存在幾個紋理,對于串行或并行拾取紋理采樣,該紋理空間重采樣器可以是一個或多個)與傳統(tǒng)流水線中的相應(yīng)部分對應(yīng)。像素著色器PPS接收某一位置的一組(內(nèi)插的)屬性,包括紋理和屏幕坐標(biāo)。紋理坐標(biāo)與著色程序一起經(jīng)由紋理空間重采樣器TSR確定定位這些紋理貼圖的位置。在把紋理坐標(biāo)發(fā)送給紋理空間重采樣器TSR以實現(xiàn)相關(guān)紋理化之前,著色器還可以改變紋理坐標(biāo),這與傳統(tǒng)的流水線中的方式完全相同。
可編程著色器PPS將著色后的色彩以及相關(guān)聯(lián)的屏幕坐標(biāo)一起傳送給屏幕空間重采樣器SSR。這些坐標(biāo)通常為非整數(shù),但這與傳統(tǒng)像素著色器流水線中當(dāng)進(jìn)行超級采樣時像素著色器接收子像素(sub-pixel)屏幕位置的方式類似。
因此,著色后的色彩是對一個位置進(jìn)行計算的結(jié)果,而且并不依賴于光柵化引擎SS所遍歷的柵格。這說明現(xiàn)有著色器程序無需進(jìn)行修改就可以在根據(jù)本發(fā)明的結(jié)構(gòu)上運(yùn)行。在表面空間進(jìn)行可編程著色具有一些優(yōu)點(diǎn)和缺點(diǎn)。除了前向映射所能帶來的高質(zhì)量抗鋸齒失真之外,一個主要優(yōu)點(diǎn)是就透視映射而言可以對其單獨(dú)考慮。此時,紋理空間重采樣器TSR不必處理映射到屏幕的透視映射。大部分時間里,將其用于執(zhí)行從紋理柵格到另一柵格的仿射變換(affinetransformation)。相比透視映射所需的更一般形狀的覆蓋區(qū)域(footprint),基于標(biāo)準(zhǔn)雙線性/三線性探測的紋理空間重采樣器能更好地近似該仿射映射所需的濾波器覆蓋區(qū)域,因此這種重采樣處理的質(zhì)量將會更高。
只有屏幕空間重采樣器SSR必須處理透視重采樣,并且該處理僅對表面柵格上的著色后的采樣應(yīng)用一次。由于所具有的表面采樣是最終像素的大約兩倍,所以一個缺點(diǎn)是與傳統(tǒng)像素著色流水線相比要對更多采樣進(jìn)行著色。這是由于MIP映射在每個方向上保持了一個介于1和2之間的縮小因子(因此,每個像素大約有1.5×1.5個表面采樣)。然而,高質(zhì)量的抗鋸齒失真將確保子像素細(xì)節(jié)對最終圖像仍有貢獻(xiàn),從而進(jìn)一步改善圖像質(zhì)量。
另一個缺點(diǎn)是此時對二級紋理進(jìn)行了兩次重采樣(一次由紋理空間重采樣器TSR采樣,另一次由屏幕空間重采樣器SSR采樣),這可能會引入額外的模糊。這就是為什么將具有最多細(xì)節(jié)的紋理貼圖優(yōu)選為初級紋理,以保證最精細(xì)的細(xì)節(jié)僅被重采樣一次。二級紋理將會有更小的縮小(或甚至擴(kuò)大,通常在光照貼圖情況下出現(xiàn)擴(kuò)大),所以一些額外的模糊不是很明顯。屏幕空間重采樣器SSR還允許使用高質(zhì)量清晰度增強(qiáng)濾波器,其也能幫助保持清晰的圖像。
將像素著色處理所產(chǎn)生的著色后的色彩采樣和其屏幕坐標(biāo)一起傳給像素空間重采樣器SSR。該屏幕空間重采樣器SSR將這些色彩采樣(通常位于非整數(shù)像素位置)重采樣到顯示所需的整數(shù)像素位置。當(dāng)呈現(xiàn)更大圖元或使用寬預(yù)濾波器時,使用一維濾波器的兩遍方法要比直接使用2D濾波器核更有效率。而且,可以構(gòu)建一維重采樣器,使得不需進(jìn)再歸一化來避免DC紋波(ripple)。兩遍濾波器確實需要額外的設(shè)置來減輕諸如瓶頸和切變問題??蛇x擇的方法是用二維重采樣核來進(jìn)行噴涂。
為了能進(jìn)行多視圖呈現(xiàn),僅復(fù)制了呈現(xiàn)流水線的某些部分,來呈現(xiàn)N個不同視圖?,F(xiàn)在對待復(fù)制部分的選擇作更詳細(xì)地描述。
如上面所提到的,表面空間光柵化引擎SS在圖元表面遍歷柵格,該圖元(基本上)獨(dú)立于該表面上的視圖,像素著色器PPS為光柵化引擎SS遍歷過的表面確定色彩。因此,由于圖元表面上的表面柵格獨(dú)立于該表面上的視圖,所以表面遍歷和著色計算不需要被復(fù)制。為了正確呈現(xiàn)視圖,僅需為每個視圖復(fù)制用于將計算出的表面色彩映射到特定視圖的屏幕空間重采樣器SSR、其后的邊緣抗鋸齒失真和隱藏表面消除(EAA & HSR)單元以及幀存儲器FB。
因為光柵化引擎設(shè)置也為屏幕空間重采樣器進(jìn)行了設(shè)置計算(用于透視映射和隱面消除(backface culling)),所以還需要復(fù)制光柵化引擎設(shè)置的一些部分。特別是,光柵化引擎設(shè)置的一部分對用于執(zhí)行向屏幕空間映射的變量進(jìn)行初始化,復(fù)制該部分,以設(shè)置針對每個視圖的映射,當(dāng)一個圖元在任何視圖中不可見(大概基于兩個極端)時,需要修改任一隱面消除算法,以便只消除該圖元。
這樣的復(fù)制更為有效率,因為只需進(jìn)行一次表面遍歷、紋理拾取以及著色計算,所以這樣的復(fù)制特別有優(yōu)勢。將產(chǎn)生的著色后的色彩重用于所有視圖。
然而,這僅適用于那些與視點(diǎn)無關(guān)的著色計算(這是關(guān)于一大類著色計算的情況)。否則,就將中心視圖的視點(diǎn)用作近似。可以針對中間視圖執(zhí)行著色,這樣非中心視圖構(gòu)成了近似。
呈現(xiàn)多幅視圖的另一結(jié)果是光柵化引擎需要以對所有視圖都足夠高的分辨率來遍歷圖元表面。換句話說,任何視圖所需的最高分辨率確定了光柵化引擎的分辨率。因此,光柵化和著色的花銷略高于僅呈現(xiàn)一個視圖的情況,但比分別光柵化和著色每一幅視圖花銷少得多。
可以將這種解決方法與已知的變形(warping)方法相結(jié)合。給定一幅視圖和該視圖的深度貼圖,可以通過變形技術(shù)生成相鄰的視圖。因為場景僅呈現(xiàn)一次,所以這是非常有效率的,但當(dāng)原始視圖和所生成的視圖之間角度的變大時,所引入的失真(artifact)變得更顯著。換句話說,可以將該流水線用于生成有限數(shù)量的視圖,這些視圖覆蓋了所有需要觀看的角度。然后用變形技術(shù)從那些所呈現(xiàn)視圖的最接近視圖(一幅或兩幅)中生成中間視圖。
圖2說明了根據(jù)本發(fā)明第二實施例的顯示設(shè)備的呈現(xiàn)器(呈現(xiàn)管道)62。呈現(xiàn)器62包括第一部分70,用于為主視點(diǎn)生成Z堆棧。在此例子中,該部分包括主視點(diǎn)的輸入端63和三維模型的輸入端61。在幾何變換器71中依照主視點(diǎn)變換所有幾何圖形(形狀和形式),在像素效果引擎(pixelizer)72中對數(shù)據(jù)進(jìn)行像素化,即把所有的對象都變換為具有X、Y、Z、色彩(RGB)和可能的α(不透明或透明)值的像素,并且在紋理效果引擎(texturizer)73中將紋理相加。對于主視點(diǎn),在DOF呈現(xiàn)器74中將DOF(景深)相加。該處理針對與主視點(diǎn)相關(guān)的數(shù)據(jù)。所以不考慮N-1個附加視點(diǎn),僅對主視點(diǎn)執(zhí)行一次該處理。
此后,將(以如下解釋的Z堆棧形式)對應(yīng)于主視點(diǎn)的數(shù)據(jù)用作三維呈現(xiàn)級75的基礎(chǔ),該級具有與剩余N-1個附加視點(diǎn)相關(guān)的數(shù)據(jù)的輸入端,呈現(xiàn)對應(yīng)于該N-1個附加視點(diǎn)的N-1個Z-堆棧,作為輸出。在封閉語義級76,通過Z-跟蹤(Z-tracing)方式,將N-1個附加視點(diǎn)Z-堆棧中的數(shù)據(jù)(和主視點(diǎn)Z堆棧中的數(shù)據(jù)一起)轉(zhuǎn)換到針對N個不同視點(diǎn)的N個圖像的N個幀緩存中。因為對主視點(diǎn)進(jìn)行該處理的第一部分,這部分處理通常需要最大量的計算能力(一直到并包括級74),所以所需計算相對小。所產(chǎn)生的主視點(diǎn)Z-堆棧(在此例中具有DOF)是所有其它視點(diǎn)的基礎(chǔ)。
根據(jù)本發(fā)明第二實施例的方法和系統(tǒng)能有效率的計算N個高質(zhì)量視圖,而基于幀/Z緩存的現(xiàn)有方法僅能提供低質(zhì)量的視圖,而基于完全獨(dú)立地生成N個視圖的現(xiàn)有方法效率低。
圖3進(jìn)一步說明了不同視點(diǎn)的Z-堆棧和幀緩存的構(gòu)造。3D模型80包括所有信息,即所有對象和它們相互的方向。從全三維模型中產(chǎn)生對應(yīng)主視點(diǎn)的3層Z-堆棧81。這是由圖3中示意性示出的Z-堆棧構(gòu)造器完成的,該構(gòu)造器構(gòu)建了包括多個元素的(在該例中)三個順序緩存的分層結(jié)構(gòu),其中對于每個元素(在該例中),存儲了Z、I(代表色彩)、alpha(代表不透明因子α)值。基本上,Z-堆棧的第一堆棧包括從該視點(diǎn)首先看到的所有元素的RGB(色彩信息)和Z-坐標(biāo)(以及還可能包括alpha信息和可能的其它信息)。這樣,Z-堆棧的第一層包括首先看到的那些對象或?qū)ο蟛糠?,即離該視點(diǎn)最近的那些元素。這樣在此例子中,Z-堆棧的第一層S1沿中心線I-I包括對象D的部分、對象A的某些部分以及對象F的外部邊緣,第二層S2沿著同一條線包括對象B和C的部分、對象F的部分以及對象A的部分(在對象D后面的部分),第三層包括對象F的部分(在對象B和C后面的那些部分)和對象E的部分。注意到一個相同的對象可以形成Z-堆棧中幾層的部分,這是因為以下事實從主視點(diǎn)看去,該對象是將被看到的第一、第二或第三對象。構(gòu)建了Z-堆棧之后,可以構(gòu)建幀緩存,如果在第一堆棧中顯示的對象都不透明,則該幀緩存基本上包括Z-堆棧的第一堆棧S1的數(shù)據(jù)。如果對象有透明度(即,alpha數(shù)值小于1,其中α值的范圍從0(不透明)到1(完全透明)),那么該圖像緩存包括各層S1到S3的數(shù)據(jù)的組合。將圖像緩存82的數(shù)據(jù)直接或經(jīng)進(jìn)一步處理后發(fā)送給三維顯示器。圖中B部分示出了三維模型80,該模型最終導(dǎo)致幀緩存82,幀緩存82仍至少包括構(gòu)成最初三維模型的所有不同對象A到E的某些數(shù)據(jù)。從幀緩存82開始,有可能在某種程度上生成不同視圖的圖像,也就是必須基于對象B、C、E的那些在幀緩存中的可見部分,推測對象A后面的B、C、E對象的形狀。然而,這并不總是可能的。
為進(jìn)行說明,圖3的該部分C與圖3的部分B所述情形的不同僅在于,對象D此時位于對象A之后。Z-堆棧81’反映了這種變化,其中用于描述對象D的元素不再形成第一層S1的部分,而形成層S2的部分。圖像緩存82’不再包括對象D的任何蹤跡,對象D完全不出現(xiàn)在幀存儲器82’中?;卺槍χ饕朁c(diǎn)的圖像(或幀)緩存82’,可以生成針對不同視點(diǎn)的圖像,但是這些圖像不包括對象D,簡單的原因就是在圖像緩存82’中沒有關(guān)于對象D的信息(元素)。即使根據(jù)先前圖像可以推出這樣對象應(yīng)該或很可能存在,但是不得不推測該對象的實際位置和/或形狀。然而,從不同視點(diǎn)可能很好地看到該對象D。該問題的一個解決方法是計算每個附加視點(diǎn)的Z-堆棧(步驟61-73(74)),即為每個視點(diǎn)使用完全獨(dú)立的呈現(xiàn)管道。然而,這要求有十分充足的計算能力。本發(fā)明的基本依據(jù)是諸如本例中對象D的“隱藏”對象的信息卻存在于主視點(diǎn)的3層Z-堆?;蚋话愕膎層Z-堆棧81’中。使用主視點(diǎn)的Z-堆棧81’能跟蹤前景對象后面的多個對象。即使發(fā)送給顯示器的最終圖像在同一像素位置處示出多個對象,該方法也能正確呈現(xiàn)半透明對象。以這種方法,首先將全三維模型中的所有景物對象呈現(xiàn)在Z-堆棧中。然后,采用一種已知處理在這里作為Z-跟蹤方法,從Z-堆棧提取要發(fā)送給顯示器的幀或圖像緩存。根據(jù)一個簡單的協(xié)議從Z-堆棧中為每個像素構(gòu)建輸出圖像信息。如果所有對象都是不透明對象,就只拷貝Z-堆棧的第一層。對于透明對象,可以將幾層融合在一起。
圖4示出了DOF和三維呈現(xiàn)框圖內(nèi)部結(jié)構(gòu)的例子。每個都具有附加的緩存-堆棧,其中存儲了先前級的結(jié)果。而且,他們都有用作對象提取單元的新單元。
紋理級的輸出(基本上是三維模型)在Z-堆棧91所呈現(xiàn)的第一Z-堆棧構(gòu)造器中。該Z-堆棧91用于主視點(diǎn)。主視點(diǎn)Z-堆棧91用作對象提取92的出發(fā)點(diǎn)。對象提取是從Z-堆棧91中提取屬于同一對象的元素的過程。如圖3所示,對象可以分布在S1到S3這幾層中。對象提取單元在堆棧中進(jìn)行搜索并重新組合對象。可以利用相同對象的元素具有共同特征的事實來重新組合對象,這些共同特征諸如RGB值、Z-值和/或不透明。
該例子中在對象提取之后,對主視點(diǎn)的數(shù)據(jù)進(jìn)行DOF呈現(xiàn)(93)。如果沒有DOF(景深)呈現(xiàn),所有對象將以相同的清晰度成像。然而,這會導(dǎo)致不自然的圖像。在自然圖像中有一個聚焦區(qū),在該區(qū)內(nèi)圖像是清晰的,離觀看者越近或越遠(yuǎn)的對象都未聚焦,因此是模糊的。例如,在對象提取后通過對對象的紋理和邊緣進(jìn)行散焦可以實現(xiàn)模糊,即,在對象內(nèi)部重新空間分配紋理并將某些亮度轉(zhuǎn)移到對象邊界以外,和/或?qū)ο笸獠康拇蟛糠职胪该骰T揇OF呈現(xiàn)級具有針對該對象的模糊單元。DOF單元的結(jié)果又是Z-堆棧94,包括有些模糊的散焦對象和處于主視點(diǎn)聚焦平面上的清晰對象。在該優(yōu)選實施例中,對在主視點(diǎn)的Z-堆棧91中的數(shù)據(jù)進(jìn)行DOF模糊。因為僅有主視點(diǎn)圖像需要DOF模糊所需的計算能力,因此該實施例是優(yōu)選的。嚴(yán)格來講,就DOF的模糊效果而言,當(dāng)對每個視點(diǎn)都進(jìn)行DOF模糊時,可以獲得更好的性能。然而,附加視點(diǎn)的DOF不會或幾乎不會與主視點(diǎn)的DOF有所不同,所以在優(yōu)選實施例中,DOF是在主視的Z-堆棧91上進(jìn)行的。DOF模糊后的對象重新組合到主視點(diǎn)的新Z-堆棧94中。該Z-堆棧94是用于提取對象的對象提取器95的輸入。對于N個剩余視點(diǎn)的每個視點(diǎn),在移位器96中,將提取的對象根據(jù)主視點(diǎn)和其它各個視點(diǎn)之間的差別來進(jìn)行移位。然后,將移位后的對象重新組合進(jìn)新的Z-堆棧(在Z-堆棧構(gòu)造器97內(nèi)),結(jié)果產(chǎn)生N-1個Z-堆棧。最后,三維呈現(xiàn)級有一個Z-跟蹤單元(98)。在本發(fā)明的框架中,首要一點(diǎn)是對于每個附加的視點(diǎn),在主視點(diǎn)的Z-堆棧91的基礎(chǔ)上構(gòu)建附加視點(diǎn)的Z-堆棧97。對象提取95是可選擇的。然而,對象提取是非常有用的概念。當(dāng)轉(zhuǎn)換主視點(diǎn)原始Z-堆棧91的數(shù)據(jù)來構(gòu)建附加視點(diǎn)Z-堆棧的時候,比較小的對象(例如,那些在小角度下觀看的對象)尺寸可能會充分變大。當(dāng)逐個像素完成變換時,尺寸變大的對象(例如從3個像素變到10個像素)必然會有像素丟失。例如,可以通過對象提取和重建來重建所丟失的像素,即找到哪些像素可以形成一個群、檢測該像素群中孔(或多個孔)的出現(xiàn)、盡最大可能確定適于孔內(nèi)元素的值(RGB,Z)并填充該孔,從而重建該群的中間丟失元素并從而“修復(fù)”該對象。這些可以在移位操作(級96)之后進(jìn)行。然而,重建處理級必須重復(fù)N-1次,也就是對移位級96產(chǎn)生的每個Z-堆棧進(jìn)行重建處理,即對附加視點(diǎn)的每個Z-堆棧96(為了簡化,有時在這里為各個方法步驟的結(jié)果給出了屬于特定步驟的參考編號)進(jìn)行重建處理。通過在對象移位96之前進(jìn)行對象提取95,對象提取只需進(jìn)行一次,也就是在主視點(diǎn)Z-堆棧94上進(jìn)行,因而減少了該過程的復(fù)雜度并且提高了速度。
要計算的視點(diǎn)數(shù)目和它們相對于主視點(diǎn)的位置/方向可以是固定的,或者優(yōu)選地相關(guān)于從顯示器接收到的數(shù)據(jù)。優(yōu)選地,該系統(tǒng)包括附加視點(diǎn)數(shù)據(jù)的輸入(見圖2)。Z-堆棧構(gòu)造器75為附加視點(diǎn)構(gòu)建數(shù)據(jù)。該構(gòu)建過程可以自動進(jìn)行,在這種情況下,該過程例如可以構(gòu)建與自由立體設(shè)備中所能觀看到的視圖一樣多的Z-堆棧95,即覆蓋所有可能的顯示設(shè)備的大量數(shù)目。這就要求構(gòu)建大量的附加視點(diǎn)Z-堆棧。然而,該系統(tǒng)優(yōu)選包括用于將附加視點(diǎn)數(shù)據(jù)提供給附加視點(diǎn)Z-堆棧構(gòu)造器的輸入。依據(jù)顯示設(shè)備類型,附加視點(diǎn)的數(shù)目可能有所變化。通過提供用于提供附加視點(diǎn)具體數(shù)據(jù)的輸入(相對于主視點(diǎn)的數(shù)目和/或位置/方向),Z-堆棧構(gòu)造器能根據(jù)提高效率的要求,提供附加視點(diǎn)Z-堆棧。在簡單的實施例中,附加視點(diǎn)數(shù)據(jù)可以是待生成視圖的數(shù)目和最大視角范圍。
在第二實施例中,該系統(tǒng)可以包括用于建立對應(yīng)于用戶的視點(diǎn)的裝置,或者被提供與用戶視點(diǎn)相對應(yīng)的數(shù)據(jù)的裝置。例如,當(dāng)多于一個玩家加入到三維游戲時,如果通過用于建立相對于顯示設(shè)備的這些屬性位置的裝置來提供這些屬性,例如通過IR或超聲波感應(yīng)器,那么護(hù)目鏡、耳機(jī)、激光槍、徽章等能使該系統(tǒng)建立玩家相對于顯示設(shè)備顯示屏的精確或近似位置。給附加Z-堆棧構(gòu)造器提供這樣的信息,使得能以高精確度或刷新率來處理與玩家相對應(yīng)的視點(diǎn),而以較低精確度或刷新率來處理其它視點(diǎn)的數(shù)據(jù),或不處理其它視點(diǎn)的數(shù)據(jù)。這就使那些實際要緊的視點(diǎn)(即與玩家相關(guān)的視點(diǎn))在速度和圖像質(zhì)量上有相當(dāng)大的提高,而無需增加成本。
圖5說明了根據(jù)第二實施例的方法。將主視點(diǎn)的DOF模糊后的Z-堆棧94輸入到對象提取器。在該例中,對象是房屋H、兩個棚屋S1、S2、有個孔(例如打開的門d)的柵欄Fe、大樹T和森林F。在對象提取過程95中,從主視點(diǎn)Z-堆棧94(VP1,視點(diǎn)1)中提取對象。對對象進(jìn)行移位(基本上是改變x、y、z值,可以基于主視點(diǎn)和相關(guān)附加視點(diǎn)來很容易地計算出這些值)?;谛碌囊莆缓髮ο髷?shù)據(jù)來計算新的Z-堆棧97。該Z-堆棧97是附加視圖(VP2,視點(diǎn)2)的圖像緩存的基礎(chǔ)。在原始視點(diǎn)(VP1),森林的一部分可以通過打開的門d看到,在移位后的視點(diǎn)(VP2)中,樹(T)的一部分可以通過柵欄中的空隙看到。這樣,在此例中示意性示出了,對于附加視圖,通過柵欄中的空隙可看到樹T的部分??梢曰谥饕朁c(diǎn)(VP1)Z-堆棧和簡單移位操作來計算VP2的Z-堆棧,并且這樣對于很多視圖可以快速地完成計算。
應(yīng)注意到,雖然本發(fā)明的第二實施例能以相比呈現(xiàn)N次新圖像來生成附加視像大幅度減小的計算量要求來生成附加視像,但速度提高是有代價的。在該例子3中,Z-堆棧層包括多層。如果多于三個對象以一個放在另一個后面的方式放置,因為這些對象中的某些對象是從主視點(diǎn)看到的第四、第五對象等,所以它們不會出現(xiàn)在Z-堆棧層中。這樣會出現(xiàn)數(shù)據(jù)丟失。優(yōu)選地,Z-堆棧包括2至5層,最優(yōu)選3至4層。在Z-堆棧中有越多的層,數(shù)據(jù)損失的變化就越小,然而,所需計算量就越高。本發(fā)明認(rèn)識到最好的折衷在于層的表示范圍,即2-5,優(yōu)選為3-4,最優(yōu)選為3。
當(dāng)對象(例如房屋的邊墻)方向為從主視點(diǎn)看到該對象僅占了一個或少量像素,這就會有更多數(shù)據(jù)損失。如果這種情況真的出現(xiàn),那么從其它視點(diǎn)所能透漏出的視圖細(xì)節(jié)數(shù)量是很有限的。
在第二實施例中,呈現(xiàn)器包括起始部分,其具有三維模型以及n個主視點(diǎn)的輸入,用于以n個主視點(diǎn)Z-堆棧的形式來呈現(xiàn)對象,主視點(diǎn)Z-堆棧包括堆棧層,堆棧層包括色彩信息(RGB)和Z-值,該呈現(xiàn)器還包括Z-堆棧構(gòu)造器和用于根據(jù)Z-堆棧生成圖像信息的圖像信息封閉語義級,在該Z-堆棧構(gòu)造器中,根據(jù)起始級生成的n個主視點(diǎn)Z-堆棧構(gòu)建N-n個附加視點(diǎn)的Z-堆棧,其中N>>n。
具有n個主視點(diǎn)的好處就是它允許選擇最佳主視點(diǎn),從而在附加視點(diǎn)中構(gòu)建對象。該選擇基于哪個主視點(diǎn)包含具有最高細(xì)節(jié)的對象,也就是,由最多數(shù)元素表示的對象。例如,還可以通過n個主視點(diǎn)中對象表示的插值來完成合成。在目前大多數(shù)三維顯示器中,對于在一條水平線上排列的視點(diǎn)位置需要將N個視圖,這就具有了水平環(huán)視能力。那么,優(yōu)選n=2。
第一級要求的計算量是雙倍的,但對于后續(xù)級計算量或多或少保持相同??梢詫=2個主視點(diǎn)選擇為左和右極限視點(diǎn)。用這種方式,可以確保每個對象會以比每個附加視點(diǎn)所需的更多細(xì)節(jié)表示在兩個主視圖之一中。
類似地,未來的三維顯示器可以提供N=N×Ny個視圖,這些視圖以水平和垂直位置的柵格來排列,從而提供了垂直環(huán)視能力。那么,優(yōu)選n=4,其中四個主視點(diǎn)對應(yīng)該柵格的四個角左上、右上、左下、右下。
由于Z-堆棧有限的水平和垂直維度,可能會有更多的數(shù)據(jù)損失。因為每個Z-堆棧內(nèi)對象有不同的位置,所以對于某些視點(diǎn)而言,可能會發(fā)生這些對象不再出現(xiàn)在Z-堆棧內(nèi)它們離開了視覺范圍。可能會發(fā)生對象正好位于越過主視點(diǎn)邊界處,使其在附加視點(diǎn)內(nèi)不能重建。這可以通過上面描述的具有n個主視點(diǎn)的方法來解決。如果對象在一個主視點(diǎn)內(nèi)不可見,則該對象很有可能在其它主視點(diǎn)之一是可見的。當(dāng)使用n=1時,其它優(yōu)選解決方法是利用Q個額外元素增加主Z-堆棧水平(和或垂直)維度,而所有附加Z-堆棧保持它們的原始維度。這就確保了主Z-堆棧包含僅移入附加視點(diǎn)視圖中的對象。在這種情況下,主視點(diǎn)幀緩存仍具有原始的、未增加的尺寸。而可能使用增加維度和n個主視點(diǎn)兩個解決方法的組合。
由于從主視點(diǎn)到附加視點(diǎn)的對象重采樣,會有更多的數(shù)據(jù)損失。這可以通過具有增加分辨率的主視點(diǎn)來解決,例如因子二,在水平和/或垂直方向上具有更多元素。通過這種方法,可以忽略數(shù)字損失。在n個主視點(diǎn)的解決方法中,可能從n個普通分辨率Z-堆棧中用已知的超分辨率(super-resolution)技術(shù)來提取更高分辨率的對象。然而,目前此技術(shù)并不能確保所有情況下的性能,例如,在退化情況下,n個主視點(diǎn)包括對象的完全相同的信息。分辨率提高方法確保了所有情況下的性能。
根據(jù)第三實施例,可以將根據(jù)第二實施例的呈現(xiàn)器和第一實施例的呈現(xiàn)流水線相結(jié)合。它們都與有效率地生成場景的多幅視圖有關(guān)。根據(jù)第二實施例的呈現(xiàn)器相比根據(jù)第一實施例的呈現(xiàn)流水線,需要復(fù)制更少的圖形流水線組件,但當(dāng)視點(diǎn)之間的角度變大時,第一實施例的呈現(xiàn)流水線工作得更好。
基本上,在根據(jù)第一實施例的流水線中,對從SSR起的所有組件進(jìn)行復(fù)制,而在根據(jù)第二實施例的流水線中,對從Z-堆棧起的所有組件進(jìn)行復(fù)制。
根據(jù)第三實施例,第一和第二實施例的優(yōu)選組合用根據(jù)第一實施例的方法僅生成一些適度遠(yuǎn)離的視圖,并用根據(jù)第二實施例的可用于生成中間臨近視圖的方法來生成一些Z-堆棧。
當(dāng)使用根據(jù)第一實施例的流水線時,因為基本上所有視圖都有它們自己的緩存,所以可以避免由于第二實施例所述流水線中有限的Z-堆棧層數(shù)引起的數(shù)據(jù)損失。如果不要求邊緣抗鋸齒失真,該緩存無需是全Z-堆棧,而可以是簡單Z-緩存。
根據(jù)第二實施例,從主視點(diǎn)到附加視點(diǎn)的重采樣引起進(jìn)一步的數(shù)據(jù)損失,可以通過第一實施例執(zhí)行的從表面到每個視圖的直接重采樣來解決。
第一和第二實施例組合的另一可能是使用根據(jù)第二實施例的呈現(xiàn)器來代替第一實施例中描述的變形技術(shù)。
根據(jù)基于第一和第二實施例組合的另一實施例,第二實施例的Z-堆棧位于第一實施例的EAA & HSR單元內(nèi)。在這樣的系統(tǒng)中,不復(fù)制圖1的SSR和EAA & HSR的某些部分。這花費(fèi)了很少的硬件代價,但是涉及沒有Z-堆棧的EAA & HSR,因為相比圖1的流水線引入了從Z-堆棧到每個視圖的額外重采樣步驟,所以可能會導(dǎo)致較差的圖像質(zhì)量。
應(yīng)注意到,上面所述的實施例舉例說明本發(fā)明而不是限制本發(fā)明,本領(lǐng)域的技術(shù)人員可以設(shè)計出許多其它可替換的實施例,而不背離附加權(quán)利要求的范圍。在權(quán)利要求中,不應(yīng)將任何放在圓括號內(nèi)的參考標(biāo)記解釋為對權(quán)利要求的限制。單詞“包括”不排除出現(xiàn)權(quán)利要求中所列之外的元素或步驟。元素之前的單詞“一個”并不排除多個這種元素的出現(xiàn)。在設(shè)備權(quán)利要求中列舉了幾種裝置,這些裝置中的一些可以由一個相同的硬件項來具體實現(xiàn)。在彼此不同的從屬權(quán)利要求中敘述了某些特定措施的單純事實并非表示不能夠?qū)⑦@些措施結(jié)合起來有利使用。
此外,不應(yīng)將權(quán)利要求中的任何參考標(biāo)記理解為對權(quán)利要求范圍的限制。
權(quán)利要求
1.計算機(jī)圖形處理器,具有并行呈現(xiàn)三維模型的N個二維圖像的呈現(xiàn)器,所述呈現(xiàn)器包括-光柵化引擎(SS),針對所有N個視圖,在所述三維圖像的圖元的表面上遍歷表面柵格,-著色器單元(PPS),確定所述光柵化引擎(SS)的輸出的色彩,并提供著色后的色彩采樣及其屏幕坐標(biāo),以及-N個屏幕空間重采樣器(SSR),其中每個根據(jù)所述N個視圖之一,對所述著色器單元(PPS)確定的所述著色后的色彩采樣進(jìn)行重采樣。
2.如權(quán)利要求1所述的計算機(jī)圖形處理器,還包括存儲紋理貼圖的紋理存儲器(TM),其中,所述表面柵格是根據(jù)與所述圖元相關(guān)聯(lián)并存儲在所述紋理存儲器(TM)中的紋理貼圖得到的。
3.如權(quán)利要求2所述的計算機(jī)圖形處理器,其中,將與存儲在所述紋理存儲器(TM)中的一個紋理貼圖相關(guān)聯(lián)的柵格選為表面柵格,如果所述紋理貼圖被獨(dú)立尋址,所述紋理貼圖基于二維紋理,以及頂點(diǎn)處的紋理坐標(biāo)不構(gòu)成退化圖元。
4.如權(quán)利要求3所述的計算機(jī)圖形處理器,其中如果存儲在所述紋理存儲器(TM)中的多于一個紋理貼圖滿足所述三個條件a)-c),則選擇紋理空間中有最大面積的紋理貼圖。
5.如權(quán)利要求1或2所述的計算機(jī)圖形處理器,還包括尋址顯示屏幕的模塊,所述呈現(xiàn)器具有三維模型的輸入和至少一個視點(diǎn)的輸入,用于呈現(xiàn)提供給所述尋址模塊的圖像信息,其中,所述呈現(xiàn)器還包括起始部分(70),該起始部分具有所述三維模型和至少一個主視點(diǎn)的輸入,用于以至少一個主視點(diǎn)Z-堆棧(91,94)的形式來呈現(xiàn)對象,所述主視點(diǎn)Z-堆棧(91、94)包括具有色彩信息和Z-值的堆棧層(S1、S2、S3),所述呈現(xiàn)器還包括Z-堆棧構(gòu)造器,其中根據(jù)所述起始級生成的所述至少一個主視點(diǎn)Z-堆棧(91、94)來構(gòu)建附加視點(diǎn)的Z-堆棧(97);以及進(jìn)一步的圖像信息封閉語義級,用于根據(jù)所述Z-堆棧(97)生成圖像信息(79)。
6.如權(quán)利要求5所述的計算機(jī)圖形處理器,其中所述呈現(xiàn)器還包括從視點(diǎn)Z-堆棧(91、94)提取對象的對象提取器(95)。
7.如權(quán)利要求6所述的計算機(jī)圖形處理器,其中所述對象提取器(95)被設(shè)置用于從所述至少一個主視點(diǎn)Z-堆棧(91、94)中提取對象。
8.如權(quán)利要求5所述計算機(jī)圖形處理器,其中所述呈現(xiàn)器包括DOF呈現(xiàn)級(92、93),其中,所述DOF呈現(xiàn)級被設(shè)置用于將所述至少一個主視點(diǎn)Z-堆棧(91)DOF處理為包含DOF模糊的至少一個主視點(diǎn)Z-堆棧(94)。
9.呈現(xiàn)三維圖像的N個視圖的方法,包括以下步驟-針對所有N個視圖,在所述三維圖像的圖元的表面上遍歷表面柵格,-確定光柵化引擎(SSR)的輸出的色彩并提供著色后的色彩采樣及其屏幕坐標(biāo),以及-針對所述N個視圖的每一個,對著色器模塊(PPS)確定的所述著色后的色彩采樣進(jìn)行重采樣。
10.如權(quán)利要求9所述的呈現(xiàn)三維圖像的N個視圖的方法,還包括以下步驟將紋理貼圖存儲在紋理存儲器(TM)中,其中,所述表面柵格是根據(jù)與所述圖元相關(guān)聯(lián)并存儲在所述紋理存儲器(TM)中的紋理貼圖得到的。
11.如權(quán)利要求10所述的呈現(xiàn)三維圖像的N個視圖的方法,其中,將與存儲在所述紋理存儲器(TM)中的一個紋理貼圖相關(guān)聯(lián)柵格選為表面柵格,如果所述紋理貼圖被獨(dú)立尋址。所述紋理貼圖基于二維紋理,以及頂點(diǎn)處的紋理坐標(biāo)不構(gòu)成退化圖元。
12.如權(quán)利要求11所述的呈現(xiàn)三維圖像的N個視圖的方法,其中如果存儲在所述紋理存儲器(TM)中的多于一個紋理貼圖滿足所述三個條件a)-c),則選擇紋理空間中有最大面積的紋理貼圖。
13.呈現(xiàn)三維圖像的N個視圖的方法,還包括以下步驟提供數(shù)據(jù)和三維顯示設(shè)備的尋址模塊,其中,對于主視點(diǎn),用RGB和Z-值呈現(xiàn)包括堆棧層(S1、S2、S3)的至少一個主視點(diǎn)Z-堆棧(94)的形式的對象,以及根據(jù)所述至少一個主視點(diǎn)Z-堆棧(94)來構(gòu)建附加視點(diǎn)的Z-堆棧(97),以及以Z-跟蹤方式根據(jù)所述附加視點(diǎn)的Z-堆棧(97)生成要提供給所述尋址模塊的數(shù)據(jù)(79)。
14.計算機(jī)程序產(chǎn)品,包括存儲在計算機(jī)可讀介質(zhì)上的程序代碼模塊,用于當(dāng)所述程序在計算機(jī)上運(yùn)行時,執(zhí)行如權(quán)利要求9到14中任一項所述的方法。
全文摘要
提供了一種具有用于呈現(xiàn)三維場景的N個視圖的呈現(xiàn)器的計算機(jī)圖形處理器。所述呈現(xiàn)器包括光柵化引擎SSR,用于針對所有N個視圖,在所述三維場景的圖元表面上遍歷表面柵格。而且,所述呈現(xiàn)器包括著色器模塊PPS,用于確定所述光柵化引擎SS的輸出的色彩并提供著色后的色彩采樣及其屏幕坐標(biāo),以及N個屏幕空間重采樣器SSR,其中每個屏幕空間重采樣器SSR用于根據(jù)N個視圖之一,對所述著色器模塊PPS確定的著色后的色彩采樣進(jìn)行重采樣。因為對于N個不同視圖,只進(jìn)行一次表面遍歷、紋理拾取和著色計算,這就具有了更高的效率。將產(chǎn)生的著色后的色彩重用于所有視圖。另外,圖元表面上遍歷任意柵格的能力提供了更多的呈現(xiàn)自由度。
文檔編號G06T15/50GK1890694SQ200480036563
公開日2007年1月3日 申請日期2004年12月3日 優(yōu)先權(quán)日2003年12月9日
發(fā)明者巴爾特·G·B·巴倫布呂格, 巴爾托洛穆斯·W·D·范格斯特, 科內(nèi)利斯·梅因德斯 申請人:皇家飛利浦電子股份有限公司