專(zhuān)利名稱(chēng):處理圖形的方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種處理圖形的方法和設(shè)備,尤其涉及這樣的一種在基于區(qū)塊(tile-based)的圖形處理系統(tǒng)中使用的方法和設(shè)備。
本發(fā)明將特別參照三維圖形的處理進(jìn)行描述,雖然本領(lǐng)域技術(shù)人員將會(huì)理解,本發(fā)明同樣適用于二維圖形的處理。
背景技術(shù):
作為本領(lǐng)域公知的,圖形處理通常通過(guò)首先將要顯示的場(chǎng)景劃分為許多類(lèi)似的基本組份(component)或者“圖元(primitive)”來(lái)進(jìn)行,接著對(duì)圖元進(jìn)行期望的圖形處理操作。圖形的“圖元”通常是簡(jiǎn)單多邊形的形式,例如三角形,而且通常通過(guò)定義它們的頂點(diǎn)進(jìn)行描述。
對(duì)圖形處理操作而言,作為本領(lǐng)域公知的,每個(gè)圖形圖元通常都進(jìn)一步劃分為離散圖形實(shí)體或者元素,通常叫做“片斷(fragment)”,在其上執(zhí)行實(shí)際圖形處理操作(例如繪制(rendering)操作)。每個(gè)這樣的圖形片斷都表示并且符合圖元中的給定位置,并且實(shí)際上包括一組所關(guān)注的(inquestion)位置的數(shù)據(jù)(例如顏色和深度值)。
每個(gè)圖形片斷(數(shù)據(jù)元素)通常對(duì)應(yīng)最后顯示中的單一像素(象元)(由于像素是要顯示的最后圖片中的奇點(diǎn),通常在圖形處理器操作的“片斷”和顯示中的像素之間有一對(duì)一映射)。但是,可能有“片斷”和“像素”之間不存在直接對(duì)應(yīng)的情況,例如在顯示最后圖像之前,在繪制圖像上執(zhí)行了諸如按比率縮小的特殊形式后處理。
因此,典型執(zhí)行的圖形處理的兩方面是將圖形“圖元”(多邊形)位置數(shù)據(jù)“柵格化(rasterising)”為圖形片斷位置數(shù)據(jù)(即確定用于在要顯示的場(chǎng)景中表示每個(gè)圖元的圖形片斷的(x,y)位置),并然后“繪制”該“柵格化的”片斷(即著色、陰暗處理該片斷等)用于在顯示屏幕上顯示。
(在圖形學(xué)文獻(xiàn)中,術(shù)語(yǔ)“柵格化”有時(shí)用于指圖元轉(zhuǎn)換為片斷并繪制。但是,這里“柵格化”僅用于指將圖元數(shù)據(jù)轉(zhuǎn)換為片斷地址。)許多圖形處理系統(tǒng)使用所謂的“基于區(qū)塊”繪制。在基于區(qū)塊繪制中,要顯示的二維場(chǎng)景被再分或者劃分為多個(gè)更小的子分區(qū),通常叫做“區(qū)塊”。所述區(qū)塊(子分區(qū))都分別各自繪制(典型地一個(gè)接一個(gè)的)。接著繪制的子分區(qū)(區(qū)塊)重新組合以提供用于顯示的完整幀。在該方案中,場(chǎng)景被典型地劃分為規(guī)則尺寸和形狀的子分區(qū)(區(qū)塊)(它們通常例如是正方形或者長(zhǎng)方形),但是這并不是必需的。
其他一般用于“分塊(tiling’)”和“基于區(qū)塊”繪制的術(shù)語(yǔ)包括“程序分塊(chunking)”(子分區(qū)叫做“程序塊(chunk)”)和“桶(bucket)”繪制。方便起見(jiàn),下文中使用術(shù)語(yǔ)“區(qū)塊”和“分塊”,但應(yīng)當(dāng)理解的是這些術(shù)語(yǔ)意在包括全部可替代的和等價(jià)的術(shù)語(yǔ)和技術(shù)。
這種基于區(qū)塊繪制的優(yōu)點(diǎn)在于在給出的區(qū)塊中沒(méi)有出現(xiàn)的圖元不必為該區(qū)塊處理,并因此當(dāng)處理該區(qū)塊時(shí)可以忽略。這使得給定場(chǎng)景所必需的圖形處理的總量減少了。
因此,在基于區(qū)塊繪制的系統(tǒng)中,通常希望可以識(shí)別和得知實(shí)際上出現(xiàn)在給定的子分區(qū)(區(qū)塊)中的那些圖元,以便于,例如,避免不必要地繪制區(qū)塊中沒(méi)有實(shí)際出現(xiàn)的圖元。為了幫助實(shí)現(xiàn)這一點(diǎn),已知為每個(gè)子分區(qū)(區(qū)塊)準(zhǔn)備該子分區(qū)的要繪制的圖元(例如將出現(xiàn)在子分區(qū)中)列表。這樣的“區(qū)塊-列表”(同樣也可以稱(chēng)作“圖元列表”)標(biāo)識(shí)(例如,由圖元指示符引用)要為所關(guān)注的區(qū)塊(子分區(qū))繪制的圖元。
因此為要繪制的每個(gè)子分區(qū)(區(qū)塊)準(zhǔn)備區(qū)塊列表的過(guò)程基本上包括確定為給定的子分區(qū)(區(qū)塊)應(yīng)當(dāng)繪制的圖元。該過(guò)程通常通過(guò)確定(以期望的精確度級(jí)別)與所關(guān)注的區(qū)塊相交(即(至少部分)出現(xiàn)在其中)的圖元并且隨后準(zhǔn)備這些圖元的列表以供圖形處理系統(tǒng)未來(lái)使用而執(zhí)行。。(這里應(yīng)當(dāng)注意,在一個(gè)圖元落入多于一個(gè)區(qū)塊的情況下(如同經(jīng)常出現(xiàn)的情況),該圖元被包括在它所落入的每個(gè)區(qū)塊的列表中)事實(shí)上,可以認(rèn)為每個(gè)子分區(qū)(區(qū)塊)都具有一個(gè)箱(區(qū)塊列表),任何發(fā)現(xiàn)落入(即相交)該子分區(qū)的圖元都放入該箱中(并且,實(shí)際上,以這種方式在逐區(qū)塊的基礎(chǔ)上分類(lèi)圖元的過(guò)程通常稱(chēng)為“裝箱”)。
如本領(lǐng)域公知,確定應(yīng)該為任何給定區(qū)塊列出(繪制)的圖元的過(guò)程可以以不同的精確度級(jí)別執(zhí)行,例如取決于分塊和繪制過(guò)程的不同部分的效率最佳化。例如,在最精確的級(jí)別,能夠準(zhǔn)確地確定給定圖元將至少部分出現(xiàn)在哪些區(qū)塊中,并且該圖元隨后將只包括在這些區(qū)塊的區(qū)塊列表中。這通常稱(chēng)做“準(zhǔn)確”裝箱。
圖1示出了準(zhǔn)確裝箱過(guò)程。如圖1所示,將要顯示的場(chǎng)景1劃分為十六個(gè)規(guī)則尺寸的子分區(qū)或者區(qū)塊2。接著為該場(chǎng)景中的每個(gè)圖元確定該圖元實(shí)際上出現(xiàn)在(落入)哪個(gè)或者哪些區(qū)塊中。將該圖元加入到發(fā)現(xiàn)其落入的每個(gè)區(qū)塊的區(qū)塊列表中。因而采用圖1中所示的例子,圖元3被加入到區(qū)塊4的區(qū)塊列表中,圖元5被包括在區(qū)塊6和7的區(qū)塊列表中,圖元8包括在區(qū)塊9,10,11和12的區(qū)塊列表中,且圖元13包括在區(qū)塊12的區(qū)塊列表中。(這里應(yīng)當(dāng)注意,為了清晰起見(jiàn),圖1只是示出了若干區(qū)塊和圖元。本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,在實(shí)際圖形處理操作中,通常存在多得多的圖元和區(qū)塊。)同樣已知對(duì)具有比準(zhǔn)確裝箱實(shí)現(xiàn)的更低精確度的區(qū)塊列表的準(zhǔn)備。這可能對(duì)例如簡(jiǎn)化區(qū)塊列表的準(zhǔn)備有用。一個(gè)普通“較低精確度”裝箱技術(shù)是“邊界框”裝箱。在這種情況下,圍繞一個(gè)圖元或者一組圖元繪制所謂“邊界框”,然后確定由該邊界框覆蓋的區(qū)塊。接著為每個(gè)已經(jīng)發(fā)現(xiàn)要被該邊界框覆蓋(至少部分)的區(qū)塊列出(裝箱)該邊界框代表(即由該邊界框包圍)的一個(gè)圖元或者多個(gè)圖元。
因而這種方案使用邊界框,而不是圖元本身,來(lái)確定一個(gè)給定圖元應(yīng)該為哪些區(qū)塊列出以繪制。這可能意味著,例如,一個(gè)圖元可能為其沒(méi)有實(shí)際落入的區(qū)塊列出以繪制(例如,如果邊界框并非充分緊密的或者精確的環(huán)繞該圖元),但是另一方面,在這種方式中邊界框的使用可以簡(jiǎn)化區(qū)塊列表的準(zhǔn)備。
一旦以這種方式為每個(gè)子分區(qū)(區(qū)塊)準(zhǔn)備了要繪制的圖元的列表(區(qū)塊列表),就存儲(chǔ)該(區(qū)塊)列表,用以,例如,允許系統(tǒng)當(dāng)繪制所關(guān)注的區(qū)塊時(shí)識(shí)別需要考慮(和繪制)哪些圖元。
已經(jīng)發(fā)現(xiàn)該基于區(qū)塊的繪制方案工作良好,因?yàn)樗鼈兡埽?,幫助避免圖元被為其沒(méi)有出現(xiàn)在其中的場(chǎng)景分區(qū)而進(jìn)行處理。
但是,需要準(zhǔn)備和存儲(chǔ)標(biāo)識(shí)要為每個(gè)區(qū)塊繪制的圖元的區(qū)塊列表的一個(gè)缺點(diǎn)是,取決于這些圖元在一個(gè)場(chǎng)景中的分布,一個(gè)場(chǎng)景中不同區(qū)塊的區(qū)塊列表可能具有非常不同的尺寸,不同場(chǎng)景中的區(qū)塊的區(qū)塊列表也是如此。這意味著,例如,與其他場(chǎng)景或者區(qū)塊相比,給定場(chǎng)景或者區(qū)塊為了存儲(chǔ)它的(多個(gè))區(qū)塊列表具有顯著不同的存儲(chǔ)要求。這意味著,例如,區(qū)塊列表的存儲(chǔ)要求不能可靠地預(yù)計(jì),并且將例如依賴(lài)于給定場(chǎng)景中的圖元的分布而改變。但是,在圖形系統(tǒng)中,特別是在諸如移動(dòng)設(shè)備(移動(dòng)電話(huà)、PDA、手持裝置等)的具有更多限制的設(shè)備上實(shí)現(xiàn)的圖形系統(tǒng)中,已知或者通常能夠預(yù)計(jì)存儲(chǔ)器使用需求是有利的。
因此申請(qǐng)人相信仍有余地改進(jìn)現(xiàn)存基于區(qū)塊繪制的系統(tǒng)。
發(fā)明內(nèi)容
根據(jù)本發(fā)明第一方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在所述系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)要繪制的子分區(qū),該設(shè)備包括用于為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備用于繪制的圖元列表的裝置;以及用于為包括場(chǎng)景的一個(gè)以上子分區(qū)的一組子分區(qū)準(zhǔn)備用于繪制的圖元列表的裝置。
根據(jù)本發(fā)明的第二方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在所述方法中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該方法包括為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備用于繪制的圖元列表;以及為包括場(chǎng)景中一個(gè)以上子分區(qū)的一組子分區(qū)準(zhǔn)備用于繪制的圖元列表。
本發(fā)明指一種基于區(qū)塊的繪制系統(tǒng)(即其中要繪制的場(chǎng)景被劃分為多個(gè)子分區(qū)),其中,如同現(xiàn)有技術(shù)中基于區(qū)塊繪制的系統(tǒng),可以(并且)為場(chǎng)景的給定的子分區(qū)(區(qū)塊)準(zhǔn)備用于繪制的圖元列表。但是,與現(xiàn)有技術(shù)的系統(tǒng)中不同,同樣可能在本發(fā)明的系統(tǒng)中準(zhǔn)備用于繪制場(chǎng)景中多子分區(qū)(區(qū)塊)的集合的圖元列表(即擁有該場(chǎng)景的多個(gè)子分區(qū)(區(qū)塊)的區(qū)塊列表(以及,事實(shí)上,更大的子分區(qū)))。
換句話(huà)說(shuō),在本發(fā)明中,可以(并且優(yōu)選)為場(chǎng)景的單個(gè)子分區(qū)(區(qū)塊)和包括多于一個(gè)場(chǎng)景子分區(qū)(區(qū)塊)的子分區(qū)集合,準(zhǔn)備獨(dú)立(不同)的圖元列表。因而,例如,并且優(yōu)選,將為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備一個(gè)用于繪制的圖元列表(一個(gè)區(qū)塊列表),并且將為包括多于一個(gè)場(chǎng)景子分區(qū)的子分區(qū)集合準(zhǔn)備用于繪制的獨(dú)立(不同)的圖元列表(區(qū)塊列表)。
如本發(fā)明中準(zhǔn)備不同場(chǎng)景“區(qū)域”區(qū)塊列表的可能性具有許多優(yōu)勢(shì)。例如,如同下面會(huì)進(jìn)一步討論的,通過(guò)可選擇的存儲(chǔ)單個(gè)子分區(qū)中的圖元和/或多個(gè)子分區(qū)區(qū)塊列表,可以改變用于區(qū)塊列表的存儲(chǔ)器的數(shù)量。因此本發(fā)明促進(jìn)更好的控制和知曉區(qū)塊列出處理的存儲(chǔ)器使用需求。將圖元分類(lèi)到不同區(qū)域區(qū)塊列表同樣可用于提供,例如,關(guān)于場(chǎng)景中圖元分布的信息。這可能是有用的,例如,當(dāng)考慮諸如頂點(diǎn)數(shù)據(jù)緩存的操作時(shí)(因?yàn)樗梢詭椭?,例如,確定是否緩存給定的頂點(diǎn)數(shù)據(jù))。
本發(fā)明的方案意味著,除了準(zhǔn)備只為單個(gè)區(qū)塊專(zhuān)有的圖元的區(qū)塊列表,還可以并且準(zhǔn)備將共同用于多個(gè)區(qū)塊(子分區(qū))的區(qū)塊列表。。
換句話(huà)說(shuō),本發(fā)明幫助實(shí)現(xiàn)(選擇性的)分類(lèi)或者包含用于在具有不同分辨率的區(qū)塊列表中繪制的圖元(即用于不同尺寸區(qū)域),即,例如,在只為單個(gè)子分區(qū)(區(qū)塊)專(zhuān)用的區(qū)塊列表中,和/或在通常用于一個(gè)以上子分區(qū)(區(qū)塊)的區(qū)塊列表中。這有助于改變和控制準(zhǔn)備和存儲(chǔ)區(qū)塊列表的場(chǎng)景“分辨率”,并且從而改變和控制所述區(qū)塊列表的存儲(chǔ)要求等。
因而,根據(jù)本發(fā)明第三方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在所述圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該設(shè)備包括用于將要繪制的圖元至少包括在用于繪制單個(gè)子分區(qū)的圖元列表中,或者由多于一個(gè)的場(chǎng)景子分區(qū)共同使用的要繪制的圖元列表中的裝置。
根據(jù)本發(fā)明的第四方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在所述圖形處理系統(tǒng)中,要繪制的場(chǎng)景劃分為多個(gè)子分區(qū)進(jìn)行繪制,該方法包括將要繪制的圖元選擇性地至少包括在用于繪制場(chǎng)景的單個(gè)子分區(qū)的圖元列表中,或者由多于一個(gè)的場(chǎng)景子分區(qū)共同使用的要繪制的圖元列表中。
因而,根據(jù)本發(fā)明第五方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在所述圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該設(shè)備包括用于將要繪制的圖元包括在一個(gè)或者多個(gè)要繪制的圖元列表中的裝置,其中要繪制的圖元列表可以只為單個(gè)子分區(qū)專(zhuān)有或者可用于場(chǎng)景的一個(gè)以上子分區(qū)。
根據(jù)本發(fā)明的第六方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在所述圖形處理系統(tǒng)中,要繪制的場(chǎng)景劃分為多個(gè)子分區(qū)進(jìn)行繪制,該方法包括將要繪制的圖元包括在一個(gè)或者多個(gè)要繪制的圖元列表中,其中要繪制的圖元列表可以只為單個(gè)子分區(qū)專(zhuān)有或者可用于場(chǎng)景的一個(gè)以上子分區(qū)。
如本領(lǐng)域的技術(shù)人員將會(huì)理解的,本發(fā)明的這些方面可以適當(dāng)?shù)匕@里公開(kāi)的本發(fā)明的任何一個(gè)或者多個(gè)或者全部?jī)?yōu)選或者可選特征。
要繪制的場(chǎng)景被劃分的子分區(qū)(區(qū)塊)可以是任何適合的或者期望的這種子分區(qū)。如本領(lǐng)域公知的,它們優(yōu)選地全部是相同尺寸和形狀(即優(yōu)選使用規(guī)則尺寸和形狀的區(qū)塊),雖然這不是必要的。子分區(qū)優(yōu)選是正方形或者長(zhǎng)方形。子分區(qū)的尺寸和數(shù)量可以按照需要選擇。在一個(gè)優(yōu)選的方案中,每個(gè)子分區(qū)(區(qū)塊)在尺寸上都是16×16或者32×32片斷(然而,然后該場(chǎng)景被劃分為所使用的顯示(幀)尺寸所需的許多這樣的子分區(qū))。
為其準(zhǔn)備圖元列表的包括一個(gè)以上子分區(qū)的一個(gè)或者多個(gè)子分區(qū)的集合可以是任何期望的或者適合的一組或多組場(chǎng)景子分區(qū)。每個(gè)一個(gè)以上子分區(qū)的集合優(yōu)選的包括整數(shù)個(gè)子分區(qū)。但是,這不是必要的,有可能為一個(gè)包括子分區(qū)部分的集合準(zhǔn)備圖元列表,例如包括一又二分之一子分區(qū),或者三又四分之三個(gè)子分區(qū)等。這樣的包括子分區(qū)的幾分之一的子分區(qū)集合可能需要特定的(例如不尋?;虿灰?guī)則)的圖元形狀和/或尺寸,因?yàn)樗鼈兛梢栽试S這樣的圖元更有效地列出在區(qū)塊列表中。
在優(yōu)選的實(shí)施例中,所述多子分區(qū)的集合,以及優(yōu)選的每個(gè)多子分區(qū)的集合,包括一組相鄰的子分區(qū)。更優(yōu)選的,該子分區(qū)的集合或者每個(gè)子分區(qū)的集合形成規(guī)則形狀的屏幕區(qū)域,例如正方形或者長(zhǎng)方形。更優(yōu)選的,該多子分區(qū)的集合或每個(gè)多子分區(qū)的集合形成正方形。但是,這也不是必要的,而且如果需要的話(huà)可以使用多子分區(qū)的更加不規(guī)則的分組(形狀),例如“L”型分組或者三角形分組。這種不規(guī)則形狀也可能對(duì)列出更不尋?;蛘卟灰?guī)則形狀和/或尺寸的圖元有用。
在優(yōu)選的實(shí)施例中,可以選擇和在使用中改變包括在一個(gè)或者一個(gè)以上多子分區(qū)的集合中的子分區(qū)。這允許系統(tǒng)根據(jù)例如要繪制的圖元的尺寸和/或形狀設(shè)計(jì)列出多個(gè)子分區(qū)的圖元。
在具體的優(yōu)選實(shí)施例中,可以為多個(gè)多子分區(qū)的集合準(zhǔn)備圖元列表(即,使得存在多個(gè)這樣的圖元列表,每個(gè)相應(yīng)于場(chǎng)景的一個(gè)以上子分區(qū)的集合)。每個(gè)多子分區(qū)的集合都可以是不同的(例如,在它們的尺寸和/或形狀上),但是在優(yōu)選的該方案中,每個(gè)多子分區(qū)的集合都與其它的多子分區(qū)的集合相比具有相應(yīng)的和/或相似的尺寸和/或形狀,和/或具有相似的和/或相應(yīng)的子分區(qū)數(shù)量(且優(yōu)選子分區(qū)的排列)。例如,一些或者全部多子分區(qū)的集合都可以是,而且實(shí)際上優(yōu)選的是正方形的形狀。
在這些方案中,每個(gè)多子分區(qū)的集合都優(yōu)選的包括與其它的多子分區(qū)集合不同的場(chǎng)景子分區(qū)的集合。多子分區(qū)的每個(gè)或者每一個(gè)集合可以包含不同子分區(qū),或者多子分區(qū)的不同集合能例如共同具有,它們的一些子分區(qū),但是不是全部。
在這些方案中,所述多子分區(qū)的集合優(yōu)選的一起覆蓋整個(gè)場(chǎng)景,即,擁有場(chǎng)景劃分的所有單獨(dú)子分區(qū)。這種方案有效地提供場(chǎng)景被劃分的另一層或者多層區(qū)域(所述多子分區(qū)的集合),每個(gè)這樣的區(qū)域擁有多個(gè)該場(chǎng)景被劃分為的“基本”子分區(qū)或區(qū)塊。在這種類(lèi)型的方案中,圖元列表可以由此以?xún)煞N(或更多)不同分辨率準(zhǔn)備,以單個(gè)子分區(qū)級(jí)別,或者以多子分區(qū)集合的級(jí)別。
在具體的實(shí)施例中,整個(gè)場(chǎng)景區(qū)域劃分為一組多個(gè)多子分區(qū)的集合,以便于該組中的多子分區(qū)的集合共同擁有該場(chǎng)景被劃分的全部單獨(dú)子分區(qū),并且該組中的每個(gè)多子分區(qū)的集合優(yōu)選包括相同數(shù)目的子分區(qū),并且優(yōu)選具有相同的形狀。這種多子分區(qū)集合的分組優(yōu)選的提供子分區(qū)集合層,可以為該子分區(qū)集合列出覆蓋基本、單個(gè)子分區(qū)“層”的圖元。最優(yōu)選的,提供一個(gè)以上這種多子分區(qū)集合的分組,即,使得如果期望的話(huà),可以在不同層(級(jí)別)列出圖元。
在具體的優(yōu)選實(shí)施例中,可以為包含不同數(shù)量子分區(qū)的多子分區(qū)的集合準(zhǔn)備圖元列表。因而,例如,可以為4個(gè)子分區(qū)的集合或者為16個(gè)子分區(qū)的集合等等準(zhǔn)備列表。這樣允許進(jìn)一步改變和控制準(zhǔn)備圖元列表的分辨率。在優(yōu)選的實(shí)施例中,有兩種或者更多,優(yōu)選三種或者更多為其準(zhǔn)備圖元列表的多子分區(qū)的不同尺寸的集合,最優(yōu)選的具有逐漸減少的分辨率級(jí)別(即,包含數(shù)量增多的子分區(qū))。
在具體的優(yōu)選實(shí)施例中,安排可以為其準(zhǔn)備圖元列表的多子分區(qū)的集合,使得該場(chǎng)景可以由一層或多層(多組)子分區(qū)的集合覆蓋,并且最優(yōu)選由多層子分區(qū)集合覆蓋。因而,例如可能有一層子分區(qū)的集合,所述集合每個(gè)都包含覆蓋基礎(chǔ)“層”的單個(gè)子分區(qū)的四個(gè)子分區(qū)。然后,可能例如優(yōu)選還有一層子分區(qū)的集合,每個(gè)集合都包含覆蓋基礎(chǔ)單個(gè)子分區(qū)層和“四個(gè)子分區(qū)”層等的16個(gè)子分區(qū)。
在這樣的方案中,給定層的子分區(qū)集合優(yōu)選的全部包含相同數(shù)量的單獨(dú)子分區(qū),但是每個(gè)不同層(假如提供的話(huà))中的子分區(qū)集合對(duì)其他層中的集合而言,優(yōu)選的包括不同數(shù)量的子分區(qū)。
因而,在優(yōu)選的實(shí)施例中,優(yōu)選存在一個(gè)或多個(gè)并且優(yōu)選多組的多子分區(qū)的集合(每個(gè)這樣的組,例如并且優(yōu)選形成覆蓋要繪制的整個(gè)場(chǎng)景的一層(即包含該場(chǎng)景被劃分和可以劃分的所有子分區(qū))),并且每組中的子分區(qū)集合優(yōu)選都包括相同數(shù)目的子分區(qū),并且不同組中的子分區(qū)集合包括不同數(shù)目的子分區(qū)。
這些方案可以允許,例如,由多子分區(qū)集合的多個(gè)不同分辨率的層有效覆蓋要繪制的場(chǎng)景,每個(gè)這樣的“層”,由都包含相同數(shù)目子分區(qū)的多子分區(qū)集合的一個(gè)分組(一個(gè)方案)構(gòu)成,并且不同“層”的多子分區(qū)集合包含不同數(shù)量的子分區(qū)。
在一個(gè)具體優(yōu)選的這種方案中,子分區(qū)集合的組(層)以分級(jí)方式排列,即,使得當(dāng)在這些組或?qū)又幸苿?dòng)時(shí),每個(gè)組中的每個(gè)集合里的子分區(qū)的數(shù)目逐漸改變。它們最優(yōu)選被排列為,當(dāng)沿所述層上升時(shí),它們有效形成基于正方形的角錐體結(jié)構(gòu)。包括在任何給定的層(組)的子分區(qū)集合中的子分區(qū)的數(shù)量,都優(yōu)選的隨著從基礎(chǔ)、單子分區(qū)層上升而逐漸增加。優(yōu)選的,安排子分區(qū)的集合,使得每個(gè)連續(xù)層中子分區(qū)的集合中具有4倍于緊前面一層的集合中的子分區(qū),也就是說(shuō),使得基本層是單個(gè)子分區(qū)的,然后有包含四個(gè)子分區(qū)的集合的層,然后是16個(gè)子分區(qū)的集合的層,等等,優(yōu)選的一直到包含要繪制的整個(gè)場(chǎng)景的子分區(qū)的單個(gè)集合。實(shí)際上最優(yōu)選的有三個(gè)或者更多這樣的層(組)(包括“基礎(chǔ)”、單子分區(qū)層)。
這種方案有效允許為要繪制的場(chǎng)景的逐漸減少的分辨率級(jí)別(即,子分區(qū)的劃分)準(zhǔn)備圖元列表。
在具體優(yōu)選的這種方案中,可以為每個(gè)子分區(qū)(區(qū)塊)、為子分區(qū)的每個(gè)2×2分組、為子分區(qū)的每個(gè)4×4分組、為子分區(qū)的每個(gè)8×8分組等準(zhǔn)備圖元,直到要繪制的整個(gè)場(chǎng)景的圖元列表(即整個(gè)幀緩沖器的列表)。
如本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解的,在整個(gè)顯示區(qū)域(場(chǎng)景)不是正方形的情況下(通常將是如此),對(duì)于該方式的子分區(qū)的最大分組的情況,一些子分區(qū)的集合實(shí)際上可能超越該場(chǎng)景(或顯示器)的范圍。這沒(méi)有問(wèn)題,因?yàn)橄到y(tǒng)無(wú)論如何不會(huì)嘗試準(zhǔn)備或者繪制不在要繪制的場(chǎng)景內(nèi)(即位于場(chǎng)景或者顯示器之外)的子分區(qū)的圖元列表,并且因而給定的子分區(qū)集合可能包括位于場(chǎng)景邊界之外的子分區(qū)的事實(shí)不會(huì)也不將影響圖元列出過(guò)程。
在優(yōu)選的實(shí)施例中,優(yōu)選的分級(jí)安排子分區(qū)的集合,以使得實(shí)際上可以為整個(gè)場(chǎng)景、為劃分為4個(gè)分區(qū)的場(chǎng)景、為劃分為16個(gè)分區(qū)的場(chǎng)景、為劃分為64個(gè)分區(qū)的場(chǎng)景等等準(zhǔn)備圖元列表,直到它劃分為單個(gè)子分區(qū)。
使用上面的方案,可以例如確保(通過(guò)以適當(dāng)分辨率級(jí)別,即適當(dāng)子分區(qū)分組來(lái)分類(lèi)給定的圖元)任何給定的圖元永遠(yuǎn)不需要包括在四個(gè)以上的圖元列表中。這會(huì)允許,例如,更可靠地涵蓋圖元(區(qū)塊)列表的存儲(chǔ)要求(以及將知道的最大可能存儲(chǔ)要求(例如,從要繪制的圖元數(shù)量中知道))。
盡管不必為給定場(chǎng)景被劃分和可以劃分的每一個(gè)子分區(qū)或多子分區(qū)的集合準(zhǔn)備圖元列表,但是在特別優(yōu)選的實(shí)施例中,為場(chǎng)景被劃分的每個(gè)子分區(qū)(區(qū)塊)準(zhǔn)備圖元列表,并且可以為每個(gè)多于一個(gè)子分區(qū)的集合準(zhǔn)備圖元列表。(但是,應(yīng)當(dāng)注意在某些情況下本方案中圖元列表可以是并且可能是空(即不包含圖元),例如根據(jù)圖元如何在場(chǎng)景中分布,以及確定將這些圖元存儲(chǔ)在哪些(區(qū)塊)列表中。)因而,根據(jù)本發(fā)明的第七方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,其中要繪制的場(chǎng)景劃分為用于繪制的多個(gè)子分區(qū),并定義一個(gè)或者多個(gè)都包括該場(chǎng)景的一個(gè)以上子分區(qū)的子分區(qū)的集合,該設(shè)備包括用于為場(chǎng)景的每個(gè)子分區(qū)準(zhǔn)備用于繪制的圖元列表的裝置;以及用于為場(chǎng)景的每個(gè)一個(gè)以上子分區(qū)的集合準(zhǔn)備用于繪制的圖元列表的裝置。
根據(jù)本發(fā)明的第八方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,該方法包括將要繪制的場(chǎng)景劃分為用于繪制的多個(gè)子分區(qū);定義該場(chǎng)景子分區(qū)的一個(gè)或者多個(gè)集合,每個(gè)集合包括該場(chǎng)景的一個(gè)以上子分區(qū);以及為該場(chǎng)景的每個(gè)子分區(qū)和每個(gè)一個(gè)以上子分區(qū)的集合準(zhǔn)備用于繪制的圖元列表。
本領(lǐng)域技術(shù)人員將會(huì)理解,本發(fā)明的這些方面可以包括這里所公開(kāi)的本發(fā)明的任何一個(gè)或者多個(gè)或者全部?jī)?yōu)選的和可選的特征。因而,例如優(yōu)選準(zhǔn)備包含場(chǎng)景的不同數(shù)量子分區(qū)的多子分區(qū)的集合(且具有為其準(zhǔn)備的圖元列表)。
為每個(gè)子分區(qū)和子分區(qū)集合列出一個(gè)或者多個(gè)圖元的過(guò)程,以及為每個(gè)子分區(qū)或者多子分區(qū)的集合準(zhǔn)備圖元列表的過(guò)程,都可以以任何適當(dāng)?shù)暮推谕姆绞綀?zhí)行。例如,任何已知并且用于向區(qū)塊列表中分類(lèi)和裝箱圖元的技術(shù),例如精確裝箱或者邊界框裝箱,或者在中間的任何技術(shù),都可以在這個(gè)過(guò)程中使用。
因而,例如,可以基于一個(gè)圖元在場(chǎng)景中的確定位置(如當(dāng)前技術(shù)已知的,該位置可以是該圖元的精確位置或者是基于圍繞該圖元的邊界框確定的該圖元的大約位置)對(duì)應(yīng)該繪制該圖元的子分區(qū)和子分區(qū)的集合進(jìn)行初始確定,接著在其確定位置表明應(yīng)該繪制該圖元的一些或所有子分區(qū)或多子分區(qū)的集合中列出該圖元。然后為場(chǎng)景中的每個(gè)圖元重復(fù)這個(gè)過(guò)程,以便能夠準(zhǔn)備該場(chǎng)景的圖元列表的完整集合。
因而,在優(yōu)選的實(shí)施例中,確定場(chǎng)景中給定圖元的位置并將之與場(chǎng)景所劃分的子分區(qū)和/或多子分區(qū)的集合進(jìn)行比較,以確定可以或者應(yīng)當(dāng)為哪些子分區(qū)或多子分區(qū)的集合繪制該圖元(例如,出現(xiàn)在(落入)其中)。
可以以任何適合的方式執(zhí)行這種比較和確定一個(gè)圖元出現(xiàn)的子分區(qū)等的過(guò)程,例如使用用于此目的的現(xiàn)有技術(shù)中已知的技術(shù)。因而,例如,可以使用上述“精確”裝箱技術(shù)(在這種情況下將確定圖元出現(xiàn)的實(shí)際子分區(qū)(區(qū)塊)等),或者可以使用邊界框技術(shù)(在這種情況下將確定邊界框覆蓋的子分區(qū)(區(qū)塊),因而如當(dāng)前技術(shù)已知的,圖元列表可能不太精確并且包括該圖元沒(méi)有時(shí)間出現(xiàn)的子分區(qū)),或者按照需要使用介于“精確”裝箱和最通用邊界框技術(shù)之間的任何方案等。然后為場(chǎng)景中的每個(gè)圖元重復(fù)這個(gè)過(guò)程。
在使用邊界框技術(shù)的情況下,可以按照需要產(chǎn)生邊界框。例如,如本領(lǐng)域已知的,可以在每個(gè)圖元基礎(chǔ)上產(chǎn)生邊界框,或者為一個(gè)或者多個(gè)多圖元的集合產(chǎn)生邊界框。該邊界框可以例如通過(guò)主系統(tǒng)的圖形處理器API或者驅(qū)動(dòng)器產(chǎn)生。
在優(yōu)選的實(shí)施例中,在使用邊界框的情況下,通過(guò)圖形處理器或者處理單元(優(yōu)選是準(zhǔn)備圖元列表的處理器),例如通過(guò)適合的軟件或者硬件例程,在所述圖元列出階段產(chǎn)生邊界框。這允許在圖形處理器本地產(chǎn)生邊界框,然后一旦用于圖元列出過(guò)程就刪除。如本領(lǐng)域已知的,這樣的方案可以例如采用所關(guān)注的一個(gè)或多個(gè)圖元的頂點(diǎn),并且從中確定該一個(gè)或多個(gè)圖元的最大和最小的x,y位置,并且然后相應(yīng)地產(chǎn)生邊界框。
根據(jù)本發(fā)明的第九方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,該系統(tǒng)中,要繪制的場(chǎng)景劃分為用于繪制的多個(gè)子分區(qū),所述設(shè)備包括用于確定可以或者應(yīng)當(dāng)繪制一個(gè)圖元的一個(gè)或者多個(gè)子分區(qū)的裝置;用于將該圖元包括在子分區(qū)的要繪制的圖元列表中的裝置,該子分區(qū)是所確定的可以或者應(yīng)當(dāng)繪制該圖元的子分區(qū);以及用于將該圖元包括在子分區(qū)集合的要繪制的圖元列表中的裝置,所述子分區(qū)集合包括一個(gè)以上的子分區(qū),其中包含所確定的可以或者應(yīng)當(dāng)繪制該圖元的子分區(qū)。
根據(jù)本發(fā)明的第十方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,該圖形處理系統(tǒng)中要繪制的場(chǎng)景劃分為用于繪制的多個(gè)子分區(qū),所述方法包括確定可以或者應(yīng)當(dāng)繪制一個(gè)圖元的一個(gè)或者多個(gè)子分區(qū);以及將該圖元包括在子分區(qū)的要繪制的圖元列表中,該子分區(qū)是所確定的可以或者應(yīng)當(dāng)繪制該圖元的子分區(qū);或者將該圖元包括在子分區(qū)集合的要繪制的圖元列表中,所述子分區(qū)集合包括一個(gè)以上的子分區(qū),其中包含所確定的可以或者應(yīng)當(dāng)繪制該圖元的子分區(qū)。
本發(fā)明的這些方面可以再次包括這里描述的本發(fā)明的一個(gè)或者多個(gè)或者全部?jī)?yōu)選和可選的特征。因而,例如,可以或應(yīng)當(dāng)繪制一個(gè)圖元的子分區(qū)可以使用“精確”裝箱技術(shù)來(lái)確定(在這種情況下,可以或應(yīng)當(dāng)繪制該圖元的子分區(qū)將準(zhǔn)確包括該圖元將出現(xiàn)在其中(或落入其中)的那些子分區(qū)),或者可以使用邊界框技術(shù)來(lái)確定(如本領(lǐng)域已知的,在這種情況下所確定的可以或應(yīng)當(dāng)繪制該圖元的子分區(qū)應(yīng)當(dāng)包括該圖元將出現(xiàn)在其中(或落入其中)的那些子分區(qū)),但是還可以包括該圖元沒(méi)有實(shí)際出現(xiàn)在其中的其它子分區(qū)(但是該子分區(qū)由該邊界框圍繞),或者可以由其它任何適合的和需要的技術(shù)來(lái)確定。
給定的圖元可以例如包括在所確定的應(yīng)當(dāng)繪制該圖元的(例如,在精確裝箱的情況下,發(fā)現(xiàn)其出現(xiàn)在其中的)各個(gè)和每個(gè)子分區(qū)和多子分區(qū)的集合的圖元列表中。但是,在特定的優(yōu)選實(shí)施例中,給定的圖元僅包括在所選的(所選數(shù)量的)確定的可以或者應(yīng)當(dāng)為其繪制該圖元的子分區(qū)和多子分區(qū)的集合的圖元列表中,即,該圖元選擇性的包括在確定的應(yīng)當(dāng)繪制該圖元的(例如,發(fā)現(xiàn)該圖元已經(jīng)落入的)子分區(qū)和多子分區(qū)的集合的圖元列表中。
因而,例如,圖元應(yīng)當(dāng)包括在要繪制該圖元(例如,已經(jīng)發(fā)現(xiàn)落入其中)的子分區(qū)的圖元列表中(或者多個(gè)單獨(dú)子分區(qū)的獨(dú)立圖元列表),和要繪制該圖元(例如,已經(jīng)發(fā)現(xiàn)落入其中)的多子分區(qū)的集合的圖元列表中。
這種將圖元選擇性的包括在圖元列表中的特征有助于在例如存儲(chǔ)圖元列表的存儲(chǔ)使用和要求方面實(shí)現(xiàn)更大的靈活性。
因而,根據(jù)本發(fā)明的第十一方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在所述圖形處理系統(tǒng)中將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),所述設(shè)備包括用于選擇性的將圖元包括在對(duì)應(yīng)于要繪制的場(chǎng)景的單個(gè)子分區(qū)的圖元列表中,和/或在對(duì)應(yīng)于要繪制的場(chǎng)景的一個(gè)以上子分區(qū)的圖元列表中的裝置。
根據(jù)本發(fā)明的第十二方面,提供一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在所述圖形處理系統(tǒng)中將要繪制的場(chǎng)景劃分為多個(gè)用于繪制的子分區(qū),所述方法包括用于選擇性的將圖元包括在對(duì)應(yīng)于要繪制的場(chǎng)景的單個(gè)子分區(qū)的圖元列表中,和/或在對(duì)應(yīng)于要繪制的場(chǎng)景的一個(gè)以上子分區(qū)的圖元列表中。
此外,本發(fā)明的這些方面可以包括這里公開(kāi)的本發(fā)明的任何一個(gè)或多個(gè)或全部的優(yōu)選和可選特征。因而,例如,優(yōu)選存在多個(gè)圖元列表,每個(gè)對(duì)應(yīng)于可在其中有選擇地列出圖元的場(chǎng)景的不同子分區(qū)或者子分區(qū)的集合。
在本發(fā)明的這些方面和實(shí)施例中,該方案是優(yōu)選的,以便于圖元不包括在初始確定的可以或者應(yīng)當(dāng)繪制該圖元的全部子分區(qū)和多子分區(qū)的集合的圖元列表中(例如,圖元或者其邊界框落入或者相交或者相切),但是包括在少于初始確定的可以或者應(yīng)當(dāng)繪制該圖元的全部子分區(qū)或者子分區(qū)的集合的圖元列表中。
換句話(huà)說(shuō),該方案優(yōu)選使得圖元可以并且優(yōu)選只列出在一些而不是全部的可以或應(yīng)該列出該圖元的獨(dú)立圖元列表中(即,初始確定的可以或者應(yīng)該為其繪制該圖元(例如發(fā)現(xiàn)該圖元或其邊界框落入其中或與之相交或接觸)的所有子分區(qū)和多子分區(qū)集合的圖元列表)。因而,優(yōu)選將圖元列出在至少一個(gè),但不是所有的確定可以或應(yīng)當(dāng)為其繪制該圖元的子分區(qū)和子分區(qū)集合的獨(dú)立圖元列表中。
圖元可以以任何適合的和期望的方式、選擇性的存儲(chǔ)在確定其可以或者應(yīng)當(dāng)繪制的(例如,發(fā)現(xiàn)它們或者它們的邊界框落入的)子分區(qū)和子分區(qū)的集合的圖元列表中。例如,優(yōu)選列出多子分區(qū)的集合的圖元,而不是通過(guò)子分區(qū)基礎(chǔ)在子分區(qū)上列出圖元,將減少用于存儲(chǔ)圖元(區(qū)塊)列表的存儲(chǔ)要求(由于場(chǎng)景將需要更少的圖元列表),反之亦然。因而,例如選擇性的在子分區(qū)級(jí)別或者子分區(qū)集合的級(jí)別(或者多個(gè)級(jí)別)列出圖元,可以用于改變和控制區(qū)塊列出過(guò)程的存儲(chǔ)器使用需求。本發(fā)明因此幫助實(shí)現(xiàn)了更靈活和可控制的(至少在存儲(chǔ)器使用需求方面)區(qū)塊列出過(guò)程。
優(yōu)選給定圖元僅被包括在足以使得為所確定的應(yīng)該繪制該圖元的所有場(chǎng)景區(qū)域(例如,該圖元或其邊界框出現(xiàn)的地方)繪制該圖元的圖元列表中。這可以幫助避免不必要的重復(fù)列出用于相同場(chǎng)景區(qū)域的圖元。因而,在具體的優(yōu)選實(shí)施例中,關(guān)于要繪制一個(gè)圖元的每個(gè)子分區(qū),只在一個(gè)圖元列表中列出該圖元。這個(gè)列表可以是單獨(dú)子分區(qū)的圖元列表,或者是包括所關(guān)注的子分區(qū)的多子分區(qū)的集合的圖元列表。
因而,當(dāng)圖元包括在多子分區(qū)的集合的圖元列表中時(shí),優(yōu)選的該圖元不同時(shí)包括在該多子分區(qū)的集合中的任何子分區(qū)的獨(dú)立圖元列表中。
類(lèi)似的,在存在都覆蓋相同場(chǎng)景區(qū)域的多個(gè)多子分區(qū)集合的情況下,優(yōu)選的圖元也不包括在其圖元列表包括該圖元的多子分區(qū)集合所包圍的任何多子分區(qū)集合的圖元列表中。
因而,最優(yōu)選的,當(dāng)圖元被包括在一個(gè)多子分區(qū)集合的圖元列表中的時(shí)候,該圖元不包括在該集合完全包圍(覆蓋)的任何子分區(qū)或多子分區(qū)集合的圖元列表中。
這里應(yīng)當(dāng)注意的是,給定的圖元可以列出在,并且實(shí)際上可以包括在場(chǎng)景的不同分區(qū)的不同分辨率級(jí)別(即場(chǎng)景區(qū)域(子分區(qū)不同尺寸的集合))的圖元列表中。例如,圖元可以包括在其位于的部分場(chǎng)景的單個(gè)場(chǎng)景子分區(qū)(區(qū)塊)的圖元列表中,但是包括在其出現(xiàn)的場(chǎng)景的另一部分的多子分區(qū)的集合(即以更高級(jí)別)的圖元列表中。但是,在優(yōu)選的實(shí)施例中,給定的圖元僅以一個(gè)分辨率級(jí)別列出,即,對(duì)于要列出(繪制)該圖元的所有場(chǎng)景分區(qū)只為相同級(jí)別(尺寸)的子分區(qū)集合(或只為單個(gè)子分區(qū))列出該圖元。
在安排多子分區(qū)的集合以使場(chǎng)景被多層不同分辨率(尺寸)的場(chǎng)景區(qū)域覆蓋的情況下,如上所述,那么在特定的優(yōu)選實(shí)施例中,通過(guò)測(cè)試圖元將圖元分配給子分區(qū)或子分區(qū)集合的圖元列表中,并且優(yōu)選對(duì)于每個(gè)圖元在每個(gè)連續(xù)的子分區(qū)集合級(jí)別(層)進(jìn)行測(cè)試,從最高層開(kāi)始(即子分區(qū)的一個(gè)或多個(gè)集合包括最多子分區(qū)的級(jí)別),來(lái)確定在所關(guān)注的級(jí)別該圖元將需要被包括在多少不同圖元列表中。這個(gè)過(guò)程優(yōu)選的繼續(xù)通過(guò)所述層向下重復(fù),直到確定在給定級(jí)別(層)應(yīng)該列出該圖元的圖元列表的數(shù)目超過(guò)了列表的閾值數(shù)目(優(yōu)選是預(yù)定的),或者到達(dá)了底部的單子分區(qū)級(jí)別層。
更優(yōu)選的,一旦到達(dá)圖元要包括在比該級(jí)別需要列出該圖元的閾值數(shù)目更多的圖元列表中的層,那么將圖元實(shí)際上“列出”,即,放置在前一級(jí)別(層)的子分區(qū)集合的圖元列表中(即,需要包括該圖元的圖元列表的數(shù)量不超過(guò)閾值數(shù)目的最后一層)。這保證了圖元或者每個(gè)圖元應(yīng)當(dāng)永不包括在比圖元列表的閾值數(shù)目更多的圖元列表中,由此易于例如更精確的控制和知曉圖元(區(qū)塊)列表的存儲(chǔ)器使用需求。
因而,在具體的優(yōu)選實(shí)施例中,圖元,并且優(yōu)選的每個(gè)圖元,都不列在多于選擇的,優(yōu)選地是預(yù)定的,圖元列表的(閾值)數(shù)量中。
在這些方案中可以按照需要選擇要使用的圖元列表的閾值數(shù)目。由于,如上所述,閾值數(shù)目實(shí)際上將作為將列出圖元的圖元列表的最大數(shù)目,在該系統(tǒng)中閾值數(shù)目實(shí)際上可以用于在必須存儲(chǔ)更多和更長(zhǎng)的圖元列表(通過(guò)選擇更高的閾值)但是隨后在繪制階段對(duì)圖元的處理量減少和與此相反的情況之間設(shè)置期望的優(yōu)化和折衷(妥協(xié))。
該閾值數(shù)目?jī)?yōu)選的是大于一的整數(shù),優(yōu)選的大于二,且最優(yōu)選的大于三。在具體的優(yōu)選實(shí)施例中,圖元列表的閾值數(shù)目為四??梢?xún)?yōu)選的改變并在使用中設(shè)置閾值數(shù)目。
在具體的優(yōu)選實(shí)施例中,閾值數(shù)目對(duì)應(yīng)于在該子分區(qū)集合分級(jí)結(jié)構(gòu)中在相鄰的連續(xù)層之間子分區(qū)集合中的子分區(qū)數(shù)目的比值(即,每個(gè)連續(xù)層中子分區(qū)集合數(shù)量的放大系數(shù))。因此,例如,在安排子分區(qū)集合使得它們?cè)谶B續(xù)層中是1×1、2×2、4×4、8×8個(gè)等覆蓋該場(chǎng)景的子分區(qū),即,使得每層中子分區(qū)的數(shù)量每次增加四倍的情況下,該閾值數(shù)目?jī)?yōu)選為四。
在具體的優(yōu)選實(shí)施例中,在發(fā)現(xiàn)從圖元需要被列出在超過(guò)圖元列表的閾值數(shù)目的級(jí)別(層)步進(jìn)上升的級(jí)別(層),將列出該圖元的圖元列表的數(shù)量等于該閾值(例如4),然后測(cè)試在緊鄰的前一層該圖元是否只需要列出在單個(gè)圖元列表中,并且如果是這樣的話(huà),在該較高的級(jí)別,而不是需要在閾值數(shù)目的圖元列表中列出該圖元的級(jí)別,在單個(gè)列表中列出該圖元。
換句話(huà)說(shuō),在圖元在一個(gè)級(jí)別可以列出在單個(gè)圖元列表(即只有單個(gè)子分區(qū)集合的圖元列表)中,但是在下一個(gè)下降的級(jí)別必須列出在閾值數(shù)目的圖元列表中的情況下(即子分區(qū)集合或子分區(qū)的閾值數(shù)目的圖元列表(在最低的單個(gè)子分區(qū)級(jí)別)),(并且下一個(gè)下降的級(jí)別多于閾值數(shù)目的圖元列表),然后優(yōu)選在單列表級(jí)別列出該圖元,即只將其包括在單個(gè)列表中。換句話(huà)說(shuō),如果必須列出圖元的圖元列表的數(shù)量在遞降的連續(xù)級(jí)別上從一改變?yōu)閳D元列的閾值數(shù)目(例如,四),該圖元優(yōu)選在單個(gè)列表級(jí)別列出。這是有利的,因?yàn)槠湓试S圖元僅包括在一個(gè)列表中,同時(shí)保證為所有需要繪制該圖元的子分區(qū)處理該圖元。
因而,從上面可以看出,在具體的優(yōu)選實(shí)施例中,在子分區(qū)集合分級(jí)結(jié)構(gòu)的每個(gè)級(jí)別測(cè)試給定的圖元,在從頂層下數(shù)的第二層開(kāi)始(因?yàn)轫攲訉⑹歉采w整個(gè)場(chǎng)景的單個(gè)列表),并且隨后是從頂層下數(shù)的第三層,等等,直到發(fā)現(xiàn)在給定層該圖元需要被包括在超過(guò)閾值數(shù)目的圖元列表中。那么將把該圖元列出在緊鄰的前一層,即最后一個(gè)需要閾值數(shù)目的或更少的圖元列表列出該圖元的層,除非在下一個(gè)上升層(即超過(guò)圖元列表的閾值數(shù)量的層之上兩層的層)可以將圖元列出在單個(gè)圖元列表中的特殊情況下,在這種情況下將把圖元列出在該單個(gè)圖元列表中。
接著將為場(chǎng)景中的每個(gè)圖元重復(fù)這個(gè)過(guò)程,直到已經(jīng)列出該場(chǎng)景的所有圖元,而且已經(jīng)準(zhǔn)備了該場(chǎng)景被劃分或者可以劃分為的所有子分區(qū)和子分區(qū)集合的圖元列表。
當(dāng)然,將可能使用其他方案決定在哪里(在子分區(qū)集合的分級(jí)結(jié)構(gòu)中的哪個(gè)級(jí)別)列出給定的一個(gè)或者多個(gè)圖元。例如,不是考慮在給定級(jí)別需要列出一個(gè)圖元的圖元列表的絕對(duì)數(shù)量(或者也考慮該絕對(duì)數(shù)量),而是可以考慮在例如兩個(gè)連續(xù)的層(級(jí)別)需要包括一個(gè)圖元的圖元列表的數(shù)量的差,并且使用該差值來(lái)確定在哪里(在哪個(gè)級(jí)別)列出該給定圖元。例如,可以將該差值與閾值相比較,并且在比較結(jié)果的基礎(chǔ)上列出該圖元。當(dāng)然其他方案也是可能的。
獨(dú)立圖元列表和它們之中的圖元可以任何期望的和合適的方式安排并且包括任何期望的和合適的數(shù)據(jù)。這些列表優(yōu)選以本領(lǐng)域中已經(jīng)用于這些的列表的方式來(lái)安排和包含數(shù)據(jù)。因而,它們優(yōu)選包括,例如,列表中的每個(gè)圖元的頂點(diǎn)的標(biāo)識(shí)符或指向該頂點(diǎn)的索引和指針。這些圖元優(yōu)選在每個(gè)列表中以期望的繪制順序(第一個(gè)到最后一個(gè))列出(排序),這使得這些圖元能夠以先入先出的基礎(chǔ)從列表中讀取。如本領(lǐng)域已知的,通常以將繪制圖元的順序來(lái)產(chǎn)生圖元。在這種情況下,在每個(gè)列表中圖元可以簡(jiǎn)單地并且優(yōu)選地以它們被產(chǎn)生的順序列出。
一旦已經(jīng)如上所述分類(lèi)了所有圖元和為子分區(qū)和子分區(qū)集合準(zhǔn)備了圖元列表,然后就可以處理和繪制這些子分區(qū)(區(qū)塊)了,使用該圖元列表以確定需要為每個(gè)子分區(qū)處理哪些圖元。
這個(gè)繪制過(guò)程可以是并且優(yōu)選地是以類(lèi)似于已知的基于區(qū)塊繪制系統(tǒng)的方式執(zhí)行。因而,優(yōu)選地,分別處理和繪制每個(gè)子分區(qū)(區(qū)塊),即,一個(gè)接一個(gè)地繪制各個(gè)單獨(dú)子分區(qū)。這種繪制可以以任何期望的方式執(zhí)行,例如,通過(guò)以連續(xù)或者并列方式來(lái)繪制各個(gè)子分區(qū)。一旦已繪制了所有的子分區(qū)(區(qū)塊),然后就可以重新組合它們,例如在本領(lǐng)域已知的用于顯示的幀緩沖器中。
本領(lǐng)域技術(shù)人員將理解,隨著處理和繪制每個(gè)子分區(qū),為了確定為該子分區(qū)必須處理和繪制的圖元,必需檢查唯一用于該子分區(qū)的圖元列表和所有包括該子分區(qū)的多子分區(qū)集合的圖元列表。
申請(qǐng)人已認(rèn)識(shí)到,這可能意味著在一個(gè)多子分區(qū)集合的圖元列表中列出的圖元將為了該多子分區(qū)集合的每個(gè)子分區(qū)被進(jìn)行處理,而不管該圖元是否實(shí)際出現(xiàn)在該集合的給定的單獨(dú)子分區(qū)之中,并且結(jié)果是為實(shí)際上沒(méi)有出現(xiàn)該圖元的子分區(qū)處理該圖元。但是,盡管這樣,申請(qǐng)人仍相信本發(fā)明具有優(yōu)勢(shì),因?yàn)槠湓试S,例如現(xiàn)對(duì)于當(dāng)前技術(shù)系統(tǒng),系統(tǒng)設(shè)計(jì)者和應(yīng)用程序編程者能夠更好和更容易地控制在例如存儲(chǔ)器使用需求和圖形處理需求之間的期望優(yōu)化和折衷。
該圖元列表檢查和對(duì)給定子分區(qū)要繪制的圖元的識(shí)別按照期望執(zhí)行。但是,在優(yōu)選的實(shí)施例中,將圖元列表提供給圖元選擇單元,該單元從該圖元列表中選擇下一個(gè)要繪制的圖元,然后將該圖元提供給用于繪制的繪制單元(例如流水線(xiàn))。
該圖元選擇單元可以采取任何適當(dāng)形式。在優(yōu)選的實(shí)施例中,其包括區(qū)塊讀取單元。
最優(yōu)選地,將不同圖元列表,例如覆蓋給定的子分區(qū)(區(qū)塊)的不同級(jí)別(分辨率)的列表并行地(即同時(shí)地)提供給圖元選擇單元,然后使用圖元選擇單元從列表之一中選擇下一個(gè)要處理的圖元。換句話(huà)說(shuō),圖元選擇單元將接收并提供多個(gè)圖元(區(qū)塊)列表,并從那些多個(gè)列表中選擇用于繪制的圖元。
相信這樣的方案是新穎的并且在其本身的權(quán)利中是有利的。因而,根據(jù)本發(fā)明的第十三方面,提供一種設(shè)備,其用于選擇用于在圖形處理系統(tǒng)中繪制的圖元,該設(shè)備包括圖元選擇單元,用于選擇用于繪制的圖元;以及用于并行地為圖元選擇單元提供多個(gè)圖元列表的裝置;其中該圖元選擇單元包括用于從提供給它的圖元列表之一中選擇要繪制的圖元的裝置。
根據(jù)本發(fā)明的第十四方面,提供一種方法,其用于選擇在圖形處理系統(tǒng)中繪制的圖元,該方法包括并行地向圖元選擇單元提供多個(gè)圖元列表;以及該圖元選擇單元從提供給它的圖元列表之一中選擇要繪制的圖元。
本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明的這些方面和實(shí)施例可以并且優(yōu)選地包括這里描述的本發(fā)明的任何一個(gè)或多個(gè)或全部?jī)?yōu)選和可選的特征。因而,例如,圖形處理系統(tǒng)優(yōu)選的是基于區(qū)塊的繪制系統(tǒng)(在這種情況下,圖元選擇單元將,例如,(并且優(yōu)選的)包括區(qū)塊讀取單元)。
可以從所有圖元列表中并行地選擇下一個(gè)用于繪制的圖元(例如,可以簡(jiǎn)單的向圖元選擇單元并行地提供其可以從中選擇用于繪制的下一個(gè)圖元的所有圖元列表)。但是,在優(yōu)選的實(shí)施例中,僅從所選擇的圖元列表的集合(典型地和優(yōu)選地少于全部的)(即,在使用圖元列表選擇單元的情況下給該選擇單元提供的集合)中選擇下一個(gè)用于繪制的圖元。最優(yōu)選地,從已知包括或者覆蓋所關(guān)注的子分區(qū)(即,該當(dāng)前正在繪制的子分區(qū))的全部圖元列表(給圖元選擇單元提供的圖元列表)中挑選圖元,且最優(yōu)選只從(提供給圖元選擇單元的)那些圖元列表選擇。在具體的優(yōu)選實(shí)施例中,圖元是從(同時(shí)提供給圖元列表選擇單元)每個(gè)分辨率級(jí)別的單個(gè)圖元列表中適當(dāng)挑選的,即,所關(guān)注的單個(gè)子分區(qū)的列表,包括所關(guān)注的子分區(qū)的2×2的子分區(qū)集合的列表,包括所關(guān)注的子分區(qū)的4×4的子分區(qū)集合的列表,包括所關(guān)注的子分區(qū)的8×8的集合的子分區(qū)列表等等。
要為給定區(qū)塊從中選擇圖元的圖元列表的集合(即圖元選擇單元應(yīng)該讀取的圖元列表集合,以便確定要為給定區(qū)塊繪制的圖元)可以任何需要的方式表明(例如,向圖元選擇單元表明),例如通過(guò)將給該數(shù)據(jù)發(fā)送給圖形處理器(例如,圖元選擇單元)。在優(yōu)選的實(shí)施例中,當(dāng)要繪制新區(qū)塊時(shí)發(fā)送該信息,例如,作為與“新區(qū)塊”命令(告知繪制單元開(kāi)始繪制新區(qū)塊的命令)相關(guān)的命令或其一部分。因而,每個(gè)子分區(qū)(區(qū)塊)都優(yōu)選的具有與其在某些方面相關(guān)的,用于該子分區(qū)(區(qū)塊)的圖元列表的集合。當(dāng)然其他方案也是可行的。
表明將為給定的子分區(qū)(區(qū)塊)使用哪些圖元列表的信息可以以任何適合的和期望的形式提供。在一個(gè)優(yōu)選的實(shí)施例中,提供指向相關(guān)圖元列表的指針或者索引的集合。在另一個(gè)優(yōu)選的實(shí)施例中,提供指向該圖元列表的指針或者索引的集合的變化,以允許系統(tǒng)識(shí)別和改變?cè)诶L制新的子分區(qū)(區(qū)塊)的時(shí)候需要改變的圖元列表。同樣可能,例如準(zhǔn)備在使用的圖元列表和子分區(qū)(區(qū)塊)的x-y位置之間的關(guān)系的預(yù)定集合,然后可以使用該關(guān)系來(lái)根據(jù)子分區(qū)的(區(qū)塊的)x,y坐標(biāo),確定用于該子分區(qū)(區(qū)塊)的圖元列表。例如,子分區(qū)的x,y位置可以用于索引到指定為每個(gè)子分區(qū)位置要使用的圖元列表的查找表中。當(dāng)然可以使用其他方案。
可以以任何期望的和適合的方式從提供的(用于子分區(qū)的)圖元列表中選擇(例如,由圖元選擇單元)下一個(gè)要繪制的圖元。例如,可以總是優(yōu)選從最低分辨率的列表(例如,單個(gè)子分區(qū)的列表)選擇圖元,直到該列表取盡為止等等,反之亦然。
但是,申請(qǐng)人已經(jīng)認(rèn)識(shí)到在圖形處理中確保圖元以期望的順序(典型的以其最初產(chǎn)生的順序)繪制是重要的。對(duì)于只有單個(gè)圖元列表用于給定子分區(qū)(區(qū)塊)的情況,這并不是困難的,因?yàn)榭梢哉_的順序,即在先入先出的基礎(chǔ)上按照它們產(chǎn)生的順序一個(gè)接著一個(gè)的將圖元添加和列出在圖元列表之中。
實(shí)際上,如前所述,在依照本發(fā)明產(chǎn)生的各區(qū)塊列表中,優(yōu)選以圖元產(chǎn)生的順序?qū)⑺鼈兞谐?,并且在采用該方案的情況下,對(duì)于任何給定的圖元列表,無(wú)論如何所述圖元以正確順序在各圖元列表中列出。
但是,將希望能夠保證,在例如為圖元選擇單元同時(shí)提供多個(gè)從中選擇用于繪制的下一個(gè)圖元的圖元列表的情況下,該選擇單元能夠以正確的、期望的順序從該不同的列表中選擇圖元。
因而,在具體的優(yōu)選實(shí)施例中,圖元的產(chǎn)生和分類(lèi)過(guò)程能夠索引圖元或者給圖元添加索引,優(yōu)選的當(dāng)這些索引包括在圖元列表中時(shí),可以隨后由圖元選擇單元使用該索引來(lái)選擇下一個(gè)要處理的圖元。這優(yōu)選的通過(guò)將圖元連續(xù)地編號(hào)來(lái)實(shí)現(xiàn),優(yōu)選的在它們包括在圖元列表中時(shí)。最優(yōu)選的每個(gè)圖元具有與其相關(guān)的分類(lèi)索引,當(dāng)將圖元包括在圖元列表中時(shí)優(yōu)選分配該索引(即在圖元列出(裝箱)的階段)。在將圖元添加到(列出在)所確定的要列出該圖元的一個(gè)和多個(gè)圖元列表中時(shí),優(yōu)選將分配給一個(gè)圖元或每個(gè)圖元的編號(hào)(分類(lèi)索引)包括在具有圖元標(biāo)識(shí)符的圖元列表中。
可以以任何合適的和期望的方式實(shí)現(xiàn)索引。例如,每次處理一個(gè)新圖元以將其列出在圖元列表中(即每次“裝箱”一個(gè)新圖元)并且將當(dāng)前計(jì)數(shù)值分配給該圖元的時(shí)候,將計(jì)數(shù)器加1。其它加索引方案,比如使用分段索引按照組或者集合來(lái)為圖元加索引并且隨后在每個(gè)組或集合中加索引的方法等等,當(dāng)然也是可行的。
這種在列出(裝箱)圖元的時(shí)候給圖元加索引的方法有助于子分區(qū)(區(qū)塊)的繪制過(guò)程,因?yàn)槠鋵?,例如,幫助?shí)現(xiàn)以正確的順序繪制圖元。特別地,可以使用為每個(gè)圖元給定的(分類(lèi))索引來(lái)選擇下一個(gè)要繪制的正確(期望)的圖元,從而允許,例如,當(dāng)要繪制這些圖元時(shí)重構(gòu)期望的圖元順序,并且?guī)椭WC這些圖元可以以期望(正確)的順序來(lái)自或取自不同的圖元列表以進(jìn)行繪制。
在這個(gè)方案中,下一個(gè)要處理的圖元優(yōu)選的例如由圖元選擇單元根據(jù)每個(gè)列表中的(下一個(gè))圖元的索引(例如,優(yōu)選的,有效地在每個(gè)列的最前面的圖元的下一個(gè)圖元的索引)從多個(gè)圖元列表中選擇。例如,在圖元以升序索引(這樣先處理最低編號(hào)圖元)的情況下,圖元選擇單元例如優(yōu)選的確定(讀取)在每個(gè)列表中的下一個(gè)圖元的索引,并選擇索引號(hào)最低的圖元來(lái)下一個(gè)進(jìn)行繪制。
相信圖元的這樣的索引方案在其自己的權(quán)利要求內(nèi)可能是新的和有利的。因而,根據(jù)本發(fā)明的第十五方面,提供一種圖形處理系統(tǒng),包括用于列出用于繪制的圖形圖元的裝置;用于使每個(gè)列出的圖形圖元與圖元索引結(jié)合的裝置;以及用于使用與圖形圖元相關(guān)的索引來(lái)分類(lèi)圖元的裝置。
根據(jù)本發(fā)明的第十六方面,提供一種圖形處理系統(tǒng)的操作方法,包括列出用于繪制的圖形圖元;使每個(gè)列出的圖形圖元和圖元索引結(jié)合;以及使用與圖形圖元結(jié)合的索引來(lái)分類(lèi)圖元。
本領(lǐng)域技術(shù)人員將理解,本發(fā)明的這些方面可以并且優(yōu)選包括這里所描述的本發(fā)明的一個(gè)或多個(gè)或全部?jī)?yōu)選的和可選的特征。因而,例如,分配給圖元的索引優(yōu)選的用于排序(分類(lèi))用于繪制的圖元(即,用于控制繪制圖元的順序),且優(yōu)選在將圖元列出(裝箱)在用于繪制的圖元列表中的時(shí)候分配給圖元。類(lèi)似的,如上所述,圖元可以?xún)?yōu)選的在只為要繪制的場(chǎng)景的單個(gè)子分區(qū)專(zhuān)有的圖元列表中列出,而且在共同用于場(chǎng)景的多個(gè)子分區(qū)的圖元列表中列出。
申請(qǐng)人已經(jīng)進(jìn)一步認(rèn)識(shí)到,以上述方式為圖元加索引以便于當(dāng)要繪制圖元時(shí)能夠再造圖元的正確順序的方法,可以用來(lái)幫助實(shí)現(xiàn)圖形處理的其它有利過(guò)程和操作。
例如,特別的,以這種方式為圖元加索引可以幫助實(shí)現(xiàn)以分布式方式處理各個(gè)圖元,例如通過(guò)多個(gè)不同處理器或者處理單元,因?yàn)楫?dāng)要繪制圖元時(shí)可以使用這些索引來(lái)將分布的圖元聚集(重新組合)為正確的順序。這會(huì)允許,例如,來(lái)自要繪制的圖元流的不同圖元分布在并行運(yùn)行的多個(gè)不同幾何結(jié)構(gòu)處理器或處理單元之中,并且隨后圖元重新組合為它們的原始“流”以進(jìn)行繪制。
因而,上述類(lèi)型的圖元索引方案可以用于,例如,支持和幫助實(shí)現(xiàn)多個(gè)幾何結(jié)構(gòu)和/或裝箱(圖元列出)引擎在給定圖元流(集合)上并行操作,在處理速度等能夠比較的方面獲得成比例的增加。
相信這樣的方案在其自身權(quán)利要求中是新的和有利的。因而,根據(jù)本發(fā)明的第十七方面,提供一種處理一組用于繪制的圖形圖元的方法,包括將來(lái)自該圖元組的圖元分布到多個(gè)處理單元;以及將所述分布的圖元重新組合為一組圖元。
根據(jù)本發(fā)明的第十八方面,提供一種處理一組用于繪制的圖形圖元的設(shè)備,該設(shè)備包括用于將來(lái)自該圖元組的圖元分布到多個(gè)處理單元的裝置;以及用于將所述分布的圖元重新組合為一組圖元的裝置。
本領(lǐng)域技術(shù)人員可以理解,本發(fā)明的這些方面和方案可以且優(yōu)選的適當(dāng)包括在這里描述的本發(fā)明的任何一個(gè)或多個(gè)或全部?jī)?yōu)選的和可選的特征。
因而,例如,所述圖元的組或集合優(yōu)選的包括圖元流,例如特定順序的圖元的線(xiàn)性序列。類(lèi)似的,所述圖元組優(yōu)選的重新組合為單個(gè)圖元組(例如,優(yōu)選的,單個(gè)圖元流)。如本領(lǐng)域已知的,有可能所述圖元組不必在系統(tǒng)輸入的更高級(jí)別上提供為流,但是,對(duì)于系統(tǒng)的一些或所有基礎(chǔ)處理要配置為流(并且當(dāng)是流或者不是流的形式的時(shí)候,以所述的本發(fā)明這些方面和實(shí)施例的方式分布)。
因而,在具體的優(yōu)選實(shí)施例中,圖元組是圖元流,來(lái)自該流的圖元被分布在多個(gè)處理單元,且分布的圖元被重新組合為單個(gè)圖元流。
類(lèi)似的,圖元優(yōu)選的都具有在被分配給處理單元之前關(guān)聯(lián)或者分配給它們的索引,當(dāng)將該分布的圖元重新組合為例如單個(gè)流時(shí),優(yōu)選的使用該索引。該索引優(yōu)選的用于排序或者分類(lèi)圖元(例如,將它們以期望的順序放置在重新組合的流中)。
同樣的,將圖元分配給的處理單元優(yōu)選的是類(lèi)似單元(例如,在其可以執(zhí)行的功能和/或操作方面類(lèi)似),且優(yōu)選的都在分配的圖元上執(zhí)行類(lèi)似操作(功能)(當(dāng)然這不是必須的,如果需要或者合適的話(huà)可以使用不同的處理單元和操作)。(這里應(yīng)當(dāng)理解,通過(guò)“相同操作”是指在圖元上執(zhí)行相同形式或者類(lèi)型的操作或者處理,雖然,實(shí)踐中執(zhí)行的實(shí)際操作會(huì)發(fā)生變化和,例如,依賴(lài)于每個(gè)獨(dú)立圖元的特性和需求。)處理單元優(yōu)選并行操作,例如,使得它們可以都在(不同的)圖元上同時(shí)操作(處理)。
在優(yōu)選的實(shí)施例中,處理單元是幾何結(jié)構(gòu)處理器,和/或最優(yōu)選的執(zhí)行一個(gè)或者多個(gè)幾何操作,例如變換、裁剪、和/或照明(lighting)圖元,和/或執(zhí)行圖元裝箱處理(即將圖元放置在用于標(biāo)識(shí)為要繪制場(chǎng)景的給定的一個(gè)或多個(gè)子分區(qū)繪制哪些圖元的圖元列表中)。
類(lèi)似的,本發(fā)明的這些方面和實(shí)施例的方法和設(shè)備優(yōu)選的包括用于繪制圖元的步驟或者裝置。最優(yōu)選的在這樣的方案中,將分布的圖元重新組合為公共流發(fā)生在發(fā)送圖元進(jìn)行繪制之前,或者發(fā)送圖元進(jìn)行繪制的時(shí)候(同時(shí))。
根據(jù)本發(fā)明的第十九方面,提供一種處理用于顯示的圖形圖元組的方法,包括將索引分配給圖元組中的圖元;將來(lái)自圖元組的圖元分布到多個(gè)處理單元;以及在圖元由處理單元進(jìn)行處理之后,使用該分配給圖元的索引分類(lèi)圖元。
根據(jù)本發(fā)明的第二十方面,提供一種處理用于顯示的圖形圖元組的設(shè)備,包括用于將索引分配給圖元組中的圖元的裝置;用于將來(lái)自圖元組的圖元分布到多個(gè)處理單元的裝置;以及用于在圖元由處理單元進(jìn)行處理之后,使用該分配給圖元的索引分類(lèi)圖元的裝置。
本領(lǐng)域技術(shù)人員將會(huì)理解,本發(fā)明的這些方面和方案可以并且優(yōu)選的適當(dāng)包括這里描述的本發(fā)明的任何一個(gè)或多個(gè)或全部?jī)?yōu)選的和可選的特征。
因而,例如,圖元組優(yōu)選的包括圖元集合,且最優(yōu)選是圖元流。
類(lèi)似的,圖元優(yōu)選的都具有在被分配給處理單元之前關(guān)聯(lián)或者分配給它們的索引,并且該索引優(yōu)選用于在由多個(gè)處理單元處理之后排序圖元以便隨后進(jìn)行對(duì)圖元的處理,并且最優(yōu)選(在合適的情況下)將分布的圖元重新組合為單個(gè)圖元流(具有期望的圖元順序)。
同樣的,將圖元分配給的處理單元優(yōu)選的都執(zhí)行類(lèi)似操作(功能),優(yōu)選并行操作,并且最優(yōu)選執(zhí)行一個(gè)或多個(gè)幾何結(jié)構(gòu)處理操作和/或圖元裝箱處理。
類(lèi)似的,本發(fā)明的這些方面和實(shí)施例的方法和設(shè)備優(yōu)選的包括用于繪制圖元的步驟或裝置,且分配給圖元的索引優(yōu)選的用于排序要繪制的圖元。
因而,根據(jù)本發(fā)明的第二十一方面,提供一種處理用于顯示的圖形圖元組的方法,包括向圖元組中的圖元分配索引;將來(lái)自圖元組的圖元分布到多個(gè)處理單元;繪制來(lái)自圖元組的圖元;以及使用分配給圖元的索引來(lái)控制繪制圖元的順序。
根據(jù)本發(fā)明的第二十二方面,提供一種處理用于顯示的圖形圖元組的設(shè)備,包括用于向圖元組中的圖元分配索引的裝置;用于將來(lái)自圖元組的圖元分布到多個(gè)處理單元的裝置;用于繪制來(lái)自圖元組的圖元的裝置;以及用于使用分配給圖元的索引來(lái)控制繪制圖元的順序的裝置。
本領(lǐng)域技術(shù)人員將會(huì)理解,如果合適的話(huà),本發(fā)明的這些方面和方案可以并且優(yōu)選的確實(shí)包括這里描述的本發(fā)明的任何一個(gè)或多個(gè)或全部?jī)?yōu)選的和可選的特征。因而,例如,圖元優(yōu)選的以圖元流的形式進(jìn)行繪制,圖元優(yōu)選的都具有在將它們分配給處理單元之前關(guān)聯(lián)或分配給它們的索引,且將圖元分布到的處理單元優(yōu)選的執(zhí)行相同(類(lèi)似)的操作(功能),優(yōu)選并行操作,且最優(yōu)選的執(zhí)行一個(gè)或者多個(gè)幾何處理操作,和/或執(zhí)行圖元裝箱處理。
在使用分布式圖元處理方案的情況下,圖元組(例如,流)中的圖元可以以任何期望的方式分配給各個(gè)處理單元。例如,圖元可以簡(jiǎn)單的一個(gè)接一個(gè)的分配給可用的處理單元。在優(yōu)選的實(shí)施例中,將從該組選擇的一個(gè)圖元集合或一批圖元發(fā)送到一個(gè)處理單元,并且將該組中的下一個(gè)集合或下一批發(fā)送到下一個(gè)處理單元,如此類(lèi)推。該方案優(yōu)選使得圖元組中的任何給定圖元都只發(fā)送給一個(gè)處理單元,雖然這不是必須的。
在一個(gè)具體的優(yōu)選實(shí)施例中,圖元組(例如,流)中的圖元在繪圖調(diào)用(drawing call)的基礎(chǔ)上分配給多個(gè)例如并行的處理單元,優(yōu)選使得用于給定的繪圖調(diào)用的所有圖元都發(fā)送到相同的處理單元(但是不同的繪圖調(diào)用可以發(fā)送到,且如果可能的話(huà)優(yōu)選的發(fā)送到,不同的處理單元)。如本領(lǐng)域已知的,在圖形處理中圖元通常分組為集合,一起作為一組,例如,用于編程者打算一次繪制的特定場(chǎng)景區(qū)域。這樣共同處理的圖元組通常稱(chēng)為“繪圖調(diào)用”。因而,在繪圖調(diào)用的基礎(chǔ)上分配圖元進(jìn)行處理,例如,有利的保證用于一個(gè)繪圖調(diào)用的圖元被處理時(shí)保持“在一起”。
在這些方案中,圖元可以以任何合適的方式加索引(如果使用索引的話(huà))(即,只要索引允許要?jiǎng)?chuàng)建的(例如當(dāng)繪制圖元時(shí))期望圖元順序(例如流))。因而,例如,全部圖元可以簡(jiǎn)單的連續(xù)編號(hào),例如,當(dāng)它們以上述的類(lèi)似方式分布。
但是,在優(yōu)選的方案中,尤其是以逐批(逐個(gè)集合)為基礎(chǔ)(例如以繪圖調(diào)用為基礎(chǔ))分配圖元的時(shí)候,使用組合的或者分段的索引(編號(hào))方案。最優(yōu)選的,編號(hào)這些批(例如,繪圖調(diào)用),優(yōu)選連續(xù)的編號(hào),然后(再一次優(yōu)選連續(xù)地)編號(hào)每批(之內(nèi)的)圖元。因而,例如,對(duì)于繪圖調(diào)用編號(hào)1,然可能有圖元1至n,然后在繪圖調(diào)用編號(hào)2下,有圖元1至m,等等。換句話(huà)說(shuō),例如,索引繪圖調(diào)用,然后索引每個(gè)繪圖調(diào)用中的圖元。當(dāng)將所述圖元重新組合時(shí),系統(tǒng)會(huì)順序的、一個(gè)接一個(gè)的取這些繪圖調(diào)用(批),并且對(duì)給定的繪圖調(diào)用以每個(gè)繪圖調(diào)用(批)中的順序取圖元。
在優(yōu)選的該實(shí)施例中,排列索引以便于索引的較高順序位(選擇的最高順序位的集合)用于所述批,例如,繪圖調(diào)用編號(hào),然后(剩余)較低順序位用于該批(例如,繪圖調(diào)用)內(nèi)的圖元編號(hào)。這提供了在每批(例如,繪圖調(diào)用)的基礎(chǔ)上索引圖元的特別方便的方式,并因此用于將圖元以批分配給多個(gè)并行操作的處理器。換句話(huà)說(shuō),優(yōu)選的使用分段的索引編號(hào),具有表示該批(例如,繪圖調(diào)用)編號(hào)的較高順序位,和表示該批(例如,繪圖調(diào)用)中圖元編號(hào)的較低順序位。
本領(lǐng)域技術(shù)人員將會(huì)理解,在上面的方案中,在給定的批之中,有可能不是所有的可用圖元索引被需要因而被使用。在這樣的情況下,當(dāng)使用索引來(lái)排序圖元用于例如繪制的時(shí)候,該系統(tǒng)一旦已經(jīng)處理(例如繪制)了給定批的所有圖元,則步進(jìn)到下一個(gè)批(繪圖調(diào)用)并且開(kāi)始從那里繪制圖元。為了幫助實(shí)現(xiàn)這一點(diǎn),可以在需要的情況下在索引中包括諸如跳轉(zhuǎn)或鏈接命令的指示器,以允許系統(tǒng)認(rèn)識(shí)到給定的批(例如,繪圖調(diào)用)中的圖元何時(shí)耗盡,從而系統(tǒng)知道隨后移動(dòng)到索引順序中的下一個(gè)批(繪圖調(diào)用)。
因而,可以看到在本發(fā)明的這些方案和方面的優(yōu)選的實(shí)施例中,(例如,為一個(gè)場(chǎng)景)要繪制的圖元的流或者集合將劃分為分離的批(每批圖元優(yōu)選的對(duì)應(yīng)于繪圖調(diào)用),這些批圖元被分配給多個(gè)并行操作的幾何和裝箱引擎,該引擎將執(zhí)行幾何操作,例如對(duì)圖元的變換,它們接收?qǐng)D元并且在該屏幕的子分區(qū)或子分區(qū)集中的圖元列表中列出圖元。此后,當(dāng)開(kāi)始繪制圖元時(shí),該繪制過(guò)程可以如上所述使用存儲(chǔ)在圖元列表中的與圖元關(guān)聯(lián)的索引,以再創(chuàng)建期望的和正確的繪制圖元的順序。
以此方式,本發(fā)明的這些方案可以用于,例如,允許幾何和圖元裝箱操作以分布的并行方式執(zhí)行,其可以例如用于提高該過(guò)程的效率。
在上述方案中,要將索引分配給圖元,這可以以任何適合的和期望的方式實(shí)現(xiàn)。優(yōu)選的在將圖元分配給處理單元之前完成,最優(yōu)選的在分配它們時(shí)完成??赡?例如,在分配時(shí)間)向一次處理中的每個(gè)圖元分配完整的索引,或者例如該索引可以在多個(gè)階段中分配。例如,在如上所述以繪圖調(diào)用為基礎(chǔ)分配圖元的情況下,可以在分配繪圖調(diào)用進(jìn)行處理的時(shí)候分配“繪圖調(diào)用”的索引,而為繪圖調(diào)用中的各個(gè)圖元加索引的過(guò)程(或不是全部)可以在稍后執(zhí)行,例如在處理該繪圖調(diào)用的時(shí)候。
本領(lǐng)域技術(shù)人員將會(huì)理解,有可能在上面的方案中簡(jiǎn)單的允許足夠的索引(例如,編號(hào)),使得能夠索引可能為任何給定場(chǎng)景產(chǎn)生的各個(gè)和每一個(gè)圖元。但是,申請(qǐng)人已經(jīng)認(rèn)識(shí)到可能不是總希望如此。例如,向場(chǎng)景提供在實(shí)際中很少或從來(lái)不會(huì)達(dá)到的特別大量的圖元索引的可能性也許是低效的。另一方面,如果沒(méi)有安排索引使得其能夠應(yīng)付任何場(chǎng)景可能要求的最大圖元數(shù)量,那么有可能一個(gè)場(chǎng)景的圖元數(shù)量超過(guò)能夠分配給這些圖元的索引的容量。
在這種情況下可能返回索引的開(kāi)始(即,“回繞”圖元編號(hào))。但是,申請(qǐng)人認(rèn)識(shí)到,這不是總是期望和合適的,因?yàn)檫@可能產(chǎn)生兩個(gè)具有相同索引的仍然都“活著”(即仍然正被繪制或?qū)⒈焕L制)的不同圖元。
因而,在具體的優(yōu)選實(shí)施例中,系統(tǒng)可以認(rèn)識(shí)到何時(shí)達(dá)到或耗盡圖元索引容量,并且響應(yīng)于此列出圖元,使得從那時(shí)開(kāi)始,對(duì)于給定的子分區(qū)只存在單個(gè)圖元列表從中選擇圖元,例如,使得在索引耗盡之后圖元選擇單元對(duì)于給定子分區(qū)只從單個(gè)圖元列表讀取圖元。這將確保,例如,一旦索引容量已經(jīng)耗盡,圖元選擇單元對(duì)于任何給定子分區(qū)只有單個(gè)圖元列表用于從中選擇圖元進(jìn)行繪制,并且因而保證一旦該系統(tǒng)的用于連續(xù)索引圖元的容量被耗盡,該系統(tǒng)仍然能夠處理圖元(因?yàn)?,從那時(shí)開(kāi)始,對(duì)于任何給定子分區(qū)只有單個(gè)圖元列表用于從中選擇圖元進(jìn)行繪制,并且因而不再需要在兩個(gè)或更多列表的圖元之間進(jìn)行選擇)。
因而這個(gè)方案提供一種在圖元的可用索引用盡的事件中自動(dòng)防故障操作模式。
上面的方案可以以任何期望的和合適的方式實(shí)現(xiàn)。在優(yōu)選的實(shí)施例中,通過(guò)在索引容量已經(jīng)耗盡之后系統(tǒng)在相同、選擇的、優(yōu)選預(yù)定的分辨率級(jí)別(層)列出產(chǎn)生的全部圖元來(lái)實(shí)現(xiàn),例如,總是在單個(gè)子分區(qū)列表中,或者總是在2×2子分區(qū)列表中,或者總是在4×4子分區(qū)列表中等等。
因而,在具體的優(yōu)選實(shí)施例中,系統(tǒng)能夠認(rèn)識(shí)到索引已經(jīng)達(dá)到最高可用索引(例如,計(jì)數(shù)器已經(jīng)達(dá)到其最大值),且響應(yīng)于此系統(tǒng)從那時(shí)起總是在給定、選擇、優(yōu)選預(yù)定的相同分辨率級(jí)別(層)列出圖元。
在這些方案中,優(yōu)選的最高索引編號(hào)可用于保留和分配給在已經(jīng)產(chǎn)生倒數(shù)第二個(gè)索引圖元后產(chǎn)生的所有圖元,以便于系統(tǒng)容易識(shí)別何時(shí)已經(jīng)達(dá)到“索引-被耗盡”狀態(tài)且處于其中。
在優(yōu)選的實(shí)施例中,系統(tǒng)(例如,圖元選擇單元)可以識(shí)別它是否已經(jīng)繪制過(guò)其當(dāng)前選擇進(jìn)行繪制的圖元,并且如果已經(jīng)繪制過(guò)則能夠忽略該圖元并且試圖選擇一個(gè)不同的圖元。這種情況可能發(fā)生,例如,如果相同圖元出現(xiàn)在覆蓋給定的子分區(qū)(區(qū)塊)的兩個(gè)不同圖元列表中,并且當(dāng)系統(tǒng)到達(dá)包括該圖元的其它一個(gè)或多個(gè)列表的頭部的時(shí)候已經(jīng)從所述列表之一繪制了該圖元。認(rèn)識(shí)到這種事件允許系統(tǒng)避免繪制相同圖元兩次。
因而,在優(yōu)選的實(shí)施例中,系統(tǒng)能認(rèn)識(shí)到(例如,圖元選擇單元可以認(rèn)識(shí)到)要從中選擇圖元以進(jìn)行繪制的圖元列表何時(shí)包括相同的圖元多于一次(例如,相同圖元在同時(shí)提供給圖元選擇單元的兩個(gè)或更多圖元列表的頭部),以使得,例如并且優(yōu)選,能夠避免兩次發(fā)送相同的圖元進(jìn)行繪制。
在這種方式下對(duì)圖元的重復(fù)的識(shí)別可以以任何合適的和期望的方式執(zhí)行。例如,圖元選擇單元或者另一個(gè)單元可以使用圖元的圖元索引(例如,比較它們),以了解其是否重復(fù)(例如,匹配)。如果識(shí)別到雙重的或者重復(fù)的圖元,則該系統(tǒng)(例如,圖元選擇單元)優(yōu)選的選擇一個(gè)用于繪制并且丟棄其他的。
在本發(fā)明的具體的優(yōu)選實(shí)施例中,一個(gè)或者多個(gè)圖元列表可以且優(yōu)選的由圖形處理器緩存或者在圖形處理器中緩存,最優(yōu)選的由圖元選擇單元緩存,即圖元列表可以且優(yōu)選存儲(chǔ)在圖形處理器的本地的、更快速的可訪(fǎng)問(wèn)存儲(chǔ)器。因而,本發(fā)明的設(shè)備和方法優(yōu)選的包括用于緩存一個(gè)或者多個(gè)圖元列表的裝置或步驟。這樣的緩存可以減少關(guān)于圖元列表的帶寬的使用。
優(yōu)選緩存較高級(jí)別(較低分辨率)圖元列表,即,用于場(chǎng)景的多子分區(qū)的列表。緩存這樣的圖元列表是有利的,因?yàn)楫?dāng)處理不同子分區(qū)(區(qū)塊)時(shí)該圖元列表將被再次使用,不象為單個(gè)子分區(qū)專(zhuān)有的圖元列表(其因而將只使用一次),并且通過(guò)緩存這些圖元列表,可以獲得更有效的處理。事實(shí)上,本發(fā)明的優(yōu)點(diǎn)在于它促進(jìn)緩存圖元列表,并因此更有效的緩存圖元數(shù)據(jù)。
和上述緩存圖元列表一樣,在需要時(shí)也可以緩存其他數(shù)據(jù)。事實(shí)上,在具體的優(yōu)選實(shí)施例中,以上面的形式緩存頂點(diǎn)數(shù)據(jù)(頂點(diǎn)),以及(或取代)圖元列表。這也具有優(yōu)點(diǎn),能夠?qū)⒖赡苡糜谝粋€(gè)以上的子分區(qū)的頂點(diǎn)數(shù)據(jù)本地存儲(chǔ)(緩存)以備使用,而不是每次需要時(shí)從外部存儲(chǔ)器檢索。
如本領(lǐng)域所公知的,該緩存的數(shù)據(jù)可以存儲(chǔ)在相同或不同的緩沖存儲(chǔ)器中。
當(dāng)以該方式緩存圖元列表和/或頂點(diǎn)(或其他)數(shù)據(jù),緩沖存儲(chǔ)器中數(shù)據(jù)的存儲(chǔ)(并且特別是置換)優(yōu)選的根據(jù)數(shù)據(jù)應(yīng)用到的“子分區(qū)集合”分級(jí)結(jié)構(gòu)中的級(jí)別(例如,數(shù)據(jù)是為單個(gè)子分區(qū)或多子分區(qū)的集合(以及,例如,集合中有多少子分區(qū))存儲(chǔ)),而不是例如根據(jù)簡(jiǎn)單的先進(jìn)先出的準(zhǔn)則。這有助于優(yōu)選保留多個(gè)子分區(qū)可能需要的緩沖數(shù)據(jù)。優(yōu)選的,保存的數(shù)據(jù)的所用的級(jí)別越高,它的置換優(yōu)先權(quán)越低。因此,該“層”(級(jí)別)結(jié)構(gòu)優(yōu)選的用于區(qū)分緩沖存儲(chǔ)器中數(shù)據(jù)的置換優(yōu)先次序。
在具體的優(yōu)選實(shí)施例中,選擇并優(yōu)選的預(yù)定各個(gè)子分區(qū)的繪制順序,以便提高任何緩存數(shù)據(jù)的有效使用。最優(yōu)選的,選擇繪制順序以便以如下形式繪制子分區(qū),在完全繪制了一層中的一個(gè)給定子分區(qū)集合之后才開(kāi)始繪制該層中的另一個(gè)子分區(qū)集合。這將幫助確保可以使用給定的子分區(qū)集合的所有數(shù)據(jù)并接著在開(kāi)始繪制下一個(gè)子分區(qū)的集合之前安全丟棄這些數(shù)據(jù)。
換句話(huà)說(shuō),優(yōu)選以如下順序繪制各個(gè)子分區(qū),確保在給定層中不同子分區(qū)集合之間的邊界沒(méi)有交叉,直到已繪制第一子分區(qū)集合的所有子分區(qū)。這有助于保證為相應(yīng)子分區(qū)集合保存的數(shù)據(jù)只需要緩存最小的時(shí)間段。
如上所述,在所述方案是使得連續(xù)的層在它們的子分區(qū)集合中具有1×1,2×2,4×4,8×8等子分區(qū)的情況下,這可以通過(guò)以莫頓(Morton)順序繪制子分區(qū)實(shí)現(xiàn)。
雖然上面已參考存儲(chǔ)用于各個(gè)子分區(qū)或一個(gè)以上子分區(qū)的集合的圖元列表描述了本發(fā)明,但是在類(lèi)似基礎(chǔ)上保存其他圖形數(shù)據(jù)也是可能的。例如,存在其他形式的圖形數(shù)據(jù),諸如圖形繪制、設(shè)置,諸如剪裁參數(shù)或圖元類(lèi)參數(shù)(例如,圖元是否是點(diǎn)、線(xiàn)、三角形或四邊形)和可以在每個(gè)子分區(qū)(區(qū)塊)或子分區(qū)組的基礎(chǔ)上指定的子分區(qū)(區(qū)塊)命令(例如,最后區(qū)塊命令)。
申請(qǐng)人已認(rèn)識(shí)到,以類(lèi)似于上面討論的圖元列表的形式,能在每個(gè)子分區(qū)基礎(chǔ)上或?yàn)槎鄠€(gè)子分區(qū)共同的保存(選擇性的)這些數(shù)據(jù)類(lèi)型是同樣有利的。
例如,如果特定參數(shù)或命令要用于每一個(gè)子分區(qū),優(yōu)選的將其保存在為整個(gè)場(chǎng)景共同使用的單個(gè)圖元(或其他)列表中。另一方面,對(duì)于只有一個(gè)或若干子分區(qū)需要的命令或數(shù)據(jù),優(yōu)選將其只針對(duì)那些子分區(qū)保存,例如只在所述分級(jí)結(jié)構(gòu)中包含相關(guān)子分區(qū)的較低的級(jí)別。
因此,除了以上述方式保存圖元用于準(zhǔn)備圖元列表,本發(fā)明的系統(tǒng)可以?xún)?yōu)選的還保存數(shù)據(jù)和命令(例如,優(yōu)選在該場(chǎng)景的單獨(dú)子分區(qū)和多子分區(qū)集合的獨(dú)立“列表”中)。優(yōu)選的,這些命令和數(shù)據(jù)以子分區(qū)和子分區(qū)集合的分級(jí)結(jié)構(gòu)中將使用或需要它們的級(jí)別來(lái)保存,如上面的示例。
在這些方案中,圖形數(shù)據(jù)(例如,命令和設(shè)置)可以例如保存在用于子分區(qū)和子分區(qū)集合的獨(dú)立“命令”列表中。然而,在特別的優(yōu)選實(shí)施例中,該圖形數(shù)據(jù)被包括在用于子分區(qū)和子分區(qū)集合的圖元列表中,即,使得一個(gè)和優(yōu)選每一個(gè)圖元列表可以并將包括與其他圖形數(shù)據(jù)一起的圖元列表,其它圖形數(shù)據(jù)例如在圖元列表中散布的命令、設(shè)置和/或參數(shù)。
在具體的優(yōu)選實(shí)施例中,該其他圖形數(shù)據(jù)以類(lèi)似于圖元的形式索引,同樣,這將允許數(shù)據(jù)以正確的順序使用。同樣,對(duì)于該數(shù)據(jù)可以使用獨(dú)立的索引,但是最優(yōu)選的,在圖元的索引中為它加索引,即,使得,例如,系統(tǒng)將(例如,在已繪制前三個(gè)圖元之后執(zhí)行命令)繪制圖元1,2,3,然后執(zhí)行命令4,然后繪制圖元5,6,……,等等。
我們相信,以該形式保存數(shù)據(jù)在其本身的權(quán)利要求中會(huì)是新的并有利的。
因此,根據(jù)本發(fā)明的第二十三個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以便在圖形處理系統(tǒng)中用于繪制的設(shè)備,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)用于繪制的子分區(qū),該設(shè)備包括用于為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備在繪制該子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合的裝置;以及用于為場(chǎng)景的包括多于一個(gè)子分區(qū)的子分區(qū)集合準(zhǔn)備在繪制該子分區(qū)集合的子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合的裝置。
根據(jù)本發(fā)明的第二十四個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備在圖形處理系統(tǒng)中用于繪制的方法,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)用于繪制的子分區(qū),該方法包括為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備在繪制該子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合;以及為場(chǎng)景的包括多于一個(gè)子分區(qū)的子分區(qū)集合準(zhǔn)備在繪制該子分區(qū)集合的子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合。
根據(jù)本發(fā)明的第二十五個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的設(shè)備,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該設(shè)備包括將用于繪制的數(shù)據(jù)或命令至少包括在用于繪制場(chǎng)景的單個(gè)子分區(qū)的數(shù)據(jù)和/或命令集合中,或包括在用于繪制該場(chǎng)景的多于一個(gè)子分區(qū)的數(shù)據(jù)和/或命令集合中的裝置。
根據(jù)本發(fā)明的第二十六個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該方法包括選擇性的將用于繪制的數(shù)據(jù)或命令至少包括在用于繪制場(chǎng)景的單個(gè)子分區(qū)的數(shù)據(jù)和/或命令集合中,或包括在用于繪制該場(chǎng)景的多于一個(gè)子分區(qū)的數(shù)據(jù)和/或命令集合中。
根據(jù)本發(fā)明第二十七個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的設(shè)備,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該設(shè)備包括將用于繪制的數(shù)據(jù)或命令包括在一個(gè)或更多用于繪制的數(shù)據(jù)和/或命令集合中的裝置,其中該用于繪制的數(shù)據(jù)和/或命令集合可以只為單個(gè)子分區(qū)專(zhuān)有或者可以用于多于一個(gè)場(chǎng)景子分區(qū)。
根據(jù)本發(fā)明第二十八個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該方法包括將用于繪制的數(shù)據(jù)或命令包括在一個(gè)或更多用于繪制的數(shù)據(jù)和/或命令集合中,其中該用于繪制的數(shù)據(jù)和/或命令集合可以只為單個(gè)子分區(qū)專(zhuān)有或者可以用于多于一個(gè)場(chǎng)景子分區(qū)。
根據(jù)本發(fā)明第二十九個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的設(shè)備,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該設(shè)備包括用于選擇性的將用于繪制的數(shù)據(jù)或命令包括在對(duì)應(yīng)于場(chǎng)景的單個(gè)子分區(qū)的用于繪制的數(shù)據(jù)和/或命令集合中,或包括在對(duì)應(yīng)于該場(chǎng)景的多于一個(gè)子分區(qū)的用于繪制的數(shù)據(jù)和/或命令集合中的裝置。
根據(jù)本發(fā)明第三十個(gè)方面,提供一種分類(lèi)數(shù)據(jù)和/或命令以備用于在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)要繪制的子分區(qū),該方法包括選擇性的將用于繪制的數(shù)據(jù)或命令包括在對(duì)應(yīng)于場(chǎng)景的單個(gè)子分區(qū)的用于繪制的數(shù)據(jù)和/或命令集合中,或包括在對(duì)應(yīng)于該場(chǎng)景的多于一個(gè)子分區(qū)的用于繪制的數(shù)據(jù)和/或命令集合中。
根據(jù)本發(fā)明第三十一個(gè)方面,提供一種處理圖形數(shù)據(jù)元素流的方法,該方法包括將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中;以及將分布的數(shù)據(jù)元素重新組合為圖形數(shù)據(jù)元素的單個(gè)流。
根據(jù)本發(fā)明第三十二個(gè)方面,提供一種用于處理圖形數(shù)據(jù)元素流的設(shè)備,該設(shè)備包括用于將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中的裝置;以及將分布的數(shù)據(jù)元素重新組合為圖形數(shù)據(jù)元素的單個(gè)流的裝置。
根據(jù)本發(fā)明第三十三個(gè)方面,提供一種處理圖形數(shù)據(jù)元素流的方法,該方法包括將索引分配給圖形數(shù)據(jù)元素流中的數(shù)據(jù)元素;將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中;在數(shù)據(jù)元素已由并行操作的處理單元處理之后,使用分配給數(shù)據(jù)元素的索引分類(lèi)這些數(shù)據(jù)元素。
根據(jù)本發(fā)明第三十四個(gè)方面,提供一種處理圖形數(shù)據(jù)元素流的設(shè)備,該設(shè)備包括
用于將索引分配給圖形數(shù)據(jù)元素流中的數(shù)據(jù)元素的裝置;用于將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中的裝置;用于在數(shù)據(jù)元素已由并行操作的處理單元處理之后,使用分配給數(shù)據(jù)元素的索引分類(lèi)這些數(shù)據(jù)元素的裝置。
根據(jù)本發(fā)明第三十五個(gè)方面,提供一種處理圖形數(shù)據(jù)元素流的方法,該方法包括將索引分配給圖形數(shù)據(jù)元素流中的數(shù)據(jù)元素;將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中;處理來(lái)自圖形數(shù)據(jù)流的數(shù)據(jù)元素;以及使用分配給數(shù)據(jù)元素的索引控制其中處理數(shù)據(jù)元素的順序。
根據(jù)本發(fā)明第三十六個(gè)方面,提供一種用于圖形數(shù)據(jù)元素的設(shè)備,處理圖形流的該設(shè)備包括用于將索引分配給圖形數(shù)據(jù)元素流中的數(shù)據(jù)元素的裝置;用于將來(lái)自圖形數(shù)據(jù)元素流的數(shù)據(jù)元素分布到多個(gè)并行操作的處理單元中的裝置;用于處理來(lái)自圖形數(shù)據(jù)流元素的數(shù)據(jù)元素的裝置;以及用于使用分配給數(shù)據(jù)元素的索引控制其中處理數(shù)據(jù)元素的順序的裝置。
本領(lǐng)域技術(shù)人員將能理解,本發(fā)明的以上方面可以并優(yōu)選包括這里所述本發(fā)明的一個(gè)或多個(gè)或全部?jī)?yōu)選和可選特征。因此,例如,保存用于子分區(qū)或用于一個(gè)以上子分區(qū)集合的數(shù)據(jù)和/或命令優(yōu)選的包括用于繪制該子分區(qū)或子分區(qū)集合的圖元列表,和/或用于該子分區(qū)或子分區(qū)集合的其他數(shù)據(jù)或命令。在優(yōu)選實(shí)施例中,它既包括要繪制的圖元列表,也包括用于子分區(qū)或子分區(qū)集合的其他數(shù)據(jù)和命令。類(lèi)似的,圖形數(shù)據(jù)元素優(yōu)選的包括圖形圖元和/或其他圖形數(shù)據(jù)和/或命令。
應(yīng)該認(rèn)識(shí)到,盡管這里對(duì)“圖元”的引用主要涉及“簡(jiǎn)單”多邊形形式的圖形圖元,如本領(lǐng)域公知的,比如三角形、格柵、線(xiàn)或點(diǎn)等,(并且,在優(yōu)選實(shí)施例中,確實(shí)涉及“簡(jiǎn)單”多邊形形式的圖形圖元,比如三角形、格柵、線(xiàn)或點(diǎn)等),但是本發(fā)明也適用于較大的圖形對(duì)象或圖元,諸如用于表示場(chǎng)景中的較大對(duì)象和/或較小多邊形的組(比如一組鄰接三角形)的圖形組件或圖元。例如,可能需要將一組多個(gè)單獨(dú)的多邊形作為單個(gè)圖形對(duì)象或圖元來(lái)處理和分類(lèi)。這樣的較大的、“復(fù)雜的”圖元(“元圖元”(meta-primitives))同樣可以以本發(fā)明的方式為子分區(qū)和子分區(qū)集合列出。因而,除非上下文另外要求,這里對(duì)“圖元”等的引用應(yīng)該如此解釋。
可以以任何所需或適合的形式執(zhí)行本發(fā)明的各種功能。在具體的優(yōu)選實(shí)施例中,在產(chǎn)生并輸出圖形數(shù)據(jù)的單個(gè)圖形處理平臺(tái)上執(zhí)行它們,該圖形數(shù)據(jù)被寫(xiě)入用于顯示裝置的幀緩沖器。按需要在硬件或軟件中實(shí)施上述功能。在優(yōu)選實(shí)施例中,將系統(tǒng)實(shí)施為硬件元件(例如,ASIC)。因此,在本發(fā)明的另一方面包括硬件元件,該硬件元件包括這里所述本發(fā)明任何一個(gè)或多個(gè)方面的設(shè)備或依照這里所述本發(fā)明任何一個(gè)或多個(gè)方面的方法來(lái)操作。
這里也應(yīng)該注意,如本領(lǐng)域技術(shù)人員將理解的,可以在給定處理器上重復(fù)和/或并行執(zhí)行本發(fā)明的各種功能等。例如,可以存在并行操作的多個(gè)圖元選擇單元。
本發(fā)明可以應(yīng)用于任何形式或配置的圖形處理器和繪制儀(renderer),諸如具有“管線(xiàn)(pipeline)”結(jié)構(gòu)的繪制儀(在該情況中,繪制儀將是繪制管線(xiàn)的形式)。
正如從上面可以理解的,本發(fā)明特別,雖然不是唯一的,應(yīng)用于3D圖形處理器和處理裝置,并相應(yīng)擴(kuò)展到包括這里所述發(fā)明的一個(gè)或多個(gè)方面的設(shè)備或依照這里所述本發(fā)明的一個(gè)或多個(gè)方面的方法來(lái)操作的3D圖形處理器和3D圖形處理平臺(tái)。對(duì)于執(zhí)行上述特定功能所需的任何硬件,這樣的3D圖形處理器可以另外包括3D圖形處理器包括的一個(gè)或多個(gè)或所有的常用功能單元等。
本領(lǐng)域技術(shù)人員也可以理解,當(dāng)合適時(shí),本發(fā)明的所有所述方面和實(shí)施例可以包括任何一個(gè)或多個(gè)或所有這里所述的優(yōu)選和可選特征。
可以使用例如計(jì)算機(jī)程序的軟件至少部分實(shí)施根據(jù)本發(fā)明的方法。因此,可以看到,當(dāng)從其它方面看,本發(fā)明提供在數(shù)據(jù)處理裝置上安裝時(shí)特別適用于執(zhí)行這里所述的方法的計(jì)算機(jī)軟件,包括當(dāng)在數(shù)據(jù)處理裝置上運(yùn)行時(shí)用于執(zhí)行這里所述的方法的計(jì)算機(jī)程序代碼部分的計(jì)算機(jī)程序元件,和包括當(dāng)在數(shù)據(jù)處理系統(tǒng)上運(yùn)行時(shí)適用于執(zhí)行這里所述的一個(gè)或多個(gè)方法的步驟的代碼措施的計(jì)算機(jī)程序。本發(fā)明也擴(kuò)展到包括這樣的軟件的計(jì)算機(jī)軟件載體,當(dāng)這樣的軟件用于操作包括所述數(shù)據(jù)處理裝置的圖形處理器、繪制儀或微處理器系統(tǒng)時(shí),聯(lián)合所述數(shù)據(jù)處理裝置使得所述處理器、繪制儀或系統(tǒng)執(zhí)行本發(fā)明的方法的步驟。該計(jì)算機(jī)軟件載體可以是諸如ROM芯片、CD ROM或光盤(pán)的物理存儲(chǔ)介質(zhì),或可以是諸如有線(xiàn)電子信號(hào)、光信號(hào)或諸如衛(wèi)星的無(wú)線(xiàn)電信號(hào)等的信號(hào)。
可以進(jìn)一步理解,不是本發(fā)明的方法的所有步驟需要由計(jì)算機(jī)軟件執(zhí)行,并因此從更廣的方面,本發(fā)明提供計(jì)算機(jī)軟件,安裝在計(jì)算機(jī)軟件載體上的該軟件用于執(zhí)行這里提到的方法的至少一個(gè)步驟。
本發(fā)明因此適合實(shí)現(xiàn)為與計(jì)算機(jī)系統(tǒng)一起使用的計(jì)算機(jī)程序產(chǎn)品。這樣的實(shí)施可以包括固定在諸如計(jì)算機(jī)可讀介質(zhì)(例如磁盤(pán)、CD-ROM、ROM、或硬盤(pán))的有形介質(zhì)上或可以通過(guò)調(diào)制解調(diào)器或其它接口設(shè)備(在包括但是不限于光學(xué)或模擬通信線(xiàn)的有形介質(zhì)上,或使用包括但是不限于微波、紅外或其它傳輸技術(shù)的無(wú)線(xiàn)技術(shù)無(wú)形的)傳輸?shù)接?jì)算機(jī)系統(tǒng)的計(jì)算機(jī)可讀指令序列。該計(jì)算機(jī)可讀指令序列包括有這里以上所述的所有或部分功能。
本領(lǐng)域技術(shù)人員將理解,這樣的計(jì)算機(jī)可讀指令可以由多種編程語(yǔ)言編寫(xiě),以便與許多計(jì)算機(jī)結(jié)構(gòu)或操作系統(tǒng)一起使用。而且,這樣的指令可以使用目前或未來(lái)的任何存儲(chǔ)技術(shù)保存,包括但不限制于半導(dǎo)體、磁性或光學(xué)的技術(shù),或者使用目前或未來(lái)的任何通信技術(shù)傳輸,包括但不限制于光學(xué)的、紅外或微波。可以設(shè)想,這樣的計(jì)算機(jī)程序產(chǎn)品可以作為具有隨附的打印或電子文檔的可移動(dòng)介質(zhì)分發(fā),例如,用收縮性薄膜包裝的軟件、計(jì)算機(jī)系統(tǒng)預(yù)加載的軟件(例如在系統(tǒng)ROM或固定盤(pán)上),或通過(guò)網(wǎng)絡(luò)(例如,因特網(wǎng)或萬(wàn)維網(wǎng))從服務(wù)器或電子公告板分發(fā)。
將參考附圖描述本發(fā)明的多個(gè)優(yōu)選實(shí)施例,其只作為例子,其中圖1示意性的表示基于區(qū)塊的圖形處理方案;圖2示意性的表示可以根據(jù)本發(fā)明操作的圖形處理器的結(jié)構(gòu);圖3示意性的表示向圖元列表分配圖元的過(guò)程的實(shí)施例;圖4示意性的表示在要繪制的場(chǎng)景中的圖元集合;以及圖5示意性的表示要繪制的場(chǎng)景的子分區(qū)集合的方案的實(shí)施例。
具體實(shí)施例方式
將參考圖2、3和4描述本發(fā)明的優(yōu)選實(shí)施例。
圖2示意性的表示可以根據(jù)本發(fā)明操作的圖形處理器20。圖形處理器20包括幾何結(jié)構(gòu)處理器21和繪制儀22,兩者都可以訪(fǎng)問(wèn)存儲(chǔ)器23。如本領(lǐng)域公知的,存儲(chǔ)器23可以與幾何結(jié)構(gòu)處理器21和繪制儀22一起“在片內(nèi)(on-chip)”,或是可以由幾何結(jié)構(gòu)處理器21和繪制儀22訪(fǎng)問(wèn)的外部存儲(chǔ)器。
如圖2所示,存儲(chǔ)器23特別存儲(chǔ)原始幾何結(jié)構(gòu)數(shù)據(jù)24的集合(例如,如本領(lǐng)域公知,其由圖形處理器驅(qū)動(dòng)器或在圖形處理器20的主系統(tǒng)(微處理器)上運(yùn)行的API提供),轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25的集合(又如本領(lǐng)域公知,其是在原始結(jié)構(gòu)24上執(zhí)行的各種轉(zhuǎn)換和處理操作的結(jié)果)和圖元列表26的集合。根據(jù)本發(fā)明準(zhǔn)備圖元列表26。下面將更詳細(xì)的描述該過(guò)程。
如本領(lǐng)域公知,轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25包括例如轉(zhuǎn)換的頂點(diǎn)(頂點(diǎn)數(shù)據(jù))等。
此外,幾何結(jié)構(gòu)處理器21特別包括可編程頂點(diǎn)漸變器(shader)27和圖元列表構(gòu)造單元28??删幊添旤c(diǎn)漸變器27以保存在存儲(chǔ)器23中的原始幾何結(jié)構(gòu)數(shù)據(jù)24為輸入,并處理該數(shù)據(jù)以提供轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25(然后其保存在存儲(chǔ)器23中),該幾何結(jié)構(gòu)數(shù)據(jù)25包括適于要顯示的幀中的2D布局的形式的幾何結(jié)構(gòu)數(shù)據(jù)??删幊添旤c(diǎn)漸變器27和它執(zhí)行的處理可以采取任何合適的形式并可以是本領(lǐng)域公知的合適的和所需的任何處理。
圖元列表構(gòu)造單元28執(zhí)行本發(fā)明的向圖元列表分配圖元的過(guò)程,然后圖元列表由繪制儀22使用,以識(shí)別應(yīng)該為要繪制的場(chǎng)景的每個(gè)子分區(qū)繪制的圖元。為此,圖元列表構(gòu)造單元28以來(lái)自可編程頂點(diǎn)漸變器27的已轉(zhuǎn)換和處理的頂點(diǎn)數(shù)據(jù)(即,場(chǎng)景中圖元的位置)為輸入,使用該數(shù)據(jù)構(gòu)造圖元(區(qū)塊)列表,并將這些列表保存為存儲(chǔ)器23中的圖元列表26。下面將更詳細(xì)的描述該過(guò)程。
繪制儀22包括圖元選擇單元29、圖元列表緩沖存儲(chǔ)器30、頂點(diǎn)選擇單元31、頂點(diǎn)數(shù)據(jù)緩沖存儲(chǔ)器32、柵格化單元33、繪制單元34和區(qū)塊緩沖器35。
在本實(shí)施例中,柵格化單元33、繪制單元34、區(qū)塊緩沖器35以與現(xiàn)存圖形處理系統(tǒng)中這些單元相同的形式操作。因此,柵格化單元33以一個(gè)圖元和它的頂點(diǎn)作為輸入,將圖元柵格化為片斷,并將這些片斷提供給繪制單元34。然后繪制單元34對(duì)該片斷執(zhí)行若干繪制處理,諸如紋理映射、混合、漸變等,并產(chǎn)生繪制的片斷數(shù)據(jù),該數(shù)據(jù)保存在區(qū)塊緩沖器35中以提供給幀緩沖器用于顯示。
繪制儀22的圖元選擇單元29確定接下來(lái)繪制哪個(gè)圖元。該處理如下實(shí)現(xiàn),通過(guò)考慮保存在存儲(chǔ)器23中的圖元列表26,并從這些列表的一個(gè)中選擇將繪制的下一個(gè)圖元。下面將更詳細(xì)的再次描述該選擇處理。
圖元選擇單元29也可以將一個(gè)或多個(gè)圖元列表放入圖元列表緩沖存儲(chǔ)器30中。
圖元選擇單元29將它已選擇用于接下來(lái)繪制的圖元提供給頂點(diǎn)選擇單元31。對(duì)此響應(yīng),頂點(diǎn)選擇單元31從保存在存儲(chǔ)器23中的轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25檢索合適的轉(zhuǎn)換的頂點(diǎn)數(shù)據(jù)用于所關(guān)注圖元,并然后將該圖元(即,它的轉(zhuǎn)換的頂點(diǎn)數(shù)據(jù))提供給柵格化單元33進(jìn)行處理。需要時(shí),頂點(diǎn)選擇單元31可以將它已從存儲(chǔ)器23檢索的頂點(diǎn)數(shù)據(jù)緩存在頂點(diǎn)數(shù)據(jù)緩沖存儲(chǔ)器32中。
現(xiàn)在將參考圖3、4和5更詳細(xì)的描述圖元列表構(gòu)造單元28的操作和圖元列表26的準(zhǔn)備。
如上所述,本發(fā)明適用于其中將要繪制的場(chǎng)景劃分為多個(gè)子分區(qū)或區(qū)塊的繪制系統(tǒng)。而且,除了場(chǎng)景被劃分為單獨(dú)子分區(qū),子分區(qū)可以組合為一個(gè)子分區(qū)以上的集合,其因此能有效覆蓋比單獨(dú)子分區(qū)更大部分的場(chǎng)景區(qū)域。而且,獨(dú)立(不同)的圖元列表(即,要繪制的圖元的列表)可以從每個(gè)單獨(dú)子分區(qū)準(zhǔn)備,并為系統(tǒng)支持的每個(gè)多子分區(qū)的集合準(zhǔn)備。
圖4和5表示本發(fā)明可以使用的要繪制的場(chǎng)景的子分區(qū)和子分區(qū)集合的方案的優(yōu)選實(shí)施例。
如圖4所示,將要繪制的場(chǎng)景50劃分為多個(gè)單獨(dú)子分區(qū)或區(qū)塊51。(這里應(yīng)該注意,圖4并沒(méi)有示出場(chǎng)景50劃分的所有單獨(dú)子分區(qū)51,而僅是這些子分區(qū)的一些。這是為了清楚起見(jiàn)。然而,在實(shí)際中整個(gè)場(chǎng)景50被劃分為相等的子分區(qū)51。)單獨(dú)子分區(qū)51也可以組合為不同組的子分區(qū)集合,這些組集合實(shí)際上覆蓋場(chǎng)景50以提供具有整個(gè)場(chǎng)景區(qū)域的不同劃分的不同層。因此,如圖4所示,存在十六個(gè)子分區(qū)52的集合的“層”,每個(gè)集合包括2×2個(gè)子分區(qū)52。然后有包括四個(gè)4×4子分區(qū)的集合53的另一較低分辨率層。最后,有包含整個(gè)場(chǎng)景區(qū)域的8×8子分區(qū)的一個(gè)集合54。
從圖4可以看出,該方案的效果在于,用逐漸增加的屏幕區(qū)域劃分的分級(jí)結(jié)構(gòu)覆蓋場(chǎng)景50。這在圖5中示意性地表示。因此,存在包含覆蓋整個(gè)場(chǎng)景區(qū)域50的8×8子分區(qū)的集合54的頂級(jí)層。然后有一組四個(gè)4×4的子分區(qū)集合53,然后是一組16個(gè)2×2的子分區(qū)集合52,以及最后包括64個(gè)單個(gè)子分區(qū)51的層。為舉例說(shuō)明起見(jiàn),圖5也用粗體表示在分級(jí)結(jié)構(gòu)的每一層(級(jí)別)上認(rèn)為圖元80會(huì)落入其中的子分區(qū)或子分區(qū)的集合。
為舉例說(shuō)明起見(jiàn),圖4也示出了要繪制并因此需要分配給圖元列表用于繪制的三個(gè)圖元55、56和57。
(同樣,本領(lǐng)域技術(shù)人員將會(huì)理解,實(shí)際中任何要繪制的給定場(chǎng)景將一般包括比圖4所示三個(gè)圖元更多的圖元。然而,為了簡(jiǎn)化和清楚起見(jiàn),圖4只示出三個(gè)圖元。)如上所述,并如本領(lǐng)域公知,在為繪制目的將要繪制的場(chǎng)景50劃分為更小子分區(qū)51的系統(tǒng)中,系統(tǒng)必須能夠識(shí)別為了每個(gè)子分區(qū)應(yīng)該繪制哪些圖元。如本領(lǐng)域公知,這通過(guò)提供所謂的圖元或區(qū)塊列表實(shí)現(xiàn),該列表為每個(gè)子分區(qū)標(biāo)識(shí)為該子分區(qū)應(yīng)該繪制的圖元。
如上所述,本實(shí)施例對(duì)現(xiàn)有的圖元列表準(zhǔn)備過(guò)程提供改進(jìn),因?yàn)槌嗽试S為場(chǎng)景被劃分的單獨(dú)子分區(qū)準(zhǔn)備圖元列表,本實(shí)施例還為多于一個(gè)子分區(qū)的集合準(zhǔn)備單獨(dú)的圖元列表,即由多個(gè)子分區(qū)共同使用的圖元列表。
在本實(shí)施例中,圖元列表構(gòu)造單元28為每個(gè)單獨(dú)子分區(qū)51準(zhǔn)備圖元列表,為每個(gè)2×2子分區(qū)的集合52準(zhǔn)備獨(dú)立的圖元列表,為每個(gè)4×4子分區(qū)的集合53準(zhǔn)備獨(dú)立的圖元列表,以及為覆蓋整個(gè)場(chǎng)景50的8×8子分區(qū)的集合54準(zhǔn)備獨(dú)立的圖元列表。為此,圖元列表構(gòu)造單元28依次獲取每個(gè)圖元,為該圖元確定位置,比較圖元的位置和子分區(qū)51(覆蓋的場(chǎng)景區(qū)域)的位置以及子分區(qū)的集合52、53和54(覆蓋的場(chǎng)景區(qū)域)的位置,并相應(yīng)為子分區(qū)和子分區(qū)集合將圖元分配給對(duì)應(yīng)圖元列表26。
圖元列表構(gòu)造單元28確定每個(gè)圖元的位置并且使用(在本實(shí)施例中)精確裝箱技術(shù)確定給定圖元落入其中或與之相交的子分區(qū)和子分區(qū)集合。因此,如本領(lǐng)域公知,圖元列表構(gòu)造單元28使用由可編程頂點(diǎn)漸變器27為其提供的用于給定圖元的確定的變換頂點(diǎn)位置,以識(shí)別該圖元落入(相交于)哪些子分區(qū)和子分區(qū)集合。可以以任何合適的和所需的形式執(zhí)行該過(guò)程,諸如使用本領(lǐng)域中用于該目的已知的技術(shù)。
如本領(lǐng)域技術(shù)人員能理解的,如果需要可以使用用于確定和定位場(chǎng)景中的圖元并且與子分區(qū)或子分區(qū)集合相關(guān)聯(lián)的其它技術(shù)。例如,如本領(lǐng)域公知,可以同樣的采用邊界框技術(shù)。(在使用邊界框技術(shù)的情況下,優(yōu)選產(chǎn)生邊界框作為圖元列出過(guò)程的一部分,例如由圖元列表構(gòu)造單元來(lái)產(chǎn)生邊界框,但是其它方案也是可行的。)
現(xiàn)在將參考圖3描述圖元列表構(gòu)造單元用于將給定圖元分配給用于子分區(qū)和子分區(qū)集合的圖元列表26的實(shí)際過(guò)程。
如圖3所示,圖元列表構(gòu)造單元28在其輸入獲取來(lái)自可編程頂點(diǎn)漸變器27的用于所關(guān)注圖元的轉(zhuǎn)換的圖元位置數(shù)據(jù)(步驟S60)。
然后,繼續(xù)到在場(chǎng)景劃分的每個(gè)不同級(jí)別(層)相對(duì)于子分區(qū)集合與子分區(qū)測(cè)試圖元的位置。為此,在子分區(qū)集合分級(jí)結(jié)構(gòu)中在頂級(jí)之下的一個(gè)級(jí)別開(kāi)始(步驟S61)。因此,在本實(shí)例中,將在圖4所示的4×4子分區(qū)的集合53的級(jí)別測(cè)試圖元。
然后,圖元列表構(gòu)造單元28使用提供的圖元位置,確定在子分區(qū)集合的分級(jí)結(jié)構(gòu)中的當(dāng)前層需要為多少子分區(qū)集合列出該圖元(步驟S62),并比較所確定的子分區(qū)集合的數(shù)量和子分區(qū)集合的閾值,在本實(shí)施例中的該閾值被設(shè)置為4(步驟S63)。
如果在這個(gè)階段確定,在子分區(qū)集合分級(jí)結(jié)構(gòu)中的當(dāng)前級(jí)別,需要為其列出所述圖元的子分區(qū)集合的數(shù)量低于閾值(即,本實(shí)施例中的4),那么圖元列表構(gòu)造單元28檢查它是否在子分區(qū)集合分級(jí)結(jié)構(gòu)中的底層(即,單個(gè)子分區(qū)層)(步驟S64),并且,如果不是,則步驟進(jìn)行到分級(jí)結(jié)構(gòu)中的下一級(jí)(步驟S65),確定在該層多少子分區(qū)集合需要列出該圖元(步驟S62),依此類(lèi)推,直到確定在分級(jí)結(jié)構(gòu)的給定級(jí)別所述子分區(qū)集合的數(shù)量超過(guò)閾值,或在步驟64確定無(wú)論如何已經(jīng)到達(dá)該分級(jí)結(jié)構(gòu)的底層(即單個(gè)子分區(qū)層)。
當(dāng)確定在分級(jí)結(jié)構(gòu)中的給定層需要在多于閾值的子分區(qū)集合中列出給定圖元的時(shí)候,該系統(tǒng)隨后上升到該分級(jí)結(jié)構(gòu)中的前一級(jí)別(步驟S66)。然后圖元列表構(gòu)造單元28測(cè)試在分級(jí)結(jié)構(gòu)的該上面一級(jí)中是否滿(mǎn)足該圖元只需要包括在單個(gè)圖元列表中的特殊情況(步驟S67)。如果滿(mǎn)足該特殊情況,那么圖元列表構(gòu)造單元28接著進(jìn)行到分級(jí)結(jié)構(gòu)中下一個(gè)更高級(jí)別(步驟S68),并接著在該層的圖元列表列出圖元(步驟S69),即,對(duì)于其中圖元只需要包括在單個(gè)圖元列表中的層。
另一方面,如果在步驟S67確定在所述上升的一層圖元仍需要列在一個(gè)以上的圖元列表,在超過(guò)圖元列表的閾值的層的緊鄰的上一層簡(jiǎn)單列出該圖元(步驟S69)。
如果在步驟S64確定無(wú)論如何已達(dá)到分級(jí)結(jié)構(gòu)的底層,即使還沒(méi)有達(dá)到圖元列表的閾值,也立即在底層列出圖元(步驟S69)。
然后依次對(duì)每個(gè)圖元重復(fù)該過(guò)程。
此外,該方案確保,任何圖元都不會(huì)包括(列出)在比圖元列表的指定閾值數(shù)量更多的圖元列表中。而且,它還確保在需要將圖元包括在閾值數(shù)量的圖元列表的級(jí)別的緊上一級(jí)別該圖元可以被包括在單個(gè)圖元列表中的特殊情況下,然后將該圖元包括在單個(gè)列表中(這使得圖元在圖元列表中被存儲(chǔ)一次,并且仍然可以被有效的處理用于必須繪制該圖元的子分區(qū))。
換句話(huà)說(shuō),圖元列表構(gòu)造單元28將從子分區(qū)集合的分級(jí)結(jié)構(gòu)中第二最高層開(kāi)始,沿著子分區(qū)集合的分級(jí)結(jié)構(gòu)重復(fù)向下處理,直到發(fā)現(xiàn)圖元需要被包括在超過(guò)閾值數(shù)量的圖元列表中,并且隨后向上返回一層且在該層列出該圖元,除了在向上兩層允許該圖元只列出在單個(gè)列表中的特殊情況。申請(qǐng)人發(fā)現(xiàn)該方案用以提供為繪制場(chǎng)景的子分區(qū)準(zhǔn)備圖元列表的特殊有效方式。
為了舉例說(shuō)明的目的,現(xiàn)在將參考圖4所示的圖元描述該過(guò)程的操作。在該方案中,將假設(shè)使用精確裝箱技術(shù)來(lái)確定和定位場(chǎng)景中的圖元,雖然如上所述如果需要的話(huà)也可以使用其它技術(shù),比如邊界框技術(shù)。在該示例中,假設(shè)用于確定在哪一級(jí)別列出圖元的圖元列表的閾值數(shù)量是4(當(dāng)然,如果需要的話(huà),不同的閾值也是可行的)。
首先考慮圖4所示的圖元55,圖元列表構(gòu)造單元28會(huì)首先確定圖元55會(huì)需要列出在多少個(gè)4×4子分區(qū)的集合53中。
在該例中,圖元列表構(gòu)造單元28將確定圖元55會(huì)需要列在兩個(gè)4×4子分區(qū)的集合53中。
因?yàn)檫@沒(méi)超過(guò)圖元列表的閾值數(shù)量四,圖元列表構(gòu)造單元就接著進(jìn)行到分級(jí)結(jié)構(gòu)的下一級(jí)別,也就是2×2子分區(qū)的集合52的級(jí)別。在該例中,圖元列表構(gòu)造單元再次確定圖元55會(huì)需要列在兩個(gè)2×2子分區(qū)的集合52的圖元列表中,其又沒(méi)有超出四個(gè)圖元列表的閾值數(shù)量。
因此,圖元列表構(gòu)造單元28進(jìn)行到分級(jí)結(jié)構(gòu)中的下個(gè)級(jí)別,其是單個(gè)子分區(qū)51的級(jí)別。在該例中,將確定圖元55會(huì)需要列在五個(gè)單個(gè)子分區(qū)圖元列表中,其超過(guò)4個(gè)列表的閾值數(shù)量。因此,一旦確定這一點(diǎn),圖元列表構(gòu)造單元28將向上返回2×2子分區(qū)的集合52的級(jí)別,并在該級(jí)別列出圖元55,也就是將圖元分配給合適的兩個(gè)2×2子分區(qū)的集合52的每一個(gè)的圖元列表中。也應(yīng)該注意到,在該例子中,當(dāng)圖元列表構(gòu)造單元28測(cè)試所述特殊情況時(shí),將確定在圖元55在現(xiàn)在被列出的級(jí)別沒(méi)有被包括在閾值數(shù)量的圖元列表中,并且因而不落入上述的特殊例子。
現(xiàn)在轉(zhuǎn)向圖元56,圖元列表構(gòu)造單元28同樣將首先在4×4子分區(qū)集合53的級(jí)別測(cè)試該圖元,并因此確定該圖元將需要列出在一個(gè)這樣的子分區(qū)集合的圖元列表中。
因此圖元列表構(gòu)造單元28將進(jìn)行到下一級(jí)別,即2×2子分區(qū)的集合52的級(jí)別工作,并再次確定在該級(jí)別,圖元56會(huì)需要包括在一個(gè)2×2子分區(qū)的集合52的列表中。
圖元列表構(gòu)造單元28將因而進(jìn)行到最后的單個(gè)子分區(qū)51的級(jí)別,并確定在該層圖元56會(huì)需要列出在四個(gè)單個(gè)子分區(qū)51的圖元列表中。
然后,圖元列表構(gòu)造單元會(huì)測(cè)試圖元56是否滿(mǎn)足上述的特殊情況。
在這種情況下,在單個(gè)子分區(qū)51的級(jí)別,圖元56確實(shí)需要列出在閾值數(shù)量的圖元列表(即,四個(gè)圖元列表)中,并因此圖元列表構(gòu)造單元28將進(jìn)行到下個(gè)更高級(jí)別,即2×2子分區(qū)的集合52的級(jí)別,以確定在分級(jí)結(jié)構(gòu)中的該層圖元56是否需要只需要包括在單個(gè)圖元列表中。在圖元56的情況下,會(huì)滿(mǎn)足該測(cè)試,即圖元56會(huì)只需要列出在2×2子分區(qū)的集合52的該層的單個(gè)圖元列表中。因此,圖元列表構(gòu)造單元28將在2×2子分區(qū)的集合52的級(jí)別列出圖元56,而不是在單個(gè)子分區(qū)51的級(jí)別。
最后,關(guān)于圖元57,圖元列表選擇單元再次首先在4×4子分區(qū)的集合53測(cè)試圖元,并確定在該層它只需要包括在單個(gè)圖元列表中。因此然后再次在2×2子分區(qū)的集合52測(cè)試圖元57,并發(fā)現(xiàn)在該層它需要列在四個(gè)2×2子分區(qū)集合的圖元列表中。
因此,然后,圖元列表選擇單元會(huì)在單個(gè)子分區(qū)集合51的級(jí)別測(cè)試圖元57,并再次發(fā)現(xiàn)在該級(jí)它需要包括在四個(gè)圖元列表中。
然后圖元列表構(gòu)造單元28會(huì)測(cè)試圖元57是否滿(mǎn)足上述的特殊情況標(biāo)準(zhǔn)。在這個(gè)例子中,圖元57在單個(gè)子分區(qū)集合51的級(jí)別之上的級(jí)別需要被包括在四個(gè)2×2子分區(qū)的集合52的圖元列表中,并且不滿(mǎn)足所述特殊情況。圖元列表構(gòu)造單元28因此在單個(gè)子分區(qū)51級(jí)列出圖元57,即在圖元57落入的四個(gè)單個(gè)子分區(qū)51的圖元列表中。
如本領(lǐng)域技術(shù)人員所能理解的,圖元列表構(gòu)造單元28對(duì)將要繪制的場(chǎng)景的每個(gè)及每一個(gè)圖元依次重復(fù)上述過(guò)程,直到已為要繪制的場(chǎng)景可以被劃分的每個(gè)單個(gè)子分區(qū)和每個(gè)多于一個(gè)子分區(qū)的集合產(chǎn)生完整的區(qū)塊列表26。
圖元列表構(gòu)造單元28按它從可編程頂點(diǎn)漸變器27接收?qǐng)D元的順序?qū)D元放入圖元列表26中。這意味著,關(guān)于每個(gè)獨(dú)立圖元列表26,列中的圖元順序是它們產(chǎn)生的順序,如本領(lǐng)域公知,該順序典型地對(duì)應(yīng)繪制圖元所需的順序。(如本領(lǐng)域公知,當(dāng)產(chǎn)生用于繪制的圖元時(shí),它們一般由主驅(qū)動(dòng)器或API按需要繪制圖元的順序產(chǎn)生并以該順序提供給圖形處理器。因此,圖元列表構(gòu)造單元28當(dāng)接收?qǐng)D元時(shí)依次獲取它們時(shí),只要涉及每個(gè)獨(dú)立圖元列表,它將按繪制順序?qū)D元放入獨(dú)立區(qū)塊列表中)。
當(dāng)圖元列表構(gòu)造單元28將圖元放入合適的圖元列表中的同時(shí),它也將用于圖元的索引分配給圖元列表26中的圖元并與之相關(guān)聯(lián)。圖元列表構(gòu)造單元28具有用于此目的的計(jì)數(shù)器,并且將繪制圖元時(shí)計(jì)時(shí)器的當(dāng)前計(jì)數(shù)分配該圖元。這樣,以圖元列表構(gòu)造單元28接收?qǐng)D元的順序?qū)γ總€(gè)圖元編號(hào)(在該實(shí)施例中是升序)(即,以主驅(qū)動(dòng)器或API等提供圖元的順序,即,希望繪制圖元的順序)。下面將進(jìn)一步討論,由圖元列表構(gòu)造單元28分配給每個(gè)圖元的索引由圖元選擇單元29使用,從存儲(chǔ)器23中的圖元列表26識(shí)別并選擇下一個(gè)用于繪制的圖元。
將圖元放入圖元列表26的時(shí)候?yàn)閳D元加索引的操作是需要的,因?yàn)?,如本領(lǐng)域公知,并如上所述,在圖形處理系統(tǒng)中經(jīng)常希望以特定順序繪制圖元。這不是只存在單個(gè)圖元列表從中獲取用于繪制的圖元的問(wèn)題,因?yàn)樵谠撉闆r下,如上所述,圖元會(huì)按照他們被提供給圖形處理器的順序包括在圖元列表中,即,按照繪制所希望的順序。然而,在本實(shí)施例中,可能需要從一個(gè)以上的圖元列表選擇用于繪制的下個(gè)圖元,以準(zhǔn)確順序選擇圖元用于繪制不是如此簡(jiǎn)單的。以上述形式索引圖元有助于降低該困難性,因?yàn)槿缦挛膶⑦M(jìn)一步討論的,它允許圖元選擇單元29識(shí)別圖元被提供給圖形處理器進(jìn)行繪制的順序,并因此,按該順序選擇下一個(gè)圖元。
雖然在本實(shí)施例中,以升序簡(jiǎn)單的索引圖元,但是如果需要,則選擇其他索引方案也是可能的。例如,在以繪圖調(diào)用安排要繪制的圖元的情況下,各個(gè)繪圖調(diào)用可以連續(xù)編號(hào),并且然后每個(gè)繪圖調(diào)用中的圖元連續(xù)編號(hào)。該方案會(huì)有助于,例如并行處理不同繪圖調(diào)用。
圖元列表構(gòu)造單元28也配置為能夠識(shí)別它可以分配給圖元的索引何時(shí)已經(jīng)或即將用盡。特別的,它能識(shí)別何時(shí)已經(jīng)達(dá)到倒數(shù)第二個(gè)索引值(即,倒數(shù)第二個(gè)計(jì)數(shù)器值)。響應(yīng)于該事件,圖元列表構(gòu)造單元轉(zhuǎn)向一個(gè)方案,其中它將從那時(shí)開(kāi)始接收的所有圖元都在該子分區(qū)集合的分級(jí)結(jié)構(gòu)的相同級(jí)別列出(例如,總在單個(gè)子分區(qū)級(jí)別,或總在2×2子分區(qū)集合的級(jí)別,等等)。這確保當(dāng)按序索引圖元的可能性已用盡時(shí),圖元選擇單元29隨后將只被提供在子分區(qū)集合的分級(jí)結(jié)構(gòu)的相同級(jí)別的圖元,以便于它仍能以正確順序選擇圖元(因?yàn)殡S后它將不需要在分級(jí)結(jié)構(gòu)的不同級(jí)的圖元列表26之間選擇圖元)。
一旦索引已經(jīng)用盡,就可以按需要選擇在該方案中列出圖元的實(shí)際級(jí)別。這可以基于,例如如果在分級(jí)結(jié)構(gòu)中的較低級(jí)(即,對(duì)較小場(chǎng)景區(qū)域)列出圖元?jiǎng)t必須保存更多的圖元列表(其會(huì)需要更多的存儲(chǔ)器)和如果在分級(jí)結(jié)構(gòu)的較高級(jí)(即,對(duì)更大的場(chǎng)景區(qū)域)列出圖元?jiǎng)t在繪制階段必須執(zhí)行更冗余和不必要的圖元處理兩種情況之間所需要的妥協(xié)和折衷。
在這些情況下,圖元列表構(gòu)造單元28還給它隨后接收的要列出的每個(gè)圖元分配最高索引(最高計(jì)數(shù)值),因此隨后允許系統(tǒng)識(shí)別已達(dá)到“索引耗盡”狀態(tài)。
對(duì)于要繪制的場(chǎng)景,一旦圖元列表構(gòu)造單元28已完成圖元列表26的構(gòu)造并將這些列表保存在存儲(chǔ)器23中,并且可編程頂點(diǎn)漸變器27已完成對(duì)幾何結(jié)構(gòu)數(shù)據(jù)的轉(zhuǎn)換以提供在存儲(chǔ)器23中的轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25的完整集合,然后繪制儀22可以繪制該場(chǎng)景。下文將描述該過(guò)程。
如上所述,在本實(shí)施例中,以子分區(qū)為基礎(chǔ)在子分區(qū)上執(zhí)行繪制過(guò)程,即,單獨(dú)依次繪制場(chǎng)景的每個(gè)子分區(qū)(區(qū)塊)51,然后組合繪制的子分區(qū)(區(qū)塊)用于顯示。
因此,首先為繪制儀22提供要繪制的子分區(qū)的身份,并使用其適當(dāng)配置自身。特別的,在本實(shí)施例中,識(shí)別應(yīng)用于要繪制的子分區(qū)的所存儲(chǔ)的圖元列表26,即,在本實(shí)施例中,要繪制的單個(gè)子分區(qū)專(zhuān)有的圖元列表,包括要繪制的子分區(qū)的2×2子分區(qū)集合的圖元列表,包括要繪制的子分區(qū)的4×4子分區(qū)的集合的圖元列表,以及覆蓋要繪制的整個(gè)場(chǎng)景(并因此,必定覆蓋當(dāng)前要繪制的單個(gè)子分區(qū))的8×8子分區(qū)的完整集合54的圖元列表。在本實(shí)施例中,應(yīng)用于正被繪制的子分區(qū)(區(qū)塊)的所存儲(chǔ)的圖元列表通過(guò)在“新區(qū)塊”命令中包括指向相關(guān)圖元列表的指針來(lái)指示,當(dāng)首次繪制一個(gè)子分區(qū)(區(qū)塊)時(shí),發(fā)送該“新區(qū)塊”命令。(其他方案當(dāng)然也是可能的。)然后繪制儀繼續(xù)繪制所關(guān)注的子分區(qū)(區(qū)塊)。
繪制過(guò)程的第一階段是圖元選擇單元29選擇要繪制的圖元。為此,圖元選擇單元29讀取已確定應(yīng)用于當(dāng)前正被繪制的子分區(qū)的保存的圖元列表26,即,在本實(shí)施例中,如上所述,正被繪制的單獨(dú)子分區(qū)專(zhuān)有的圖元列表26,包括正繪制的子分區(qū)的2×2子分區(qū)的集合的圖元列表,包括正繪制的子分區(qū)的4×4子分區(qū)集合的圖元列表,和覆蓋要繪制的整個(gè)場(chǎng)景的8×8子分區(qū)的完整集合54的圖元列表。圖元列表以先進(jìn)先出順序由圖元選擇單元29讀取,即,使得實(shí)際上,讀取列表中的第一個(gè)圖元,并且然后一旦已發(fā)送該圖元用于繪制,就讀取列表中的第二個(gè)圖元,等等。
為了選擇要繪制的下個(gè)圖元,圖元選擇單元29確定已分配給用于正繪制的子分區(qū)的每個(gè)圖元列表中要繪制的下個(gè)圖元的索引,比較這些索引,并選擇最低索引的圖元為要繪制的下個(gè)圖元(因?yàn)?,如上所述,圖元列表構(gòu)造單元28以升序索引圖元,即,使得對(duì)于所需的繪制順序最低編號(hào)的圖元是要繪制的下一個(gè)圖元)。
因此,圖元選擇單元29將讀入用于所關(guān)注的子分區(qū)的圖元列表中下個(gè)圖元的索引,用于2×2子分區(qū)的相關(guān)集合的圖元列表中下個(gè)圖元的索引,用于4×4子分區(qū)的合適集合的圖元列表中下個(gè)圖元的索引,等等,比較這些索引,并選擇具有最低索引的圖元用于接下來(lái)的繪制。(在任何時(shí)間,圖元選擇單元29只需要從每個(gè)圖元列表讀取一個(gè)圖元的索引(下個(gè)圖元),因?yàn)椋缟纤?,在單個(gè)圖元列表中,已經(jīng)以正確繪制順序列出圖元。)實(shí)際上,圖元可以看作在先進(jìn)先出基礎(chǔ)上,從保存的圖元列表按順序一個(gè)接一個(gè)的流向圖元選擇單元。
一旦圖元選擇單元29已選擇要繪制的圖元,它將該圖元傳遞到頂點(diǎn)選擇單元31。然后頂點(diǎn)選擇單元31從保存在存儲(chǔ)器23中的轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25檢索用于所關(guān)注圖元的頂點(diǎn)的合適的轉(zhuǎn)換幾何結(jié)構(gòu)數(shù)據(jù),并向柵格化單元33提供該數(shù)據(jù)。然后,如上所述,如本領(lǐng)公知,柵格化并繪制該圖元。
然后重復(fù)該過(guò)程,即,圖元選擇單元29再次讀取每個(gè)相關(guān)圖元列表的下個(gè)圖元的索引,選擇具有最低索引的圖元,并向頂點(diǎn)選擇單元31提供該圖元,等等。
對(duì)需要為給定的子分區(qū)繪制的所有圖元重復(fù)該過(guò)程(即,包括在適于該子分區(qū)的圖元列表26中的圖元),直到已繪制該子分區(qū)的所有圖元。
然后,繪制儀22繼續(xù)以相同形式繪制下一個(gè)子分區(qū),依此類(lèi)推,直到該場(chǎng)景的所有單獨(dú)子分區(qū)已經(jīng)繪制為止。
如本領(lǐng)域公知,一旦已繪制該場(chǎng)景的所有子分區(qū),組合繪制的子分區(qū)并提供給顯示裝置用于顯示。
圖元選擇單元29還配置為能夠識(shí)別相同圖元(即,具有相同索引的圖元)同時(shí)出現(xiàn)在當(dāng)前從中讀取圖元的多于一個(gè)圖元列表的當(dāng)前讀取位置的情況。這通過(guò)圖元選擇單元比較索引并識(shí)別是否發(fā)生匹配來(lái)完成。在這些情況下,圖元選擇單元29配置為選擇相關(guān)圖元一次進(jìn)行繪制,并且忽略該圖元隨后的重復(fù)出現(xiàn)。這避免對(duì)于給定的子分區(qū)不必要的多于一次繪制給定圖元。
如上所述,繪制儀22也包括圖元列表緩沖存儲(chǔ)器30和頂點(diǎn)數(shù)據(jù)緩沖存儲(chǔ)器32。如本領(lǐng)域公知,這些緩沖存儲(chǔ)器包括在繪制儀22上提供的能比主存儲(chǔ)器23更快由繪制儀的處理單元(并具體的分別是圖元選擇單元29和頂點(diǎn)選擇單元31)訪(fǎng)問(wèn)的本地存儲(chǔ)器。
圖元選擇單元29配置為在圖元列表緩沖存儲(chǔ)器30中保存一個(gè)或多個(gè)從主存儲(chǔ)器23讀取的圖元列表26。具體的,圖元選擇單元29優(yōu)選的從存儲(chǔ)器23檢索應(yīng)用于場(chǎng)景的一個(gè)以上子分區(qū)的集合的圖元列表并保存在圖元列表緩沖存儲(chǔ)器30中,例如,圖元選擇單元29知道它將需要場(chǎng)景的隨后子分區(qū)。因?yàn)閳D元選擇單元29必須重復(fù)從存儲(chǔ)器23檢索將繪制場(chǎng)景子分區(qū)所需要的圖元列表,這有助于避免延遲和等待時(shí)間。
頂點(diǎn)選擇單元31可以類(lèi)似的在頂點(diǎn)數(shù)據(jù)緩沖存儲(chǔ)器32緩存從存儲(chǔ)器23中的轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25檢索的頂點(diǎn)數(shù)據(jù),同樣,特別是在發(fā)現(xiàn)頂點(diǎn)數(shù)據(jù)將由圖元再次需要的情況下(例如,因?yàn)橐阎獮閷⒗L制的多子分區(qū)集合列出該圖元)。
在本實(shí)施例中,對(duì)在圖元列表緩沖存儲(chǔ)器30和頂點(diǎn)數(shù)據(jù)緩沖存儲(chǔ)器32中緩存的數(shù)據(jù)的存儲(chǔ),特別是置換,是基于該圖元列表和/或頂點(diǎn)數(shù)據(jù)所應(yīng)用(或關(guān)于其存儲(chǔ))的子分區(qū)集合分級(jí)結(jié)構(gòu)中的級(jí)別,以使,例如,應(yīng)用到該分級(jí)結(jié)構(gòu)中較高等級(jí)(即因此用于要繪制的場(chǎng)景中的更多子分區(qū))的圖元列表和頂點(diǎn)數(shù)據(jù)相比于已知應(yīng)用到例如單個(gè)子分區(qū)或幾個(gè)子分區(qū)的圖元列表和頂點(diǎn)數(shù)據(jù),更優(yōu)選緩存和保留在該緩沖存儲(chǔ)器中。
因此,例如,當(dāng)頂點(diǎn)選擇單元31從存儲(chǔ)器23中的轉(zhuǎn)換的幾何結(jié)構(gòu)數(shù)據(jù)25讀取轉(zhuǎn)換的頂點(diǎn)時(shí),將知道該頂點(diǎn)數(shù)據(jù)應(yīng)用的圖元已經(jīng)在哪個(gè)層列出,(即,該圖元來(lái)自的圖元列表),并使用該信息例如決定是否緩存該頂點(diǎn)數(shù)據(jù)(例如,如上所述,根據(jù)該頂點(diǎn)數(shù)據(jù)是否可能重用于隨后的子分區(qū))。
可以按需要選擇繪制儀22處理場(chǎng)景的子分區(qū)的順序。然而,在優(yōu)選實(shí)施例中,以莫頓(Morton)順序處理子分區(qū),因?yàn)檫@有助于例如在繪制儀22中更有效緩存圖元列表和頂點(diǎn)數(shù)據(jù)。
雖然上面特別參考為單獨(dú)子分區(qū)和子分區(qū)集合準(zhǔn)備圖元列表的操作來(lái)描述本實(shí)施例,本發(fā)明也可能并且實(shí)際上優(yōu)選以類(lèi)似形式保存可以在子分區(qū)或多個(gè)子分區(qū)基礎(chǔ)上使用的其它數(shù)據(jù)。該數(shù)據(jù)可以包括,例如繪制設(shè)置、分塊命令、剪裁參數(shù)等等。例如,如果一個(gè)命令將用于每個(gè)子分區(qū),那么將該命令放入應(yīng)用到所有子分區(qū)的列表中,或如果一個(gè)命令只用于幾個(gè)子分區(qū),那么將該命令存儲(chǔ)在分級(jí)結(jié)構(gòu)的較低等級(jí)中,這樣是有利的。優(yōu)選的,當(dāng)合適時(shí),該數(shù)據(jù)也被保存在或相關(guān)于為每個(gè)子分區(qū)或子分區(qū)集合準(zhǔn)備的相應(yīng)圖元列表,并最優(yōu)選的,該數(shù)據(jù)以類(lèi)似于上述用于圖元的形式索引。
本領(lǐng)域技術(shù)人員將能理解,如需要,可在任何基于區(qū)塊的繪制系統(tǒng)中實(shí)施本實(shí)施例(和本發(fā)明)。本實(shí)施例和本發(fā)明的各種組件和功能可以類(lèi)似的按需要實(shí)施和使用本領(lǐng)域中已知的任何合適的技術(shù)。
可以從上面看出,至少在優(yōu)選實(shí)施例中,本發(fā)明為基于區(qū)塊的繪制系統(tǒng)提供改進(jìn)的圖元列出和分類(lèi)方案,該方案特別有助于更好的控制和了解區(qū)塊列出(圖元分類(lèi)(裝箱))過(guò)程的存儲(chǔ)器使用和需求。它也提供關(guān)于場(chǎng)景中圖元的分布和布局的信息,因此,例如幫助改進(jìn)頂點(diǎn)緩存等,和幫助緩存圖元(區(qū)塊)列表以及更有效的緩存圖元數(shù)據(jù)。
至少在本發(fā)明的優(yōu)選實(shí)施例中,這通過(guò)在不同分辨率的區(qū)塊列表中列出圖元(和其它數(shù)據(jù)和命令,如果需要的話(huà))來(lái)實(shí)現(xiàn),即在單個(gè)區(qū)塊專(zhuān)有的區(qū)塊列表中,和在共同用于多個(gè)區(qū)塊的區(qū)塊列表中。
權(quán)利要求
1.一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在該圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該設(shè)備包括用于為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備用于繪制的圖元列表的裝置;以及用于為包括場(chǎng)景的一個(gè)以上子分區(qū)的子分區(qū)集合準(zhǔn)備用于繪制的圖元列表的裝置。
2.一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,在該圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為用于繪制的子分區(qū),該設(shè)備包括將要繪制的圖元包括在一個(gè)或多個(gè)要繪制的圖元列表中的裝置;其中要繪制的圖元列表包括專(zhuān)用于單個(gè)場(chǎng)景子分區(qū)的一個(gè)或多個(gè)要繪制的圖元列表,并包括各自用于一個(gè)以上場(chǎng)景子分區(qū)的一個(gè)或多個(gè)要繪制的不同圖元列表。
3.如權(quán)利要求1或2所述的設(shè)備,其中可以為包含不同數(shù)量子分區(qū)的多子分區(qū)集合準(zhǔn)備圖元列表。
4.如權(quán)利要求1-3中任何一個(gè)所述的設(shè)備,其中安排可以為其準(zhǔn)備圖元列表的所述多子分區(qū)的集合,以使得該場(chǎng)景可以由以分級(jí)方式安排的多層的子分區(qū)集合有效覆蓋。
5.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中可以為每個(gè)子分區(qū)、子分區(qū)的每個(gè)2×2組合,子分區(qū)的每個(gè)4×4組合,子分區(qū)的每個(gè)8×8組合等等準(zhǔn)備圖元列表,直到要繪制的整個(gè)場(chǎng)景的圖元列表。
6.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中為場(chǎng)景劃分的每個(gè)單獨(dú)子分區(qū)準(zhǔn)備獨(dú)立圖元列表,并為可以準(zhǔn)備圖元列表的每個(gè)一個(gè)以上子分區(qū)的不同集合準(zhǔn)備獨(dú)立圖元列表。
7.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中給定的圖元僅僅包括在所選擇數(shù)量的確定可以或應(yīng)該繪制該圖元的子分區(qū)和多子分區(qū)集合的圖元列表中。
8.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中當(dāng)圖元包括在多子分區(qū)集合的圖元列表中時(shí),該圖元不包括在該多子分區(qū)集合之中的任何一個(gè)子分區(qū)的獨(dú)立圖元列表中。
9.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中圖元不包括在由包括該圖元的圖元列表所屬的較大子分區(qū)集合完全包含的任何子分區(qū)或多子分區(qū)集合的圖元列表之中。
10.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中存在多子分區(qū)集合,該集合被安排為使得所述場(chǎng)景由多層不同尺寸的場(chǎng)景區(qū)域有效覆蓋,并且該設(shè)備還包括用于確定在該子分區(qū)集合的分級(jí)結(jié)構(gòu)的給定層,圖元需要被包括在多少不同的圖元列表中的裝置。
11.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中每個(gè)圖元被列出在不超過(guò)所選擇的閾值數(shù)量的圖元列表中。
12.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,進(jìn)一步包括用于選擇要繪制的圖元的圖元選擇單元;以及將多個(gè)圖元列表并行提供給圖元選擇單元的裝置;其中圖元選擇單元包括用于在提供給它的圖元列表之一中選擇下一個(gè)要繪制的圖元的裝置。
13.一種選擇圖元以便在圖形處理系統(tǒng)中繪制的設(shè)備,該設(shè)備包括選擇用于繪制的圖元的圖元選擇單元;以及將多個(gè)圖元列表并行提供給圖元選擇單元的裝置;其中圖元選擇單元包括用于在提供給它的圖元列表之一中選擇要繪制的圖元的裝置。
14.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,其中每個(gè)子分區(qū)已經(jīng)與用于該子分區(qū)的圖元列表集合相關(guān)聯(lián)。
15.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,包括用于向圖元分配索引的裝置。
16.如權(quán)利要求15所述的設(shè)備,包括根據(jù)分配給圖元的索引選擇要處理的圖元的裝置。
17.一種圖形處理系統(tǒng),包括列出用于繪制的圖形圖元的裝置;使每個(gè)列出的圖形圖元與圖元索引相關(guān)的裝置;使用與圖形圖元相關(guān)的索引分類(lèi)圖元的裝置。
18.一種處理用于顯示的圖形圖元組的設(shè)備,該設(shè)備包括向圖元組中的圖元分配索引的裝置;將來(lái)自圖元組的圖元分配給多個(gè)處理單元的裝置;繪制來(lái)自圖元組的圖元的裝置;以及使用分配給圖元的索引來(lái)控制繪制圖元的順序的裝置。
19.如權(quán)利要求15至18的任何一個(gè)所述的設(shè)備,包括用于確定圖元索引容量何時(shí)已用盡的裝置,并且響應(yīng)于此,從那時(shí)起總是將圖元列出在相同尺寸的子分區(qū)集合中。
20.如以上權(quán)利要求的任何一個(gè)所述的設(shè)備,包括用于在子分區(qū)和子分區(qū)集合的圖元列表中存儲(chǔ)其他形式的圖形數(shù)據(jù)和/或命令的裝置。
21.一種分類(lèi)數(shù)據(jù)和/或命令以便在圖形處理系統(tǒng)中的繪制使用的設(shè)備,在該圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該設(shè)備包括用于為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備當(dāng)繪制該子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合的裝置;以及用于為包括場(chǎng)景一個(gè)以上子分區(qū)的子分區(qū)集合準(zhǔn)備當(dāng)繪制該子分區(qū)集合的子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合的裝置。
22.一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該方法包括為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備用于繪制的圖元列表;以及為包括場(chǎng)景一個(gè)以上子分區(qū)的子分區(qū)集合準(zhǔn)備用于繪制的圖元列表。
23.一種分類(lèi)圖形圖元以便在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,要繪制的場(chǎng)景被劃分為多個(gè)用于繪制的子分區(qū),該方法包括將要繪制的圖元包括在一個(gè)或多個(gè)要繪制的圖元列表中;其中要繪制的圖元列表包括專(zhuān)用于場(chǎng)景的單個(gè)子分區(qū)的一個(gè)或多個(gè)要繪制的圖元列表,并包括各自用于場(chǎng)景的一個(gè)以上子分區(qū)的一個(gè)或多個(gè)要繪制的不同圖元列表。
24.如權(quán)利要求22或23所述的方法,包括為包含不同數(shù)目子分區(qū)的多子分區(qū)集合準(zhǔn)備圖元列表。
25.如權(quán)利要求22至24中任何一個(gè)所述的方法,其中安排可以為其準(zhǔn)備圖元列表的多子分區(qū)集合,以使所述場(chǎng)景由以分級(jí)方式安排的多層子分區(qū)集合有效覆蓋。
26.如權(quán)利要求22至25中任何一個(gè)所述的方法,包括為每個(gè)子分區(qū)、子分區(qū)的每個(gè)2×2組合、子分區(qū)的每個(gè)4×4組合、子分區(qū)的每個(gè)8×8組合等等準(zhǔn)備圖元列表,直到要繪制的整個(gè)場(chǎng)景的圖元列表。
27.如權(quán)利要求22至26中任何一個(gè)所述的方法,包括為場(chǎng)景劃分的每個(gè)單獨(dú)子分區(qū)準(zhǔn)備獨(dú)立圖元列表,并為可以準(zhǔn)備圖元列表的每個(gè)一個(gè)以上子分區(qū)的不同集合準(zhǔn)備獨(dú)立圖元列表。
28.如權(quán)利要求22至27中任何一個(gè)所述的方法,包括只將給定的圖元包括在所選擇數(shù)量的確定可以或應(yīng)該繪制該圖元的子分區(qū)和多子分區(qū)集合的圖元列表中。
29.如權(quán)利要求22至28中任何一個(gè)所述的方法,包括當(dāng)圖元包括在多子分區(qū)集合的圖元列表中時(shí),該圖元不包括在該多子分區(qū)集合之中的任何一個(gè)子分區(qū)的單獨(dú)圖元列表中。
30.如權(quán)利要求22至29中的任何一個(gè)所述的方法,包括不將圖元包括在由包括該圖元的圖元列表所屬的較大子分區(qū)集合完全包含的任何子分區(qū)或多子分區(qū)集合的圖元列表之中。
31.如權(quán)利要求22至30中任何一個(gè)所述的方法,其中存在多子分區(qū)集合,該集合被安排為使得所述場(chǎng)景由多層不同尺寸的場(chǎng)景區(qū)域有效覆蓋,并且該方法還包括確定在該子分區(qū)集合的分級(jí)結(jié)構(gòu)的給定層,圖元需要被包括在多少不同的圖元列表中。
32.如權(quán)利要求22至31中任何一個(gè)所述的方法,其中每個(gè)圖元被列出在不超過(guò)所選擇的閾值數(shù)量的圖元列表中。
33.如權(quán)利要求22至32的任何一個(gè)所述的方法,進(jìn)一步包括使用圖元選擇單元選擇用于繪制的圖元;以及向圖元選擇單元并行提供多個(gè)圖元列表;其中圖元選擇單元從向其提供的圖元列表之一中選擇下一個(gè)要繪制的圖元。
34.一種選擇圖元以便在圖形處理系統(tǒng)中繪制的方法,該方法包括將多個(gè)圖元列表并行提供給圖元選擇單元;其中圖元選擇單元從提供給它的圖元列表之一中選擇要繪制的圖元。
35.如權(quán)利要求22至34的任何一個(gè)所述的方法,包括將每個(gè)子分區(qū)與用于該子分區(qū)的圖元列表集合相關(guān)聯(lián)。
36.如權(quán)利要求22至35的任何一個(gè)所述的方法,包括向圖元分配索引。
37.如權(quán)利要求36所述的方法,包括根據(jù)分配給圖元的索引選擇要處理的圖元。
38.一種操作圖形處理系統(tǒng)的方法,包括列出用于繪制的圖形圖元;將每個(gè)列出的圖形圖元與圖元的索引相關(guān)聯(lián);以及使用與圖形圖元相關(guān)的索引分類(lèi)圖元。
39.一種處理用于顯示的圖形圖元組的方法,包括將索引分配給圖元組中的圖元;將來(lái)自該圖元組的圖元分配給多個(gè)處理單元;繪制來(lái)自圖元組的圖元;以及使用分配給圖元的索引控制其中繪制圖元的順序。
40.如權(quán)利要求36至39的任何一個(gè)所述的方法,包括確定何時(shí)圖元索引容量已經(jīng)用盡,并且響應(yīng)于此,從那時(shí)起總是在相同尺寸的子分區(qū)集合中列出圖元。
41.如權(quán)利要求22至40的任何一個(gè)所述的方法,包括在用于子分區(qū)和子分區(qū)集合的圖元列表中存儲(chǔ)其它形式的圖形數(shù)據(jù)和/或命令。
42.一種分類(lèi)數(shù)據(jù)和/或命令以便用于在圖形處理系統(tǒng)中繪制的方法,在該圖形處理系統(tǒng)中,將要繪制的場(chǎng)景劃分為多個(gè)用于繪制的子分區(qū),該方法包括為場(chǎng)景的單個(gè)子分區(qū)準(zhǔn)備當(dāng)繪制該子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合;以及為包括場(chǎng)景一個(gè)以上子分區(qū)的子分區(qū)集合準(zhǔn)備當(dāng)繪制該子分區(qū)集合的子分區(qū)時(shí)使用的數(shù)據(jù)和/或命令集合。
43.一種包括權(quán)利要求1至21的任何一個(gè)所述的設(shè)備,或依照權(quán)利要求22至42的任何一個(gè)所述的方法操作的硬件元件。
44.一種包括權(quán)利要求1至21的任何一個(gè)所述的設(shè)備,或依照權(quán)利要求22至42的任何一個(gè)所述的方法操作的3D圖形處理器或3D圖形處理平臺(tái)。
45.一種計(jì)算機(jī)程序組件,其包括當(dāng)該程序組件在數(shù)據(jù)處理裝置上運(yùn)行時(shí)執(zhí)行權(quán)利要求22至42的任何一個(gè)所述的方法的計(jì)算機(jī)軟件代碼部分。
46.一種用于基本如這里參考任何一個(gè)附圖所述地分類(lèi)用于繪制的圖形圖元的設(shè)備。
47.一種用于基本如這里參考任何一個(gè)附圖所述地選擇用于繪制的圖元的設(shè)備。
48.一種基本如這里參考任何一個(gè)附圖所述的圖形處理設(shè)備、系統(tǒng)、處理器或平臺(tái)。
49.一種用于基本如這里參考任何一個(gè)附圖所述地分類(lèi)圖形數(shù)據(jù)和/或命令的設(shè)備。
50.一種用于基本如這里參考任何一個(gè)附圖所述地分類(lèi)用于繪制的圖形圖元的方法。
51.一種用于基本如這里參考任何一個(gè)附圖所述地選擇用于繪制的圖元的方法。
52.一種操作基本如這里參考任何一個(gè)附圖所述的圖形處理設(shè)備、系統(tǒng)、處理器或平臺(tái)的方法。
53.一種用于基本如這里參考任何一個(gè)附圖所述地分類(lèi)圖形數(shù)據(jù)和/或命令的方法。
全文摘要
本發(fā)明提供了一種處理圖形的方法和設(shè)備,特別是在基于區(qū)塊的圖形處理系統(tǒng)中使用的方法和設(shè)備。在該方法中,要繪制的場(chǎng)景的子分區(qū)集合的方案的一種實(shí)施例是要繪制的場(chǎng)景50被劃分為多個(gè)子分區(qū)或區(qū)塊51。單獨(dú)子分區(qū)51也組合為不同組的多子分區(qū)集合。存在頂級(jí)層,其包括包含整個(gè)場(chǎng)景區(qū)域50的8×8子分區(qū)的集合54。然后有一組4個(gè)4×4子分區(qū)的集合53,然后有一組16個(gè)2×2的子分區(qū)集合52,并最后是包括64個(gè)單個(gè)子分區(qū)51的層。圖元列表構(gòu)造單元依次獲取每個(gè)圖元80,確定該圖元的位置,比較該圖元位置和子分區(qū)51的位置和子分區(qū)的集合52、53和54的位置,并從而將該圖元分配給子分區(qū)和子分區(qū)集合的相應(yīng)圖元列表。
文檔編號(hào)G06T15/00GK101067869SQ20061013094
公開(kāi)日2007年11月7日 申請(qǐng)日期2006年12月5日 優(yōu)先權(quán)日2005年12月5日
發(fā)明者E·索爾加德, B·約斯蘭德, J·尼斯塔德, M·布拉澤維克, F·郎廷德 申請(qǐng)人:Arm挪威股份有限公司