專利名稱:用隱藏面消除的圖形處理的制作方法
技術(shù)領(lǐng)域:
這一般涉及集成電路處理裝置的圖形處理。
背景技術(shù):
在圖形處理中,三維對(duì)象可表示為 一 系列具有三個(gè)點(diǎn)的三角形。
三個(gè)點(diǎn)可用于建立表示包含三個(gè)點(diǎn)的平面的所謂平面方程。平面方程 指明各三角形點(diǎn)相對(duì)于顯示屏幕平面的取向。
隱藏面消除或z緩沖跟蹤像素的深度,以減少對(duì)于隱藏在畫面中
其它多邊形后面的多邊形所執(zhí)行的處理。
識(shí)別和挑選多邊形的遮擋像素可呈現(xiàn)性能提高的較大可能性。
發(fā)明內(nèi)容
根據(jù)本發(fā)明一個(gè)方面,提供一種方法,包括使用一組像素中少 于所有的像素對(duì)所述組的所有像素進(jìn)行深度測(cè)試。
根據(jù)本發(fā)明另一個(gè)方面,提供一種設(shè)備,包括幀緩沖器;以及 與所述幀緩沖器耦合的圖形處理器,所述圖形處理器用于使用 一組像 素中少于所有的像素對(duì)所述組的所有像素進(jìn)行深度測(cè)試。
圖1是根據(jù)一個(gè)實(shí)施例的基于處理器的裝置的示意圖示;
圖2是根據(jù)本發(fā)明一個(gè)實(shí)施例可用的像素塊的圖示;
圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例、用于深度測(cè)試的分析的圖示;
以及
圖4是根據(jù)一個(gè)實(shí)施例的深度測(cè)試的流程圖。
具體實(shí)施例方式
參照?qǐng)D1,根據(jù)本發(fā)明的一個(gè)實(shí)施例,基于處理器的系統(tǒng)能夠進(jìn) 行高性能三維圖形處理。在一個(gè)實(shí)施例中,系統(tǒng)包括主處理器l、芯
片組核邏輯IO、圖形處理器12、幀緩沖器14、 Z緩沖器16、 HZ或 分級(jí)結(jié)構(gòu)Z緩沖器17、顯示屏幕18、鍵盤/鼠標(biāo)20和存儲(chǔ)器30。存 儲(chǔ)器30可包括任何適當(dāng)?shù)拇鎯?chǔ)器存儲(chǔ)裝置,以及在一個(gè)實(shí)施例中包 括采用隨機(jī)存取存儲(chǔ)器芯片所實(shí)現(xiàn)的主存儲(chǔ)器32、 一個(gè)或多個(gè)硬盤 驅(qū)動(dòng)器34以及例如磁盤或光盤等可移動(dòng)介質(zhì)36。
處理器1可經(jīng)由總線3與芯片組核邏輯耦合。經(jīng)由總線5與圖形 處理器12耦合的芯片組核邏輯10可經(jīng)由總線6與幀緩沖器以及Z 緩沖器16和分級(jí)結(jié)構(gòu)Z緩沖器17耦合。幀緩沖器14、 Z緩沖器16 和分級(jí)結(jié)構(gòu)Z緩沖器17經(jīng)由總線7與顯示屏幕18耦合,以及顯示屏 幕18經(jīng)由總線8與鍵盤/鼠標(biāo)20耦合。
例如音頻喇叭、話筒、操縱桿、方向盤、打印機(jī)、樂器數(shù)字接口 鍵盤、虛擬現(xiàn)實(shí)罩(hood)、活動(dòng)座位和環(huán)境等的其它用戶接口元件 可以是處理系統(tǒng)的組成部分,這里例舉幾種。
圖1所示的體系結(jié)構(gòu)是示范性的,并且僅作為根據(jù)本發(fā)明的一些 實(shí)施例可利用的許多處理體系結(jié)構(gòu)其中之一。存儲(chǔ)器30可構(gòu)成作為 有源或無源的任何裝置、包含用于指示處理器的計(jì)算機(jī)指令或者包含 計(jì)算機(jī)數(shù)據(jù)的計(jì)算機(jī)可讀介質(zhì),例如硬盤、軟盤、壓縮盤、隨機(jī)存取 存儲(chǔ)器、光存儲(chǔ)器或者任何半導(dǎo)體存儲(chǔ)器。
根據(jù)本發(fā)明的一些實(shí)施例, 一組像素中少于所有的像素可經(jīng)過深 度測(cè)試,而不是測(cè)試該組所有像素。深度測(cè)試是特定像素到顯示屏幕 的距離的測(cè)試。深度測(cè)試可用于確定被遮擋的像素。多邊形的被遮擋 的像素?zé)o需處理。遮擋像素處理的這種消除可#是高圖形性能。
參照?qǐng)D2,多個(gè)像素可編組為所說的塊。塊可包括毗鄰的多個(gè)像 素,通常至少四個(gè)像素。塊可以是矩形,但也可〗吏用其它形狀。通過 分析塊的代表像素的深度,在對(duì)于塊作為整體的許多情況下,可確定該塊是否會(huì)被遮擋。因此,可加速深度測(cè)試,因?yàn)閷?duì)每一個(gè)像素的深 度測(cè)試不一定在每種情況下進(jìn)行。同樣,在對(duì)于塊作為整體的許多情 況下,可確定該塊沒有被遮擋,因此該塊中的像素沒有被遮擋,因而 不需要測(cè)試每個(gè)像素。
因此,參照?qǐng)D2,在一個(gè)實(shí)施例中,第一組矩形排列的16個(gè)像
素38可構(gòu)成跨度O,以及第二組矩形排列的16個(gè)像素38構(gòu)成跨度1。 在這個(gè)實(shí)施例中,在被分析的塊構(gòu)成跨度0和1,其中包括32個(gè)像 素,它們?cè)谝恍┣闆r下可作為一組來分析,以便提高深度測(cè)試速度。
包括例如數(shù)據(jù)流經(jīng)過圖形處理器12的圖形流水線可提供表示三 角形的數(shù)據(jù),其中三角形又由三個(gè)點(diǎn)表示。各點(diǎn)與深度或Z值關(guān)聯(lián)。
平面方程表征三角形中的各像素的深度,其中Z為深度
Z=C0+Cx(x-Xref)+Cy(y-Yref)。
因此,平面方程定義形成三角形的像素的平面,并且定義那個(gè)平 面相對(duì)于顯示屏幕的傾斜。在一些實(shí)施例中,系數(shù)Cx和Cy、具體來 說是它們的符號(hào)用于確定在使用矩形像素陣列的塊中整個(gè)塊的最壞 情況角。最壞情況角是具有塊中的任何像素的最小和最大深度的角。
如圖2所示,在這個(gè)實(shí)施例中,X軸由左至右增加,而Y軸由上 到下增加。因此,例如,像素D具有比標(biāo)記為A、 B或C的像素更 高的X值。以及像素E具有比像素A更高的Y軸。像素H具有比像 素A更高的Y值和更高的X值。
分級(jí)結(jié)構(gòu)Z緩沖器或HZ緩沖器17(圖l)由Z緩沖器16構(gòu)成,并 且累積在一個(gè)實(shí)施例中為一個(gè)跨度的像素塊的所有先前渲染像素位 置的最小和最大值。然后,后續(xù)像素位置使它們的多邊形對(duì)照分級(jí)結(jié) 構(gòu)Z緩沖器17中的值來測(cè)試,以便查看那些多邊形是否被隱藏。如 果它們被隱藏,則它們可被剔除,從而產(chǎn)生處理節(jié)省。
當(dāng)對(duì)照分級(jí)結(jié)構(gòu)Z緩沖器中的值進(jìn)行測(cè)試時(shí),按常規(guī)在圖形處理 中使用八個(gè)不同測(cè)試。利用"少于"測(cè)試、"少于或等于"測(cè)試、"大于" 測(cè)試、"大于或等于"測(cè)試、"等于"測(cè)試、"不等于"測(cè)試、"始終通過"測(cè)試和"從不通過"測(cè)試。 一般來說,"始終通過"和"從不通過"涉及不 進(jìn)4亍任何測(cè)試,并且在本上下文中不是關(guān)注點(diǎn)。
圖3示出在一個(gè)實(shí)施例中如何使用矩形像素陣列來進(jìn)行深度測(cè) 試的示例。測(cè)試部分地基于各跨度是否為非零。如果該跨度中的至少 一個(gè)像素實(shí)際上被"點(diǎn)亮"或激活,則跨度為非零。如果該跨度中沒有 像素被點(diǎn)亮,則該跨度在深度測(cè)試期間可忽略。
測(cè)試還確定平面方程系數(shù)Cx是否大于或等于O(即為正數(shù))以及平 面方向系數(shù)Cy是否大于或等于O(即為正數(shù))。然后,在最左和最右列
中識(shí)別由跨度0和跨度1組成的塊的最小角和最大角。(本發(fā)明的實(shí) 施例中實(shí)際上可以不使用圖3所定義的列或結(jié)構(gòu),但提供它主要是為
了理解和說明本發(fā)明的實(shí)施例)。
因此,圖3中的第一水平線是任一個(gè)跨度中沒有像素被點(diǎn)亮的情 形。因此,第一線條不是本上下文中的關(guān)注點(diǎn)。
第五水平線是跨度0中沒有像素被點(diǎn)亮而跨度l中至少一個(gè)像素
被點(diǎn)亮的情形。在這種情況下,系數(shù)Cx和CY均為正數(shù)。在這種情況
下,給定X和Y如圖2所示增加的方式,則最小角為像素C,而最 大角顯然為像素H。
一旦確定了最小和最大角,則在一個(gè)實(shí)施例中,下一個(gè)步驟是對(duì) 照分級(jí)結(jié)構(gòu)Z緩沖器17中當(dāng)前存儲(chǔ)的值來分析給定組的像素的最小 和最大角。例如,如果圖形系統(tǒng)的應(yīng)用使用"少于"測(cè)試,則低于分級(jí) 結(jié)構(gòu)Z緩沖器中的最小深度值的任何深度通過,而大于最大深度的任 何深度值未通過。在這種情況下,將最小角與分級(jí)結(jié)構(gòu)Z緩沖器中的 最大值進(jìn)行比較。如果最小角大于分級(jí)結(jié)構(gòu)Z緩沖器最大值,則塊中 的每個(gè)像素大于分級(jí)結(jié)構(gòu)Z緩沖器最大值,并且塊中的像素均未通 過。然后,將在解決的塊中的最大角與分級(jí)結(jié)構(gòu)Z緩沖器最小值進(jìn)行 比較。如果聶大角的值小于分級(jí)結(jié)構(gòu)Z緩沖器最小值,則塊中的所有 像素均小于分級(jí)結(jié)構(gòu)Z緩沖器最小值,并且在這種情況下,該塊的所 有像素一組通過,而無需分析每個(gè)像素。如果這些比較均不起作用,則對(duì)于本發(fā)明的實(shí)施例是可能的節(jié)省 不適用,并且按常規(guī)將該塊中的每個(gè)像素的值對(duì)照分級(jí)結(jié)構(gòu)Z緩沖器 中的值逐個(gè)進(jìn)行比較。在這種情況下,不可實(shí)現(xiàn)時(shí)間節(jié)省,但在整體 上,由于本文所述的測(cè)試往往是成功的,所以在一些實(shí)施例中,可實(shí) 現(xiàn)明顯的時(shí)間節(jié)省。
參照?qǐng)D4,根據(jù)一個(gè)實(shí)施例,用于實(shí)現(xiàn)快速深度測(cè)試39的序列 包括序列。在一個(gè)實(shí)施例中,該序列可通過軟件來實(shí)現(xiàn)。在這種情況 下,表示序列39的軟件可存儲(chǔ)在任何適當(dāng)?shù)拇鎯?chǔ)裝置或存儲(chǔ)器中, 包括主存儲(chǔ)器32,如圖1所示。在這種情況下,軟件序列存儲(chǔ)在計(jì) 算機(jī)可執(zhí)行的計(jì)算機(jī)可讀介質(zhì)中,其中計(jì)算機(jī)包括處理器l、處理器 12或者計(jì)算機(jī)或基于處理器的系統(tǒng)的任何其它適當(dāng)處理器中的一個(gè) 或多個(gè)。
如框40所示,在一個(gè)實(shí)施例中,塊中的最小和最大像素位置使 用矩形塊來確定。在一些情況下,還可確定塊中的像素的任一個(gè)或者 組成該塊的任付跨度中的像素的任一個(gè)是否被點(diǎn)亮。如果沒有像素被 點(diǎn)亮,則可忽略該^爭(zhēng)度或塊。
然后,對(duì)照分級(jí)結(jié)構(gòu)Z緩沖器17中的最小和最大值來測(cè)試表示 塊的最小和最大值的所選像素位置,如框42所示。所進(jìn)行的準(zhǔn)確測(cè) 試耳又決于適用的應(yīng)用所實(shí)現(xiàn)的系統(tǒng)的類型。在一個(gè)示例中,可利用" 少于"測(cè)試,但是也可利用其它測(cè)試。在這類情況下,能夠根據(jù)一組 像素的最小和最大值來推斷是否所有像素會(huì)通過或者未通過深度測(cè) 試。
如圖4所示,在框44,檢查確定作為整體的塊是通過還是未通 過。如果通過,則進(jìn)行該塊的處理,以及可獲取下一個(gè)塊并且重復(fù)進(jìn) 行處理。如果該塊既不是通過或也不是未通過,則進(jìn)行常規(guī)深度測(cè)試 (框46),從而逐個(gè)像素地估計(jì)塊的各像素。在這種情況下,將塊作為 整體來處理并且消除對(duì)測(cè)試塊中的每個(gè)像素的需要的可能性不是可 能的。塊的大小和組成跨度經(jīng)受相當(dāng)大的變化,但是一般來說,在任何 分析中^f吏用至少四個(gè)像素看來是有意義的。另外,跨度的數(shù)量可自2 開始改變,并且可以是一個(gè)跨度以上的任何數(shù)量??缍戎械囊恍┫袼?br>
未點(diǎn)亮是無關(guān)緊要的。另夕卜,在一個(gè)實(shí)施例中,可并行分析兩個(gè)集合 的八個(gè)^f象素。
本文所述的圖形處理:技術(shù)可通過各種石更件體系結(jié)構(gòu)來實(shí)現(xiàn)。例 如,圖形功能性可集成在芯片組中。備選地,可使用分立圖形處理器。 作為又一個(gè)實(shí)施例,圖形功能可通過包括多核處理器的通用處理器來 實(shí)現(xiàn)。
本說明書中提到"一個(gè)實(shí)施例"或"實(shí)施例"表示結(jié)合該實(shí)施例所 述的具體特征、結(jié)構(gòu)或特性包含在本發(fā)明所包含的至少 一個(gè)實(shí)現(xiàn)中。 因此,詞語"一個(gè)實(shí)施例"或"在一個(gè)實(shí)施例中"的出現(xiàn)不一定都表示同 一個(gè)實(shí)施例。此外,具體特征、結(jié)構(gòu)或特性可通過與所示具體實(shí)施例 不同的其它適當(dāng)形式來創(chuàng)立,并且所有這類形式均可包含在本申請(qǐng)的 權(quán)利要求書中。
雖然針對(duì)有限數(shù)量的實(shí)施例描述了本發(fā)明,但是本領(lǐng)域的技術(shù)人 員將會(huì)從其中知道大量修改和變更。所附權(quán)利要求書意在涵蓋落入本
發(fā)明的真實(shí)精神和范圍之內(nèi)的所有這類修改和變更。
權(quán)利要求
1.一種方法,包括使用一組像素中少于所有的像素對(duì)所述組的所有像素進(jìn)行深度測(cè)試。
2. 如權(quán)利要求1所述的方法,包括使用平面方程的系數(shù)來預(yù) 測(cè)所述一組像素中的最壞情況像素。
3. 如權(quán)利要求2所述的方法,包括使用所述平面方程的系數(shù) 來確定所述一組像素中的兩個(gè)最壞情況像素。
4. 如權(quán)利要求3所述的方法,其中,所述一組像素是矩形像素 陣列,所述最壞情況像素對(duì)應(yīng)于所述矩形像素陣列的角。
5. 如權(quán)利要求4所述的方法,包括使用兩個(gè)矩形像素跨度來 確定所述最壞情況。
6. 如權(quán)利要求2所述的方法,包括確定所述組中是否至少一 個(gè)像素被點(diǎn)亮。
7. 如權(quán)利要求3所述的方法,包括將所述組中最小和最大深 度值像素識(shí)別為所述最壞情況像素。
8. 如權(quán)利要求7所述的方法,包括將所述一組像素中所述最 小和最大深度值與分級(jí)結(jié)構(gòu)Z緩沖器中存儲(chǔ)的最小和最大值進(jìn)行比 較。
9. 如權(quán)利要求8所述的方法,包括對(duì)至少兩個(gè)像素塊并行進(jìn) 行深度測(cè)試。
10. —種設(shè)備,包括 幀緩沖器;以及與所述幀緩沖器耦合的圖形處理器,所述圖形處理器用于使用一 組像素中少于所有的像素對(duì)所述組的所有像素進(jìn)行深度測(cè)試。
11. 如權(quán)利要求10所述的設(shè)備,所述圖形處理器用于使用平面 方程的系數(shù)來預(yù)測(cè)所述一組像素中的最壞情況像素。
12. 如權(quán)利要求11所述的設(shè)備,所述處理器用于使用所述平面 方程的系數(shù)來確定所述一組像素中的兩個(gè)最壞情況像素。
13. 如權(quán)利要求12所述的設(shè)備,所述處理器用于使用矩形像素 陣列中的一組像素,以及所述最壞情況像素對(duì)應(yīng)于所述矩形像素陣列 的角。
14. 如權(quán)利要求13所述的設(shè)備,所述處理器用于使用兩個(gè)矩形 像素跨度來確定所述最壞情況。
15. 如權(quán)利要求10所述的設(shè)備,所述處理器用于確定是否所述 組的至少 一個(gè)^^素;f皮點(diǎn)亮。
16. 如權(quán)利要求12所述的設(shè)備,所述處理器用于將所述組的最 小和最大深度值像素識(shí)別為所述最壞情況像素。
17. 如權(quán)利要求16所述的設(shè)備,包括與所述圖形處理器耦合 的分級(jí)結(jié)構(gòu)Z緩沖器,所述圖形處理器用于將一組像素中最小和最大 深度值與所述分級(jí)結(jié)構(gòu)Z緩沖器中存儲(chǔ)的最小和最大值進(jìn)行比較。
18. 如權(quán)利要求17所述的設(shè)備,所述設(shè)備用于對(duì)至少兩個(gè)像素 塊并行進(jìn)行深度測(cè)試。
19. 如權(quán)利要求10所述的設(shè)備,其中,所述幀緩沖器包括分級(jí) 結(jié)構(gòu)Z緩沖器。
20. 如權(quán)利要求10所述的設(shè)備,其中,所述圖形處理器用于使 用矩陣陣列中的一組像素,并且識(shí)別所述矩形陣列中具有最大和最小 深度值的角像素。
全文摘要
本發(fā)明為用隱藏面消除的圖形處理。圖形處理中的隱藏面消除的快速深度測(cè)試可通過對(duì)一組像素的代表像素進(jìn)行深度測(cè)試來實(shí)現(xiàn)。在一個(gè)實(shí)施例中,可識(shí)別一組像素的最壞情況像素。然后可將最壞情況像素與分級(jí)結(jié)構(gòu)Z緩沖器中的最壞情況值進(jìn)行比較。根據(jù)結(jié)果,該組像素的整個(gè)集合可通過或者未通過深度測(cè)試。因此,在一些情況下,沒有必要對(duì)每個(gè)像素進(jìn)行深度測(cè)試。
文檔編號(hào)G06T15/40GK101620743SQ20091015942
公開日2010年1月6日 申請(qǐng)日期2009年6月30日 優(yōu)先權(quán)日2008年6月30日
發(fā)明者R·法雷爾 申請(qǐng)人:英特爾公司