圖形處理系統(tǒng)中的深度轉(zhuǎn)發(fā)的制作方法
【專利說明】
【背景技術(shù)】
[0001]圖形處理系統(tǒng)可以被配置成例如從諸如游戲的應(yīng)用中接收圖形數(shù)據(jù),并且被配置成處理圖形數(shù)據(jù),以便生成表示三維(3D)場景的視圖的圖像。圖形數(shù)據(jù)可以包括限定形成3D場景中的對象(object)的圖元(primitive,例如,圖元的位置和外觀)的數(shù)據(jù)。由圖形處理系統(tǒng)執(zhí)行的典型操作包括:(i)根據(jù)限定圖元的數(shù)據(jù)紋理化和/或著色(texturing/shading)圖元;和(ii)確定圖元的哪些部分從正在從其中渲染場景的視點是可見的,并且消除確定是不可見的表面(其在本領(lǐng)域已知為“隱藏面消除(hidden surface removal)"或HSR)。在隱藏面消除操作之前,一些圖形處理系統(tǒng)(例如,立即模式渲染系統(tǒng))執(zhí)行紋理化和/或著色操作。然而,為了避免不必要地紋理化和著色在最終渲染的圖像中不可見的表面的處理成本,在紋理化和/或著色操作之前,一些其它圖形處理系統(tǒng)(例如,延遲渲染系統(tǒng))執(zhí)行隱藏面消除操作。
[0002]HSR和紋理化/著色操作由圖形處理系統(tǒng)片上執(zhí)行并且通常包括:從片外存儲器中讀取大量圖元數(shù)據(jù),并且將所渲染的像素數(shù)據(jù)寫回到該存儲器。渲染過程可以生成還可能需要被存儲的諸如深度數(shù)據(jù)和片段數(shù)據(jù)的大量中間數(shù)據(jù)。在存儲器和圖形處理系統(tǒng)之間傳遞數(shù)據(jù)可以引起延遲并且使用相當(dāng)大量的功率,因此它可以有益于片上存儲一些數(shù)據(jù),而圖形處理系統(tǒng)對圖元數(shù)據(jù)起作用。通常,沒有足夠的片上存儲器來存儲用于渲染整個圖像的所有數(shù)據(jù)。因此,一些圖形處理系統(tǒng)具有被細分(sub-divide)成多個區(qū)片(tile)的渲染空間,其中,每個區(qū)片可以分離地被處理,以使用于特定區(qū)片的數(shù)據(jù)可以被片上存儲,同時圖形處理系統(tǒng)對存在于該特定區(qū)片內(nèi)的圖元起作用。例如,用于區(qū)片的深度數(shù)據(jù)被存儲在芯片上,同時對于區(qū)片,執(zhí)行HSR處理。這幫助減少傳遞到片外存儲器和從片外存儲器中傳遞的數(shù)據(jù)量,并且當(dāng)圖形處理系統(tǒng)處理圖元數(shù)據(jù)時,減少延遲。
[0003]具有被細分成多個區(qū)片的渲染空間的系統(tǒng)可以包括分片(tiling)單元(其可以被稱為“分片加速器”,或簡稱“TA”)。分片單元處理輸入圖形數(shù)據(jù)(其包括限定待被渲染的3D場景中的圖元的數(shù)據(jù))并且執(zhí)行分片計算,從而針對圖元的每一個圖元,確定圖元存在于哪個區(qū)片中。如果圖元當(dāng)投影到渲染空間中時被確定與區(qū)片全部或部分重疊,則圖元被確定存在于區(qū)片中。
[0004]分片單元生成用于區(qū)片的區(qū)片控制流(tile control stream),由此用于區(qū)片的區(qū)片控制流包括存在于該區(qū)片中的圖元的指示符。例如用于區(qū)片的區(qū)片控制流可以包括用于區(qū)片的狀態(tài)信息、和指示被確定為存在于區(qū)片中的圖元的對象指針的列表。對象指針可以是指存儲在別處的圖元數(shù)據(jù),以使圖元可以被多于一個的區(qū)片控制流引用。也就是說,圖元數(shù)據(jù)可以與區(qū)片的控制流分離地存儲(例如,在圖元塊中),以使控制流是每個區(qū)片,而每個區(qū)片不需要存儲圖元數(shù)據(jù)。控制流和圖元數(shù)據(jù)可以統(tǒng)稱為“顯示列表”。在其它示例中,用于所指示的圖元的圖元數(shù)據(jù)可以被包括在控制流中。區(qū)片控制流被儲存,隨后被傳遞到HSR單元(其可以被稱為“圖像合成處理器”,或簡稱“ ISP” ),該HSR單元被配置成在逐區(qū)片基礎(chǔ)上對存在于區(qū)片中的圖元的片段執(zhí)行隱藏面消除。圖元的“片段(fragment)”是圖元與待被渲染的最終圖像的相應(yīng)的樣本位置重疊的部分?!皹颖疚恢谩北硎緢D形處理系統(tǒng)在其中操作以確定場景外觀的最終圖像的離散位置。例如,樣本位置可以與最終圖像的像素位置相對應(yīng),但是為了提供最終圖像的更高的準確性,最終圖像的每個像素位置可以由多于一個樣本位置的塊表不。
[0005]如現(xiàn)有技術(shù)中所已知的,HSR單元可以使用已知為“Z-緩沖”的技術(shù)針對存在于區(qū)片中的圖元的片段執(zhí)行HSR,在該技術(shù)中,在每一樣本位置處,計算區(qū)片中的每個圖元的深度值并且與先前所存儲的深度比較。圖元以順序方式被處理并且在所有圖元是不透明的簡單示例中,深度緩沖器(buffer)針對每個樣本位置存儲已經(jīng)被HSR單元處理的最接近的片段的深度,并且標(biāo)簽緩沖器針對每個樣本位置存儲在該樣本位置處具有最接近深度的圖元的標(biāo)簽(即,標(biāo)識符)。當(dāng)新圖元在HSR單元中被處理時,依照深度比較模式,圖元的片段的深度值與深度緩沖器中的深度值比較,并且在通常的深度比較模式中,如果新圖元的片段比其深度值存儲在深度緩沖器中的適當(dāng)位置處的片段更接近,則新圖元的片段的深度值存儲在深度緩沖器中并且新圖元的標(biāo)簽存儲在標(biāo)簽緩沖器中,以代替適當(dāng)位置處的任何現(xiàn)有的深度值和標(biāo)簽值。HSR單元向紋理化和著色單元發(fā)送可見的表面信息,其中片段在被發(fā)送到幀緩沖器用于顯示之前,被紋理化和/或著色。
[0006]分片單元和HSR單元的功能不同。也就是說,分片單元執(zhí)行分片計算,并且HSR單元針對隱藏面消除執(zhí)行深度測試。通常,分片單元不執(zhí)行深度測試。
[0007]上文所描述的系統(tǒng)利于用于處理不透明圖元。然而,一些圖元可以具有允許半透明和/或穿通(punch through)的對象類型。半透明或穿通可以由待被應(yīng)用到圖元的片段的紋理表示(例如,如果紋理包括RGBA值,即,紅色值、綠色值、藍色值和α值,則如由α值所表示的)。在并非圖元邊緣內(nèi)的所有樣本位置生成可見的片段的意義上講,穿通圖元包括一些“孔洞(holes)”。針對圖元內(nèi)的所有樣本位置,最初創(chuàng)建穿通片段,并且測試(其可以被稱為“α測試”)指示片段是否應(yīng)當(dāng)包括在后續(xù)處理中,或它是否應(yīng)當(dāng)被丟棄,S卩,它是在圖元中的孔洞的一部分。針對穿通圖元,更新深度緩沖器,并且僅針對通過深度測試和α測試兩者的那些片段渲染片段。因為在延遲渲染系統(tǒng)中,圖元的片段的紋理化在隱藏面消除之后發(fā)生,HSR單元在紋理化已經(jīng)應(yīng)用到片段之后,可能不能確定哪些片段是可見的。這可以產(chǎn)生從紋理化/著色單元到HSR單元的反饋回路以指示片段的α狀態(tài),以使HSR單元可以適當(dāng)?shù)馗律疃染彌_器。因為HSR單元可以處理相同片段的一些方面兩次,所以反饋回路(諸如這個)可以降低圖形處理系統(tǒng)的效率。
[0008]如果來自那些圖元的片段被不透明的片段覆蓋,則當(dāng)處理具有允許半透明和/或穿通的對象類型的圖元時,也可能發(fā)生無效。如果例如當(dāng)前在特定樣本位置處是最接近的片段的片段(“片段A”)隨后被半透明片段(“片段B”)覆蓋,則片段A的標(biāo)簽可能需要從標(biāo)簽緩沖器中沖洗(flush)出去。片段A然后由紋理化/著色單元處理并且用于片段B的標(biāo)簽存儲在標(biāo)簽緩沖器中。紋理化/著色單元可以隨后執(zhí)行片段A和B的混合操作。然而,如果片段B接著被不透明片段(“片段C”)覆蓋,則片段A和B兩者將隱藏在最終圖像中,并且對那些片段兩者執(zhí)行的處理已經(jīng)被浪費。
【發(fā)明內(nèi)容】
[0009]提供本
【發(fā)明內(nèi)容】
以便以簡化的形式介紹概念的選擇,該概念在【具體實施方式】中進一步描述如下。該
【發(fā)明內(nèi)容】
不旨在標(biāo)識所要求保護的主題的關(guān)鍵特征或必要特征,也不旨在用于限制所要求保護的主題的范圍。
[0010]提供了一種圖形處理系統(tǒng),其具有被細分成多個區(qū)片的渲染空間,該系統(tǒng)被配置成處理存在于區(qū)片中的一個或多個區(qū)片中的圖元,該系統(tǒng)包括:分片單元,其被配置成處理圖元以:(i)針對圖元的每一個圖元,確定圖元存在于區(qū)片中的哪個區(qū)片中,(ii)生成用于區(qū)片的區(qū)片控制流,其中,用于區(qū)片的區(qū)片控制流包括存在于該區(qū)片中的圖元的指示符;和隱藏面消除單元,其被配置成:(i)取得與如由所生成的用于區(qū)片的區(qū)片控制流所指示的存在于區(qū)片中的圖元有關(guān)的數(shù)據(jù),和(ii)對區(qū)片的樣本位置處的所指示的圖元的片段執(zhí)行隱藏面消除;其中,分片單元還被配置成:當(dāng)圖元的片段在分片單元中被處理時,通過對圖元的片段執(zhí)行深度測試來確定用于區(qū)片的深度信息;以及轉(zhuǎn)發(fā)所確定的深度信息以供隱藏面消除單元使用,并且其中,隱藏面消除單元被配置成在執(zhí)行所述隱藏面消除中使用所轉(zhuǎn)發(fā)的深度信息。隱藏面消除單元被配置成使用所轉(zhuǎn)發(fā)的深度信息用于在設(shè)定HSR深度緩沖器的值以供在針對區(qū)片執(zhí)行所述隱藏面消除中使用的區(qū)片。
[0011]提供了一種在圖形處理系統(tǒng)中處理圖元的方法,該圖形處理系統(tǒng)具有被細分成多個區(qū)片的渲染空間,該方法包括:在分片單元處處理圖元以:(i)針對圖元中的每一個圖元,確定圖元存在于區(qū)片中的哪個區(qū)片中,(ii)生成用于區(qū)片的區(qū)片控制流,其中,用于區(qū)片的區(qū)片控制流包括存在于該區(qū)片中的圖元的指示符;和通過以下各項在隱藏面消除單元處處理圖元:(i)取得(retrieve)與如所生成的用于區(qū)片的區(qū)片控制流所指示的存在于區(qū)片中的圖元有關(guān)的數(shù)據(jù),(ii)對區(qū)片的樣本位置處的所指示的圖元的片段執(zhí)行隱藏面消除;其中,該方法還包括:當(dāng)圖元的片段在分片單元中被處理時,通過對圖元的片段執(zhí)行深度測試來在分片單元處確定用于區(qū)片的深度信息;從分片單元中轉(zhuǎn)發(fā)所確定的深度信息以供隱藏面消除單元使用;以及在隱藏面消除單元處執(zhí)行所述隱藏面消除中使用所轉(zhuǎn)發(fā)的深度信息。
[0012]提供了一種圖形處理系統(tǒng),其被配置成處理存在于系統(tǒng)的渲染空間中的圖元,該系統(tǒng)包括第一處理單元,其被配置成在隱藏面消除之前處理圖元;和隱藏面消除單元,其被配置成對渲染空間的樣本位置處的圖元的片段執(zhí)行隱藏面消除;其中,第一處理單元還被配置成:通過對圖元的片段執(zhí)行深度測試來確定用于圖元的深度信息;以及轉(zhuǎn)發(fā)所確定的深度信息以供隱藏面消除單元使用;并且其中,隱藏面消除單元被配置成在執(zhí)行所述隱藏面消除中使用所轉(zhuǎn)發(fā)的深度信息。
[0013]提供了一種在圖形處理系統(tǒng)中處理圖元的方法,該圖形處理系統(tǒng)具有渲染空間,該方法包括:在隱藏面消除之前,在第一處理單元處處理圖元;以及通過對渲染空間的樣本位置處的圖元的片段執(zhí)行隱藏面消除來在隱藏面消除單元處處理圖元;其中,該方法還包括:通過對圖元的片段執(zhí)行深度測試來在第一處理單元處確定用于圖元的深度信息;從第一處理單元中轉(zhuǎn)發(fā)所確定的深度信息以供隱藏面消除單元使用;以及在隱藏面消除單元處執(zhí)行所述隱藏面消除中使用所轉(zhuǎn)發(fā)的深度信息。
[0014]可以提供適于當(dāng)代碼在計算機上運行時,執(zhí)行本文中所描述的方法的任一個方法的步驟的計算機可讀代碼。可以根據(jù)本文中所描述的示例的任一個示例提供用于生成圖形處理系統(tǒng)的計算機可讀代碼。計算機可讀代碼可以在計算機可讀存儲介質(zhì)上進行編碼。
[0015]對于本領(lǐng)域技術(shù)人員來說,顯而易見的是,在適當(dāng)時,可以組合上述特征,并且可以與本文中所描述的示例的各方面的任一個方面組合。
【附圖說明】
[0016]現(xiàn)在,將參照附圖對示例進行詳細描述,附圖中:
[0017]圖1示出了圖形處理系統(tǒng)的示例;
[0018]圖2表示了渲染空間的12個區(qū)片內(nèi)的兩個對象的圖元;
[0019]圖3示出了用于在圖形處理系統(tǒng)中處理圖元的方法的流程圖;
[0020]圖4示出了第一示例中的三個場景中的分片單元深度緩沖器的深度值;
[0021]圖5示出了分片單元深度緩沖器的深度值可以如何用來以保守方式確定用于粗略(coarse)深度緩沖器的深度值;
[0022]圖6是示例中的HSR單元的示意圖;
[0023]圖7示出了另一示例中的三個場景中的分片單元深度緩沖器的深度值;
[0024]圖8示出了分片單元如何處置具有不能在分片單元中進行解析的深度值的圖元;
[0025]圖9示出了分片單元如何處置深度比較模式的變化;
[0026]圖10示出了分片單元如何處置深度清除操作;
[0027]圖11示出了當(dāng)至少一個圖元具有不能在分片單元中進行解析的深度值時,分片單元如何處置深度比較模式的變化;
[0028]圖12示出了可以存儲深度值的不同存儲器位置;和
[0029]圖13示出了分片單元中和HSR單元中圖元的三個序列。
[0030]附圖圖示不同的示例。本領(lǐng)域技術(shù)人員將理解附圖中的所圖示的元件邊界(例如,框、成組的框、或其它形狀)表示邊界的一個示例。很可能在一些示例中,一個元件可以被設(shè)計成多個元件,或者多個元件可以被設(shè)計成一個元件。在所有附圖中,使用公共的附圖標(biāo)記來在適當(dāng)情況下指示相似的特征。
【具體實施方式】
[0031 ] 現(xiàn)在,僅通過示例的方式對實施例進行描述。
[0032]圖1示出了圖形處理系統(tǒng)102,其可以與存儲器103通信。該圖形處理系統(tǒng)102包括分片單元(TU)104(其可以被稱為區(qū)片加速器,或者TA)、隱藏面消除(HSR)單元106(其可以被稱為圖像合成處理器,或ISP)、紋理化/著色單元108和存儲器接口 110。存儲器103被配置成存儲數(shù)據(jù),并且包括用于存儲所渲染的圖象數(shù)據(jù)的幀緩沖器112。分片單元104包括TU深度緩沖器存儲裝置114。HSR單元106包括HSR深度緩沖器116。對于本領(lǐng)域技術(shù)人員來說,顯而易見的是,圖形處理系統(tǒng)102可以包括其它單元,但是為清楚起見,這些其它單元未在圖1中示出。分片單元104被布置成接收輸入圖形數(shù)據(jù)(其包括限定待被渲染的3D場景中的圖元的數(shù)據(jù))。分片單元104的輸出被耦合到存儲器接口 110,用于向存儲器103提供區(qū)片控制流和深度信息(如在下文中更詳細地描述的),其與在其上實現(xiàn)圖形處理系統(tǒng)102的芯片相比,可以例如是片外。HSR單元106被耦合到存儲器接口 110用于從存儲器中接收區(qū)片控制流和深度信息。HSR單元106的輸出被耦合到紋理化/著色單元108的輸入。紋理化/著色單元108還被耦合到存儲器接口 110用于從存儲器中接收紋理數(shù)據(jù)。在圖1中所示的示例中,幀緩沖器112存儲在存儲器103中并且紋理化/著色單元108的輸出被耦合到存儲器接口 110以便訪問幀緩沖器112。
[0033]圖2表示了圖形處理系統(tǒng)102的渲染空間的12個區(qū)片內(nèi)的兩個對