亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

在圖形處理系統(tǒng)中對(duì)基元進(jìn)行圖塊化的制作方法

文檔序號(hào):10697921閱讀:229來(lái)源:國(guó)知局
在圖形處理系統(tǒng)中對(duì)基元進(jìn)行圖塊化的制作方法
【專利摘要】本公開(kāi)涉及在圖形處理系統(tǒng)中對(duì)基元進(jìn)行圖塊化。在基于圖塊的圖形處理系統(tǒng)中,圖塊化單元確定基元處于渲染空間的哪些圖塊中,使得圖塊中的基元可以被渲染。確定針對(duì)基元的邊界框。針對(duì)在邊界框中的圖塊的線之間的每個(gè)圖塊邊界,圖塊邊界與基元的邊緣的交叉點(diǎn)被確定并被用于確定基元處于邊界框中的圖塊中的哪些圖塊中。以這種方式,可以在不執(zhí)行針對(duì)基元的邊界框中的所有圖塊的圖塊化計(jì)算的情況下實(shí)施圖塊化過(guò)程。減少圖塊化計(jì)算的數(shù)目可以幫助(在速度和功耗方面)改善用于渲染基元的圖形處理系統(tǒng)的效率。
【專利說(shuō)明】
在圖形處理系統(tǒng)中對(duì)基元進(jìn)行圖塊化
技術(shù)領(lǐng)域
[0001]本公開(kāi)涉及在圖形處理系統(tǒng)中對(duì)基元進(jìn)行圖塊化。
【背景技術(shù)】
[0002]圖形處理系統(tǒng)被用于處理圖形數(shù)據(jù)。例如,運(yùn)行在計(jì)算系統(tǒng)上的應(yīng)用可能需要渲染三維(3D)場(chǎng)景的圖像以用于顯示給用戶。應(yīng)用可以將圖形數(shù)據(jù)發(fā)送到圖形處理系統(tǒng)以被渲染,其中圖形數(shù)據(jù)描述要被渲染的多個(gè)基元。如本領(lǐng)域中已知的,基元通常是凸多邊形,諸如三角形或凸四邊形,其中基元通常具有其由其頂點(diǎn)的位置限定的在圖形處理系統(tǒng)的渲染空間中的位置,并且可以具有其由諸如顏色或紋理屬性的其他屬性限定的外觀。場(chǎng)景中的對(duì)象可以由一個(gè)或多個(gè)基元表示。隨著圖形處理系統(tǒng)發(fā)展,它們渲染復(fù)雜的圖像的能力改善,并且因此應(yīng)用利用這個(gè)并向圖形處理系統(tǒng)提供更復(fù)雜的圖像以供渲染。這意味著圖像中的基元的數(shù)目?jī)A向于增加,因此圖形處理系統(tǒng)高效地處理基元的能力變得更重要。
[0003]改善圖形處理系統(tǒng)的效率的一個(gè)已知方式是要以基于圖塊的方式渲染圖像。以這種方式,基元要被渲染到其中的渲染空間被劃分成多個(gè)圖塊,圖塊之后可以彼此獨(dú)立地被渲染。為了渲染基元,渲染單元使用存儲(chǔ)器來(lái)存儲(chǔ)針對(duì)不同樣本位置的中間結(jié)果(例如深度值和基元標(biāo)識(shí)符等)。如果渲染單元一次在一個(gè)圖塊上進(jìn)行操作,則這一存儲(chǔ)器中的大部分(或全部)可以位于“芯片上”,即位于圖形處理單元(GPU)上,這在整個(gè)渲染空間同時(shí)被渲染時(shí)可能是不可能的。因此,在基于圖塊的圖形系統(tǒng)中,在GHJ與芯片外存儲(chǔ)器(即其可以被稱為“系統(tǒng)存儲(chǔ)器”)之間的讀操作和寫操作的數(shù)目通常相較于非基于圖塊的圖形系統(tǒng)得到減少。由于在GPU與系統(tǒng)存儲(chǔ)器之間的讀操作和寫操作通常非常慢并且使用大量功率(相較于在GPU內(nèi)執(zhí)行的操作),基于圖塊的圖形系統(tǒng)比非基于圖塊的圖形系統(tǒng)常常是更高效的(在功率和速度方面)。基于圖塊的圖形系統(tǒng)包括用于對(duì)基元進(jìn)行圖塊化的圖塊化單元。也就是說(shuō),圖塊化單元針對(duì)基元確定基元處于渲染空間的多個(gè)圖塊中的哪些圖塊中。之后,當(dāng)渲染單元渲染圖塊時(shí),可以給出指示哪些基元應(yīng)當(dāng)被用于渲染圖塊的信息。
[0004]例如,圖1示出了可以被用于渲染3D場(chǎng)景的圖像的基于圖塊的圖形處理系統(tǒng)100的一些元件。圖形處理系統(tǒng)100包括圖形處理單元(GPU)102和存儲(chǔ)器的兩個(gè)部分1044^1042。要指出,存儲(chǔ)器的兩個(gè)部分104dP1042可以是或可以不是相同物理存儲(chǔ)器的部分,并且存儲(chǔ)器104jP1042兩者可以位于“芯片外”,即不在與GPU 102相同的芯片上。在存儲(chǔ)器(104jP1042)與GPU 102之間的通信可以通過(guò)系統(tǒng)100中的通信總線進(jìn)行。
[0005]GPU 102包括預(yù)處理模塊106、圖塊化單元108和渲染單元110。圖塊化單元108包括處理邏輯112和數(shù)據(jù)存儲(chǔ)114,并且渲染單元110包括隱藏面消除(HSR)模塊116和紋理化/陰影化模塊118。圖像處理系統(tǒng)100被布置使得在預(yù)處理模塊106處接收描述由應(yīng)用提供的基元的序列的圖形數(shù)據(jù)。預(yù)處理模塊106執(zhí)行諸如包括剪裁和剔除的幾何處理的功能,以消除未落入可見(jiàn)視圖中的基元。預(yù)處理模塊106還可以將基元投射到屏幕空間中。預(yù)處理模塊106將基元輸出到圖塊化單元108。
[0006]圖塊化單元108從預(yù)處理模塊106接收基元,并確定基元中的哪些基元存在于圖形處理系統(tǒng)100的渲染空間的圖塊中的每個(gè)圖塊內(nèi)?;梢蕴幱阡秩究臻g的圖塊中的一個(gè)或多個(gè)圖塊中。圖塊化單元108通過(guò)創(chuàng)建針對(duì)圖塊的顯示列表來(lái)將基元分配到渲染空間的圖塊,其中針對(duì)圖塊的顯示列表包括存在于圖塊中的基元的指示(即基元ID)。顯示列表和基元從圖塊化單元108被輸出并被存儲(chǔ)在存儲(chǔ)器10屯中。渲染單元從存儲(chǔ)器KM1提取針對(duì)圖塊的顯示列表和與該圖塊相關(guān)的基元,并且HSR模塊116執(zhí)行隱藏面消除以由此消除隱藏在場(chǎng)景中的基元的碎片。剩余碎片被傳遞到紋理化/陰影化模塊118,其執(zhí)行對(duì)碎片的紋理化和/或陰影化以確定經(jīng)渲染的圖像的像素顏色值,其可以被傳遞到存儲(chǔ)器1042以存儲(chǔ)在幀緩沖中。渲染單元110處理圖塊中的每個(gè)圖塊中的基元,并且當(dāng)整幅圖像已經(jīng)被渲染并被存儲(chǔ)在存儲(chǔ)器1042中時(shí),圖像可以從圖形處理系統(tǒng)100被輸出并且例如被顯示在顯示器上。在圖1中示出的示例中,基于圖塊的圖形處理系統(tǒng)100是延遲渲染系統(tǒng),意味著渲染單元110在執(zhí)行對(duì)基元碎片的紋理化和/或陰影化之前執(zhí)行對(duì)基元碎片的隱藏面消除以便渲染場(chǎng)景。然而,在其他示例中,圖形處理系統(tǒng)可以不是延遲渲染系統(tǒng),使得在對(duì)基元執(zhí)行隱藏面消除之前對(duì)基元碎片執(zhí)行紋理化和/或陰影化。
[0007]圖2示出了渲染空間202的示例,渲染空間202已經(jīng)被劃分成圖塊204的8x12陣列,其中第m行和第η列中的圖塊被稱為204mn?;?06被圖示。圖塊化單元108操作為確定基元206處于圖塊204中的哪些圖塊中。在基元206與圖塊204至少部分地重疊的情況下,基元206“處于”圖塊204中。圖塊化單元108通過(guò)找到基元206的三個(gè)頂點(diǎn)的最小和最大X和y坐標(biāo)并從那些坐標(biāo)形成框208來(lái)確定邊界框208。圖塊化單元108可以由此確定基元206沒(méi)有處于未在邊界框208中的圖塊204中的任何圖塊中。在圖塊204與邊界框208至少部分地重疊的情況下,圖塊204“處于”邊界框208中。在一些示例中,邊界框可以以圖塊分辨率來(lái)確定,據(jù)此邊界框的大小可以增加使得邊界框的邊緣落在圖塊邊界上。在圖2中,有點(diǎn)的圖塊(即渲染空間202的圖塊的頂部行和底部行、圖塊的第一列和最后兩列)在邊界框208外部,并且因此在此基礎(chǔ)上,圖塊化單元108可以確定基元206沒(méi)有處于那些圖塊中。在非常簡(jiǎn)單的實(shí)施方式中,圖塊化單元108可以簡(jiǎn)單地指示基元處于邊界框208中的所有圖塊中。然而,這意味著基元被指示為處于其實(shí)際上沒(méi)有處于其中的一些圖塊中。當(dāng)從存儲(chǔ)器KM1讀取基元并且針對(duì)它們?cè)谄渲胁豢梢?jiàn)的圖塊處理基元時(shí),由于在存儲(chǔ)器KM1中對(duì)不必要的基元和/或基元ID的存儲(chǔ)和渲染單元110中的低效率,這可以導(dǎo)致附加的存儲(chǔ)器消耗。因此,通常優(yōu)選圖塊化單元108確定基元處于邊界框208中的圖塊中的哪些圖塊中。
[0008]針對(duì)邊界框208中的每個(gè)圖塊(例如,圖2中的白色圖塊中的每個(gè)白色圖塊),可以執(zhí)行圖塊化計(jì)算以確定基元206是否處于圖塊中。例如,用于確定基元206是否處于圖塊204中的圖塊化計(jì)算可以包括針對(duì)基元的每個(gè)邊緣的計(jì)算。例如,如圖3所示,表示限定基元206的邊緣的邊緣線(302^3022和3023)的方程使用基元206的頂點(diǎn)(304^3042和3043)的位置來(lái)確定。之后針對(duì)每個(gè)邊緣線302,可以執(zhí)行測(cè)試,以通過(guò)將圖塊中的測(cè)試點(diǎn)的位置與邊緣線302的方程進(jìn)行比較,來(lái)確定圖塊204是在相應(yīng)的邊緣線302內(nèi)部還是外部。圖塊中的測(cè)試點(diǎn)可以針對(duì)相對(duì)于不同邊緣的測(cè)試是不同的,即測(cè)試點(diǎn)可以是邊緣特定的。例如,針對(duì)圖塊是否在邊緣線302!內(nèi)部的測(cè)試,測(cè)試點(diǎn)處于圖塊的左下方;針對(duì)圖塊是否在邊緣線3022內(nèi)部的測(cè)試,測(cè)試點(diǎn)處于圖塊的左上方;并且針對(duì)圖塊是否在邊緣線3023內(nèi)部的測(cè)試,測(cè)試點(diǎn)處于圖塊的右下方。如果確定圖塊在所有邊緣線302內(nèi)部,則確定基元處于該圖塊中。然而,如果確定圖塊在邊緣線302中的任何邊緣線外部,則確定基元沒(méi)有處于該圖塊中。
[0009]可以針對(duì)邊界框208中的圖塊中的每個(gè)圖塊執(zhí)行圖塊化計(jì)算,以便確定基元是否處于相應(yīng)的圖塊中。針對(duì)基元的每個(gè)邊緣,并且針對(duì)邊界框中的每個(gè)圖塊,圖塊中的邊緣特定測(cè)試點(diǎn)的位置與恰當(dāng)?shù)倪吘壘€的方程的比較通常涉及執(zhí)行一個(gè)或多個(gè)浮點(diǎn)運(yùn)算。浮點(diǎn)運(yùn)算執(zhí)行起來(lái)代價(jià)高(在時(shí)間和功耗方面)。這可能造成問(wèn)題,特別是由于圖像中的基元的數(shù)目增加的傾向,因?yàn)樵趫D塊化過(guò)程中涉及的浮點(diǎn)運(yùn)算的數(shù)目可能變得足夠大以顯著地不利地影響圖形處理系統(tǒng)100的性能。因此,通常將有益的是,減少在圖塊化過(guò)程中消耗的時(shí)間和功率。

【發(fā)明內(nèi)容】

[0010]提供本
【發(fā)明內(nèi)容】
從而以簡(jiǎn)化的形式介紹下面在【具體實(shí)施方式】中進(jìn)一步描述的概念選擇。本
【發(fā)明內(nèi)容】
不旨在標(biāo)識(shí)要求保護(hù)的主題的關(guān)鍵特征或必要特征,也不旨在用于限制要求保護(hù)的主題的范圍。
[0011]本文中描述了其中可以相較于在以上的【背景技術(shù)】部分中描述的現(xiàn)有技術(shù)示例減少用于對(duì)基元進(jìn)行圖塊化執(zhí)行的圖塊化計(jì)算(例如,涉及浮點(diǎn)運(yùn)算)的數(shù)目的示例。這可以幫助(例如在速度和功率方面)改善用于渲染基元的圖形處理系統(tǒng)的效率。
[0012]本文中描述了在圖形處理系統(tǒng)中處理基元的方法,方法包括對(duì)基元進(jìn)行圖塊化以確定基元處于渲染空間的多個(gè)圖塊中的哪些圖塊中,所述對(duì)基元進(jìn)行圖塊化包括:確定針對(duì)基元的邊界框;針對(duì)在邊界框中的圖塊的線之間的至少一個(gè)圖塊邊界中的每個(gè)圖塊邊界,確定圖塊邊界與基元的邊緣的交叉點(diǎn);以及使用所確定的交叉點(diǎn)來(lái)確定基元處于邊界框中的圖塊中的哪些圖塊中。
[0013]本文中描述了圖形處理系統(tǒng),其包括用于對(duì)基元進(jìn)行圖塊化以確定基元處于渲染空間的多個(gè)圖塊中的哪些圖塊中的圖塊化單元,圖塊化單元被配置為:確定針對(duì)基元的邊界框;針對(duì)在邊界框中的圖塊的線之間的至少一個(gè)圖塊邊界中的每個(gè)圖塊邊界,確定圖塊邊界與基元的邊緣的交叉點(diǎn);以及使用所確定的交叉點(diǎn)來(lái)確定基元處于邊界框中的圖塊中的哪些圖塊中。
[0014]可以提供計(jì)算機(jī)可讀代碼,當(dāng)代碼運(yùn)行在計(jì)算機(jī)上時(shí)計(jì)算機(jī)可讀代碼適于執(zhí)行本文中描述的示例中的任何示例的方法的步驟。另外,可以提供計(jì)算機(jī)可讀代碼,用于生成根據(jù)本文中描述的示例中的任何示例的圖形處理系統(tǒng)。計(jì)算機(jī)可讀代碼可以被編碼在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)上。
[0015]如對(duì)于技術(shù)人員而言將顯而易見(jiàn)的,以上特征可以在適當(dāng)?shù)那闆r下被組合,并且可以與本文中描述的示例的方面中的任何方面進(jìn)行組合。
【附圖說(shuō)明】
[0016]現(xiàn)在將參考附圖詳細(xì)描述示例,在附圖中:
[0017]圖1是圖形處理系統(tǒng)的不意圖;
[0018]圖2示出渲染空間的圖塊中的基元;
[0019]圖3圖示限定基元的邊緣的邊緣線;
[0020]圖4a和4b示出了圖示在圖形處理系統(tǒng)中處理基元的第一方法的流程圖;
[0021]圖5a示出了渲染空間的單個(gè)圖塊中的基元的示例;
[0022]圖5b示出了渲染空間的圖塊的行中的基元的示例;
[0023]圖5c示出了針對(duì)其邊界框已經(jīng)被剪裁到渲染空間的邊緣的三個(gè)基元;
[0024]圖6示出了渲染空間的圖塊的2x2方形的三個(gè)圖塊中的基元;
[0025]圖7a示出了渲染空間的圖塊的2x8矩形中的基元;
[0026]圖7b示出了延伸到包括圖塊的4x8陣列的渲染空間的邊緣以外的基元;
[0027]圖8示出了圖塊中的針對(duì)相應(yīng)的邊緣定向的邊緣特定測(cè)試點(diǎn);
[0028]圖9示出了渲染空間的圖塊的9x14矩形中的一些圖塊中的基元的示例;
[0029]圖10示出了圖示在圖形處理系統(tǒng)中處理基元的第二方法的流程圖;
[0030]圖1la到Ild圖示了第二方法的圖塊化過(guò)程的四個(gè)不同階段;并且
[0031]圖12是計(jì)算機(jī)系統(tǒng)的不意圖。
[0032]附圖圖示了各種示例。技術(shù)人員將認(rèn)識(shí)到附圖中的圖示的元件邊界(例如框、框的組或者其他形狀)表示邊界的一個(gè)示例??梢缘氖?,在一些示例中,一個(gè)元件可以被設(shè)計(jì)為多個(gè)元件,或者多個(gè)元件可以被設(shè)計(jì)為一個(gè)元件。在適當(dāng)?shù)那闆r下,貫穿附圖使用共同的附圖標(biāo)記來(lái)指示相似的特征。
【具體實(shí)施方式】
[0033]現(xiàn)在將僅通過(guò)示例的方式來(lái)描述實(shí)施例。
[0034]圖1中示出的圖形處理系統(tǒng)100可以被用于實(shí)施本文中描述的示例的方法。如以上所描述的,圖形處理系統(tǒng)100是基于圖塊的延遲渲染圖形處理系統(tǒng),其包括GPU 102和存儲(chǔ)器的兩個(gè)部分104jP1042。如以上所提到的,存儲(chǔ)器的兩個(gè)部分104jP1042可以是或可以不是相同物理存儲(chǔ)器的部分,并且存儲(chǔ)器104jP1042兩者可以位于“芯片外”,即不在與GPU102相同的芯片上。在存儲(chǔ)器(104dP1042)與GPU 102之間的通信可以通過(guò)系統(tǒng)100中的通信總線進(jìn)行。GPU102包括預(yù)處理模塊106、圖塊化單元108和渲染單元110。圖塊化單元108包括處理邏輯112和數(shù)據(jù)存儲(chǔ)114,并且渲染單元110包括隱藏面消除(HSR)模塊116和紋理化/陰影化模塊118。
[0035]在操作時(shí),圖形處理系統(tǒng)100(例如從應(yīng)用)接收描述基元的序列的圖形數(shù)據(jù)。預(yù)處理模塊106執(zhí)行諸如包括剪裁和剔除的幾何處理的功能,以消除未落入可見(jiàn)視圖中的基元。預(yù)處理模塊106還可以將基元投射到屏幕空間中。預(yù)處理模塊106將基元輸出到圖塊化單元108。
[0036]參考圖4a和4b中示出的流程圖,描述了圖形處理系統(tǒng)100可以如何處理基元的示例。不是針對(duì)基元的邊界框中的每個(gè)圖塊執(zhí)行圖塊化計(jì)算,可以針對(duì)圖塊的子集執(zhí)行圖塊化測(cè)試。之后針對(duì)圖塊的子集的圖塊化測(cè)試的結(jié)果可以被用于確定基元是否處于被定位在由子集的圖塊中的兩個(gè)或更多個(gè)圖塊界定的區(qū)域內(nèi)的其他圖塊中。要指出,“其他圖塊”沒(méi)有處于針對(duì)其執(zhí)行圖塊化測(cè)試的圖塊的子集中。以這種方式,可以在不執(zhí)行針對(duì)基元的邊界框中的所有圖塊的圖塊化計(jì)算的情況下實(shí)施圖塊化過(guò)程。減少圖塊化計(jì)算的數(shù)目可以幫助(在速度和功耗方面)改善用于渲染基元的圖形處理系統(tǒng)的效率。
[0037]在步驟S402中,圖塊化單元108從預(yù)處理模塊106接收基元。參考圖4a和4b中示出的流程圖詳細(xì)描述圖塊化單元108的操作,但是概括地說(shuō)圖塊化單元108確定基元中的哪些基元存在于圖形處理系統(tǒng)100的渲染空間的圖塊中的每個(gè)圖塊內(nèi)。圖塊化單元108的處理邏輯112執(zhí)行本文中描述的圖塊化單元108的操作,并且數(shù)據(jù)存儲(chǔ)114存儲(chǔ)圖塊化過(guò)程的中間結(jié)果的數(shù)據(jù),諸如圖塊化計(jì)算的結(jié)果和部分填充的顯示列表。處理邏輯112可以被實(shí)施在被專門設(shè)計(jì)用于執(zhí)行圖塊化單元108的操作的專用硬件中。備選地,處理邏輯112可以通過(guò)在處理器上執(zhí)行軟件來(lái)實(shí)施,其中軟件被編寫使得當(dāng)其被執(zhí)行時(shí)其使處理器執(zhí)行圖塊化單元108的操作。
[0038]圖塊化單元108考慮第一基元。在步驟S404中,確定針對(duì)基元的邊界框。在本文中詳細(xì)描述的示例中,邊界框是軸對(duì)齊的邊界框,即它們與渲染空間的圖塊的網(wǎng)格的軸對(duì)齊;但是在其他示例中,邊界框可以不是軸對(duì)齊的,即它們可以相對(duì)于圖塊的網(wǎng)格成角度。如果基元延伸到渲染空間的邊緣以外,則邊界框被剪裁使得其不延伸到渲染空間的邊緣以外。例如,邊界框可以被剪裁使得其具有在渲染空間的邊緣上的邊緣。邊界框可以以圖塊的分辨率來(lái)確定,使得邊界框的邊緣處于圖塊邊界上(因?yàn)樵谶@些示例中,邊界框是軸對(duì)齊的)。如果是這種情況,則邊界框的邊緣被向外延伸到下一圖塊邊界,即使較近的圖塊邊界可以通過(guò)將邊界框邊緣向內(nèi)引入來(lái)找到。以這種方式,邊界框被保守地確定使得其包括基元位于其中的所有圖塊。備選地,邊界框可以以比圖塊分辨率更精細(xì)的分辨率來(lái)確定,例如圖2中示出的邊界框208不是以圖塊分辨率。在這些示例中,在圖塊與邊界框至少部分地重疊的情況下,圖塊被確定為在邊界框中。
[0039]在步驟S406中,圖塊化單元108確定邊界框是否在X方向和y方向兩者上延伸在多于一個(gè)圖塊上。如果不是這樣的情況(即如果邊界框在X方向和y方向中的任一者或兩者上延伸在僅僅一個(gè)圖塊上),則除非其是例外情況(例如下面描述的例外情況之一),基元將處于邊界框中的所有圖塊中。例如,圖5a示出位于只一個(gè)單個(gè)圖塊502中的基元504的示例。在渲染空間中存在未示出在圖5a中的其他圖塊,但是基元504與那些其他圖塊不重疊。在這種情況下,圖塊502是邊界框中的僅有圖塊,因此邊界框沒(méi)有在X方向或y方向上延伸在多于一個(gè)圖塊上。顯而易見(jiàn),基元504處于圖塊502中并且沒(méi)有處于渲染空間的其他圖塊中。因此,在這種情況下,為了確定基元504處于哪個(gè)(哪些)圖塊中,圖塊化單元108不需要執(zhí)行涉及將基元504的邊緣線與圖塊中的測(cè)試點(diǎn)進(jìn)行比較的浮點(diǎn)運(yùn)算的任何圖塊化計(jì)算。因此,針對(duì)基元504的圖塊化過(guò)程可以非常高效地被執(zhí)行。
[0040]類似地,圖5b示出基元508的示例,基元508位于圖塊506^506^5063和5064的行中。在渲染空間中存在未示出在圖5b中的其他圖塊,但是基元508與那些其他圖塊不重疊。針對(duì)基元508的邊界框在X方向上延伸在四個(gè)圖塊上,但是在y方向上沒(méi)有延伸在多于一個(gè)圖塊上。在這種情況下,圖塊506!、5062、5063和5064是邊界框中的僅有圖塊,并且顯而易見(jiàn),基元508處于圖塊506^506^5063和5064中,但是沒(méi)有處于渲染空間的其他圖塊中。因此,在這種情況下,為了確定基元508處于哪個(gè)(哪些)圖塊中,圖塊化單元108不需要執(zhí)行涉及將基元508的邊緣線與圖塊中的測(cè)試點(diǎn)進(jìn)行比較的浮點(diǎn)運(yùn)算的任何圖塊化計(jì)算。因此,針對(duì)基元508的圖塊化過(guò)程可以非常高效地被執(zhí)行。
[0041]如果針對(duì)基元的邊界框沒(méi)有在X方向和y方向兩者上延伸在多于一個(gè)圖塊上,則方法從步驟S406傳遞到步驟S408,在步驟S408中確定邊界框是否是例外情況。圖5a和5b中示出的示例不是例外情況。在如下情況時(shí)例外情況出現(xiàn):
[0042](i)針對(duì)基元的邊界框已經(jīng)被剪裁到渲染空間的邊緣,并且邊界框的經(jīng)剪裁的邊緣延伸在多于一個(gè)圖塊上;或者
[0043](ii)針對(duì)基元的邊界框已經(jīng)在兩個(gè)方向上被剪裁。
[0044]例如,圖5c示出了渲染空間內(nèi)的三個(gè)基元,其被表示為510、514和518,渲染空間包括以3x7的布置而布置并且在圖5c中被標(biāo)記為O到20的21個(gè)圖塊?;?10具有已經(jīng)被剪裁到渲染空間的邊緣的邊界框512,并且邊界框512延伸在圖塊0、1、2、3、4和5的部分上。因此,邊界框512在y方向(豎直方向)上沒(méi)有延伸在多于一個(gè)圖塊上,但是邊界框512的經(jīng)剪裁的邊緣(邊界框512的頂部邊緣)在X方向(水平方向)上延伸在多于一個(gè)圖塊上,因此邊界框512是例外情況??梢钥吹?,基元510沒(méi)有處于邊界框512中的所有圖塊中。在這一例外情況下,要在邊界框512中的圖塊上執(zhí)行圖塊化計(jì)算,以便確定基元510處于邊界框512的哪些圖塊中。因此,在諸如這種的例外情況下,方法從步驟S408傳遞到步驟S412,下面更詳細(xì)地描述步驟S412。
[0045]作為另一示例,基元514具有已經(jīng)被剪裁到渲染空間的邊緣的邊界框516,并且邊界框516延伸在圖塊8和15的部分上。因此,邊界框516在X方向上沒(méi)有延伸在多于一個(gè)圖塊上,并且具體地邊界框516的經(jīng)剪裁的邊緣(邊界框516的底部邊緣)沒(méi)有延伸在多于一個(gè)圖塊上(經(jīng)剪裁的邊緣僅僅處于圖塊15中)。另外,邊界框516沒(méi)有在兩個(gè)方向上被剪裁。因此,邊界框516不是根據(jù)以上給出的規(guī)則的例外情況??梢钥吹剑?14處于邊界框516中的所有圖塊中。因此,不需要在邊界框516中的圖塊上執(zhí)行圖塊化計(jì)算,以便確定基元514處于邊界框516的哪些圖塊中。因此,在諸如這種的非例外情況下,方法從步驟S408傳遞到步驟S410,下面更詳細(xì)地描述步驟S410。要指出,未被剪裁的邊界框(如在以上參考圖5a和513描述的示例中)不是例外情況,因此在那些情況下方法從步驟S408傳遞到步驟S410。
[0046]作為另一示例,基元518具有已經(jīng)在兩個(gè)方向上被剪裁的邊界框520。因此,邊界框520是根據(jù)以上給出的規(guī)則的例外情況。可以看到,基元518沒(méi)有處于邊界框520的圖塊中。由于這是例外情況,要在邊界框520中的圖塊(圖塊20)上執(zhí)行圖塊化計(jì)算,以便確定基元518是否處于邊界框520的圖塊(圖塊20)中。因此,在這種情況下,方法從步驟S408傳遞到步驟S412。
[0047]要指出,在一些示例中,例外情況的檢測(cè)和處理可以是可選的。在沒(méi)有單獨(dú)地對(duì)待例外基元(例如,基元510、514或518)的情況下可能招致效率損失,因?yàn)槔饣罂梢员惶砑拥蕉嘤谛枰膱D塊的顯示列表。然而,這不會(huì)導(dǎo)致渲染錯(cuò)誤,因此其可以是可接受的。如果沒(méi)有單獨(dú)地處理例外情況,則可以避免步驟S408中涉及的處理,這以在多于嚴(yán)格需要的顯示列表中包括一些例外基元為代價(jià)。
[0048]針對(duì)渲染空間中的每個(gè)圖塊,圖塊化單元108創(chuàng)建顯示列表,顯示列表可以被存儲(chǔ)在例如存儲(chǔ)114中,同時(shí)圖塊化單元108處理基元。針對(duì)圖塊的顯示列表包括指示基元中的哪些基元處于該圖塊中的基元標(biāo)識(shí)符。在步驟S410中,針對(duì)非例外情況,圖塊化單元108將當(dāng)前被處理的基元的基元標(biāo)識(shí)符添加到針對(duì)邊界框中的(多個(gè))相應(yīng)圖塊的(多個(gè))顯示列表。例如,在圖5a中示出的示例中,針對(duì)基元504的基元標(biāo)識(shí)符將被添加到針對(duì)圖塊502的顯示列表,但是不被添加到針對(duì)渲染空間中的其他圖塊的顯示列表。類似地,在圖5b中示出的示例中,針對(duì)基元508的基元標(biāo)識(shí)符將被添加到針對(duì)圖塊506^5062、5063和5064的顯示列表,但是不被添加到針對(duì)渲染空間中的其他圖塊的顯示列表。類似地,在圖5c中示出的示例中,針對(duì)基元514的基元標(biāo)識(shí)符將被添加到針對(duì)圖塊8和15的顯示列表,但是不被添加到針對(duì)渲染空間中的其他圖塊的顯示列表。以這種方式,基元可以在沒(méi)有執(zhí)行如以上所提到的在邊緣方程上的圖塊化計(jì)算的情況下非常高效地被圖塊化。要指出,在一些測(cè)試中,發(fā)現(xiàn)在平均場(chǎng)景中超過(guò)70%的基元可以以這種方式在沒(méi)有執(zhí)行在邊緣方程上的圖塊化計(jì)算的情況下被圖塊化。方法從步驟S410傳遞到步驟S430,下面描述步驟S430。
[0049]如果在步驟S406中確定邊界框沒(méi)有在X方向和y方向兩者上延伸在多于一個(gè)圖塊上,則方法從步驟S406傳遞到步驟S412。在步驟S412中,圖塊化單元108標(biāo)識(shí)基元的頂點(diǎn)位于其中的圖塊,由此確定基元處于所標(biāo)識(shí)的圖塊中。要指出,基元的頂點(diǎn)中的多于一個(gè)頂點(diǎn)可以處于同一圖塊中。易于標(biāo)識(shí)頂點(diǎn)位于其中的圖塊,因?yàn)轫旤c(diǎn)位置已經(jīng)被用于確定邊界框。步驟S412可以在不執(zhí)行用于確定基元是否處于所標(biāo)識(shí)的圖塊中的其他圖塊化測(cè)試的情況下高效地(在時(shí)間和功耗方面)被執(zhí)行。例如,圖6示出基元604,其中基元604的邊界框包括被表示為602n、60212、6022dP6 0 2 22的圖塊的2x2組。在步驟S412中標(biāo)識(shí)在圖6中用影線示出的圖塊(圖塊60212、60221和60222),因?yàn)樗鼈兙ɑ?04的頂點(diǎn)。因此,圖塊化單元108可以例如在不執(zhí)行在針對(duì)基元604的邊緣方程上的圖塊化計(jì)算的情況下容易地確定基元處于有影線的圖塊中。
[0050]在步驟S414中,將基元標(biāo)識(shí)符添加到針對(duì)所標(biāo)識(shí)的圖塊的顯示列表。
[0051 ]在步驟S416中,圖塊化單元108確定在邊界框中是否存在更多要處理的圖塊。在尚未確定基元是否處于圖塊中的情況下,該圖塊仍然要被處理。例如,如果邊界框的所有圖塊包括基元的頂點(diǎn),則已經(jīng)確定基元處于邊界框的所有圖塊中,因此在邊界框中不存在更多要處理的圖塊。在這種情況下,方法從步驟S416傳遞到步驟S430。然而,如果在邊界框中存在更多要處理的圖塊(即,針對(duì)其尚未確定基元是否處于圖塊中的更多圖塊),則方法傳遞到步驟S418。例如,參考圖6,仍然沒(méi)有確定基元604是否處于圖塊602η中,因此方法傳遞到步驟S418。
[0052]在步驟S418中,針對(duì)圖塊的至少子集中的每個(gè)圖塊,如果其還沒(méi)有被確定,則圖塊化單元108確定基元是否處于該圖塊中。例如,在邊界框包括多于四個(gè)圖塊的情況下,圖塊的子集可以包括角落圖塊,角落圖塊在邊界框的角落。這個(gè)的示例被示出在圖7a中,圖7a示出了具有包括圖塊702的2x8陣列的邊界框的基元704。角落圖塊用影線被示出在圖7a中,并且被表示為 702^702^70224^02280
[0053]基元704的頂點(diǎn)處于圖塊702η中,基元704的另一頂點(diǎn)處于圖塊70 2 28中,因此圖塊化單元108已經(jīng)確定基元704處于角落圖塊702η和70228中。在步驟S418中,圖塊化單元108通過(guò)執(zhí)行圖塊化計(jì)算來(lái)確定基元704是否處于圖塊70218和70221中。為了針對(duì)圖塊在基元上執(zhí)行圖塊化計(jì)算,針對(duì)基元的每個(gè)邊緣,描述基元的邊緣的邊緣方程被用于確定圖塊中的邊緣特定測(cè)試點(diǎn)是在邊緣的內(nèi)部還是外部。在針對(duì)邊緣中的任何邊緣確定相應(yīng)的邊緣特定測(cè)試點(diǎn)在邊緣的外部的情況下,基元被確定為在圖塊的外部。圖塊的測(cè)試點(diǎn)取決于測(cè)試所針對(duì)的邊緣的定向而不同,因?yàn)樵诨械娜魏尾糠衷趫D塊的任何部分的內(nèi)部的情況下,基元應(yīng)當(dāng)被確定為處于圖塊中。因此,針對(duì)邊緣的圖塊中的邊緣特定測(cè)試點(diǎn)是根據(jù)邊緣的定向最可能在邊緣內(nèi)部的圖塊中的點(diǎn)。例如,圖8示出被用于不同邊緣定向的測(cè)試點(diǎn)。圖8(a)示出針對(duì)其中邊緣外部的點(diǎn)在邊緣的下方和/或右方的向上傾斜邊緣,邊緣特定測(cè)試點(diǎn)804處于圖塊802的左上角(例如圖塊802內(nèi)的左上方樣本位置)中??梢哉J(rèn)識(shí)到,如果測(cè)試點(diǎn)804在邊緣的外部,則圖塊802中的所有其他點(diǎn)也是如此。類似地,圖8 (b)示出針對(duì)其中邊緣外部的點(diǎn)在邊緣的上方和/或左方的向上傾斜邊緣,邊緣特定測(cè)試點(diǎn)808處于圖塊806的右下角(例如圖塊806內(nèi)的右下方樣本位置)中??梢哉J(rèn)識(shí)到,如果測(cè)試點(diǎn)808在邊緣的外部,則圖塊806中的所有其他點(diǎn)也是如此。類似地,圖8 (c)示出針對(duì)其中邊緣外部的點(diǎn)在邊緣的下方和/或左方的向下傾斜邊緣,邊緣特定測(cè)試點(diǎn)812處于圖塊810的右上角(例如圖塊810內(nèi)的右上方樣本位置)中。可以認(rèn)識(shí)到,如果測(cè)試點(diǎn)812在邊緣的外部,則圖塊810中的所有其他點(diǎn)也是如此。類似地,圖8(d)示出針對(duì)其中邊緣外部的點(diǎn)在邊緣的上方和/或右方的向下傾斜邊緣,邊緣特定測(cè)試點(diǎn)816處于圖塊814的左下角(例如圖塊814內(nèi)的左下方樣本位置)中??梢哉J(rèn)識(shí)到,如果測(cè)試點(diǎn)816在邊緣的外部,則圖塊814中的所有其他點(diǎn)也是如此。
[0054]因此,再次參考圖7a,針對(duì)子集中的每個(gè)圖塊(例如,角落圖塊702n、70218、7022^70 228),已經(jīng)執(zhí)行圖塊化測(cè)試以確定基元704是否處于相應(yīng)圖塊中。如以上所描述的,圖塊化測(cè)試可以包括確定基元704具有圖塊中的一個(gè)或多個(gè)頂點(diǎn),或者圖塊化測(cè)試可以包括執(zhí)行圖塊化計(jì)算以確定基元是否處于圖塊中。如果基元處于圖塊中,則基元標(biāo)識(shí)符被添加到針對(duì)圖塊的適當(dāng)?shù)娘@示列表。
[0055]在步驟S420中,圖塊化單元108確定在邊界框中是否存在更多要處理的圖塊。在尚未確定基元是否處于圖塊中的情況下,該圖塊仍然要被處理。如果在邊界框中不存在更多要處理的圖塊,則方法從步驟S420傳遞到步驟S430。然而,如果在邊界框中存在更多要處理的圖塊(即,針對(duì)其尚未確定基元是否處于圖塊中的更多圖塊),則方法傳遞到步驟S422。例如,參考圖7a,仍然沒(méi)有確定基元704是否處于不包括基元704的頂點(diǎn)的非角落圖塊中,因此方法傳遞到步驟S422。
[0056]在步驟S422中,圖塊化單元108分析針對(duì)其已經(jīng)執(zhí)行圖塊化測(cè)試的圖塊的子集。這一分析被執(zhí)行以確定對(duì)邊界框中的至少一個(gè)其他圖塊進(jìn)行圖塊化的結(jié)果是否可以從針對(duì)圖塊的子集的兩個(gè)或更多個(gè)圖塊的圖塊化測(cè)試的結(jié)果來(lái)推出,而無(wú)需執(zhí)行針對(duì)所述至少一個(gè)其他圖塊的圖塊化測(cè)試。在本文中描述的示例中,基元已知是凸的,使得對(duì)邊界框中的至少一個(gè)圖塊進(jìn)行圖塊化的結(jié)果可以從針對(duì)圖塊的子集的兩個(gè)或更多個(gè)圖塊的圖塊化測(cè)試的結(jié)果來(lái)正確地推出。在一些示例中,所有基元可以已知為凸的(例如所有基元可以是三角形),但是在一些其他示例中,傳入的基元可以不一定是嚴(yán)格凸的,并且在這些示例中方法可以涉及確定基元是否是凸的,其中如果基元是凸的,則方法可以如本文中描述的被執(zhí)行,以基于針對(duì)圖塊的子集的兩個(gè)或更多個(gè)圖塊的圖塊化結(jié)果來(lái)推出針對(duì)圖塊的圖塊化結(jié)果;然而如果基元不是凸的,則其他方法可以被用于執(zhí)行在基元上的圖塊化。
[0057]在步驟S424中,如果分析指示這是可能的,則針對(duì)子集的圖塊中的兩個(gè)或更多個(gè)圖塊的圖塊化測(cè)試的結(jié)果被用于確定基元是否處于至少一個(gè)其他圖塊中。至少一個(gè)其他圖塊沒(méi)有處于針對(duì)其執(zhí)行圖塊化測(cè)試的圖塊的子集中。具體地,至少一個(gè)其他圖塊位于由子集的圖塊中的兩個(gè)或更多個(gè)圖塊界定的區(qū)域內(nèi)。如果特定圖塊由來(lái)自全部具有相同的圖塊化測(cè)試結(jié)果的子集的圖塊包圍,則可以推出特定圖塊也將具有相同結(jié)果。圖塊可以在一個(gè)維度上“被包圍”,即圖塊可以位于圖塊的行或列中的子集的兩個(gè)圖塊之間。也就是說(shuō),圖塊的相同行或列中的子集的兩個(gè)圖塊可以被用于推出針對(duì)在圖塊的該相同行或列中的在子集的兩個(gè)圖塊之間(即在由子集的兩個(gè)圖塊界定的區(qū)域中)的圖塊的圖塊化結(jié)果。另外,圖塊可以在兩個(gè)維度上“被包圍”,即圖塊可以位于由子集的四個(gè)圖塊界定的區(qū)域中。也就是說(shuō),以矩形被布置在渲染空間內(nèi)的四個(gè)圖塊可以被用于推出針對(duì)由那四個(gè)圖塊界定的區(qū)域中(即在具有角落中的那四個(gè)圖塊的矩形中)的圖塊的圖塊化結(jié)果。要指出,術(shù)語(yǔ)“矩形”包括“方形”。
[0058]要指出,雖然由包括基元的圖塊包圍的圖塊允許推出該圖塊也包括基元,不會(huì)僅僅基于圖塊由不包括基元的圖塊包圍的確定來(lái)推出圖塊不包括基元。然而,當(dāng)兩個(gè)或更多個(gè)圖塊不包括基元時(shí),因?yàn)樗鼈儍烧叨荚诨南嗤吘壨獠?,則可以推出它們包圍的任何圖塊也在該邊緣外部,并且因此也在基元外部。因此,可以確定針對(duì)不包括基元的子集的圖塊的按邊緣結(jié)果。以這種方式,當(dāng)圖塊由不包括基元的子集的兩個(gè)或更多個(gè)圖塊包圍時(shí),可以檢查那些包圍圖塊在基元的相同邊緣的外部,并且在那種情況下推出所包圍的圖塊也在基元的外部。然而,如果包圍圖塊在基元的不同邊緣的外部,則不會(huì)推出所包圍的圖塊也在基元的外部。要指出,當(dāng)推出圖塊包括基元時(shí),問(wèn)題通過(guò)以下事實(shí)來(lái)簡(jiǎn)化:為了包括基元,圖塊被確定為在所有邊緣的內(nèi)部。因此,不需要使用按邊緣結(jié)果以用于基于確定子集的包圍圖塊包括基元來(lái)推出圖塊包括基元。
[0059]如果圖塊的子集包括邊界框的角落圖塊(如圖7a中),則在針對(duì)圖塊的子集的圖塊化測(cè)試的結(jié)果指示基元處于邊界框的所有角落圖塊中的情況下(如圖7a中),則那些結(jié)果被用于確定基元(例如,圖7a中的704)處于邊界框的所有圖塊中。以這種方式,在圖7a中示出的示例中,針對(duì)圖塊中的十二個(gè)圖塊的圖塊化測(cè)試的結(jié)果可以在無(wú)需執(zhí)行專門針對(duì)那些圖塊中的每個(gè)圖塊的圖塊化測(cè)試的情況下推出。
[0060]類似地,圖7b中圖示的示例示出了包括以4x8的網(wǎng)格布置的32個(gè)圖塊的渲染空間。大的基元708處于渲染空間的所有圖塊706中。針對(duì)基元708的邊界框?qū)⒈患舨玫戒秩究臻g的邊緣。在該示例中,圖塊化單元確定基元708是否處于角落圖塊706n、70618、7064i和70648(其用影線被示出在圖7b中)中。在該示例中,這四個(gè)圖塊構(gòu)成圖塊的子集。針對(duì)圖塊706η的圖塊化測(cè)試涉及確定基元708的頂點(diǎn)處于圖塊706η中,然而針對(duì)圖塊70618、7064?和70648的圖塊化測(cè)試涉及基于如以上所描述的基元708的邊緣方程來(lái)執(zhí)行圖塊化計(jì)算,以確定基元708是否處于相應(yīng)圖塊706中。通過(guò)分析針對(duì)四個(gè)角落圖塊的圖塊化測(cè)試的結(jié)果,圖塊化單元108可以在該示例中確定,由于基元處于四個(gè)角落圖塊中,則基元也處于渲染空間中的所有其他圖塊中,而無(wú)需執(zhí)行針對(duì)渲染空間的相應(yīng)其他圖塊的圖塊化計(jì)算。如以上所描述的,如果基元被確定為處于圖塊中,則基元標(biāo)識(shí)符被添加到針對(duì)相應(yīng)圖塊的顯示列表。
[0061]方法繼續(xù)到步驟S426,在步驟S426中圖塊化單元108確定在邊界框中是否存在更多要處理的圖塊。在尚未確定基元是否處于圖塊中的情況下,該圖塊仍然要被處理。如果在邊界框中不存在更多要處理的圖塊(如圖7a和7b中示出的示例中的情況),則方法從步驟S426傳遞到步驟S430。然而,如果在邊界框中存在更多要處理的圖塊(S卩,針對(duì)其尚未確定基元是否處于圖塊中的更多圖塊),則方法傳遞到步驟S428。在步驟S428中,針對(duì)每個(gè)剩余圖塊(即針對(duì)其尚未確定基元是否處于圖塊中的每個(gè)圖塊),執(zhí)行圖塊化計(jì)算以確定基元是否處于該圖塊中,并且如果是的話,基元標(biāo)識(shí)符被添加到針對(duì)該圖塊的顯示列表。如以上所描述的,針對(duì)特定圖塊的圖塊化計(jì)算包括將針對(duì)基元的邊緣的線方程與特定圖塊的邊緣特定測(cè)試點(diǎn)進(jìn)行比較。因此,在步驟S428之后,已經(jīng)針對(duì)渲染空間中的所有圖塊確定基元是否處于圖塊中,并且相應(yīng)地基元標(biāo)識(shí)符已經(jīng)被添加到針對(duì)相應(yīng)圖塊的顯示列表。方法之后傳遞到步驟S430。
[0062]在步驟S430中,圖塊化單元108確定在當(dāng)前渲染中是否存在要圖塊化的更多基元。每個(gè)渲染將有可能包括許多基元(例如數(shù)千個(gè)或數(shù)百萬(wàn)個(gè)基元)。渲染可以例如被執(zhí)行以從3維模型來(lái)生成圖像,該圖像要被顯示在屏幕上或被用作其他渲染中的紋理。如果存在要圖塊化的更多基元,則方法傳遞回到步驟S404,并且針對(duì)下一基元進(jìn)行重復(fù)。一旦當(dāng)前渲染中的所有基元已經(jīng)被圖塊化,則方法將從步驟S430傳遞到步驟S432,在步驟S432中針對(duì)圖塊的顯示列表從圖塊化單元108被輸出并被存儲(chǔ)在存儲(chǔ)器10屯中。如以上所描述的,在本文中描述的示例中,在顯示列表被創(chuàng)建的同時(shí),它們可以被存儲(chǔ)在圖塊化單元108內(nèi)部的存儲(chǔ)114中。在一些示例中,一旦針對(duì)渲染的所有基元已經(jīng)被圖塊化,則顯示列表是完整的并且它們被傳遞到芯片外存儲(chǔ)器KM1以存儲(chǔ)在其中。在其他示例中,圖塊化單元108可以不包括用于在存儲(chǔ)顯示列表中使用的內(nèi)部存儲(chǔ)(諸如存儲(chǔ)114),并且代之基元標(biāo)識(shí)符可以在執(zhí)行圖塊化時(shí)被直接寫入到存儲(chǔ)器KM1中的顯示列表。在一些其他示例中,內(nèi)部存儲(chǔ)114可以被實(shí)施在圖塊化單元108中,但是內(nèi)部存儲(chǔ)114可以不足夠大以同時(shí)存儲(chǔ)針對(duì)所有圖塊的所有顯示列表。因此,內(nèi)部存儲(chǔ)114可以被用于在執(zhí)行圖塊化時(shí)收集之后可以成塊地(或“成批地”)寫出到存儲(chǔ)器KM1的圖塊化結(jié)果。這可以避免在基元被寫入到存儲(chǔ)器KM1中的不同顯示列表時(shí)低效率的存儲(chǔ)器存取模式。
[0063]渲染單元110之后可以根據(jù)顯示列表來(lái)渲染圖塊中的每個(gè)圖塊中的基元。為了渲染針對(duì)圖塊的基元,在步驟S434中,渲染單元110從存儲(chǔ)器KM1取回針對(duì)圖塊的適當(dāng)?shù)娘@示列表。渲染單元110可以之后取回處于當(dāng)前渲染的圖塊中的由顯示列表指示的基元。這些基元可以從存儲(chǔ)器KM1中取回。渲染單元110之后渲染圖塊中的基元。在圖1中示出的示例中,渲染單元110實(shí)施延遲渲染,由此隱藏面消除在紋理化和/或陰影化之前被執(zhí)行。因此,HSR模塊116執(zhí)行隱藏面消除以由此消除隱藏在場(chǎng)景中的基元的碎片。剩余的碎片被傳遞到紋理化/陰影化模塊118,其對(duì)碎片執(zhí)行紋理化和/或陰影化以確定經(jīng)渲染的結(jié)果,例如以確定經(jīng)渲染的圖像的像素顏色值。在步驟S436中,經(jīng)渲染的結(jié)果被輸出并且可以被傳遞到存儲(chǔ)器1042,例如以用于存儲(chǔ)在幀緩沖中。渲染單元110處理圖塊中的每個(gè)圖塊中的基元,并且當(dāng)整幅圖像已經(jīng)被渲染并被存儲(chǔ)在存儲(chǔ)器1042中時(shí),圖像可以從圖形處理系統(tǒng)100被輸出并且例如被顯示在顯示器上。要指出,在其他示例中,渲染單元可以是非延遲渲染單元,由此紋理化和/或陰影化可以在隱藏面消除之前對(duì)基元執(zhí)行。
[0064]在以上描述的示例中,可以看到,通過(guò)執(zhí)行圖塊化測(cè)試以確定基元是否處于圖塊的子集中,那些圖塊化測(cè)試的結(jié)果可以被用于確定基元是否處于位于由子集的圖塊中的一些圖塊界定的區(qū)域內(nèi)的其他圖塊中。圖7a和7b中示出的示例示出是邊界框的角落圖塊的圖塊的子集。在其他示例中,圖塊的子集可以是邊界框內(nèi)的不同圖塊。例如,在圖塊的子集的圖塊之間可以存在規(guī)則間隔。例如,圖塊的子集可以包括來(lái)自渲染空間的圖塊的多個(gè)N X M塊中的每個(gè)塊的相應(yīng)圖塊,其中N和M是整數(shù)。圖9示出了其中N = M = 2的示例。也就是說(shuō),在圖9中,對(duì)2x2圖塊網(wǎng)格執(zhí)行圖塊化測(cè)試,使得來(lái)自圖塊的每個(gè)2x2塊的一個(gè)圖塊處于針對(duì)其執(zhí)行圖塊化測(cè)試的圖塊的子集中。
[0065]圖9示出了基元904,其中圖塊的9x14組處于基元904的邊界框中并且被示出在圖9中。行號(hào)(I到9)和列號(hào)(I到14)被示出在圖9中?;?04的頂點(diǎn)的位置被用于確定基元904處于第一行的第十四個(gè)圖塊(圖塊T1,14)中,處于第二行的第四個(gè)圖塊(圖塊T2,4)中,以及處于第九行的第一個(gè)圖塊(圖塊Tsu)中(在步驟S412中)。這三個(gè)圖塊用向下傾斜影線被示出在圖9中。不需要針對(duì)這三個(gè)圖塊執(zhí)行涉及將邊緣方程與測(cè)試點(diǎn)進(jìn)行比較的圖塊化計(jì)算。
[0066]在圖9中,圖塊的子集的圖塊用向上傾斜的影線被示出(除了第九行的第一個(gè)圖塊(圖塊τ9,O,其處于子集中但是其具有向下傾斜的影線,因?yàn)轫旤c(diǎn)位于該圖塊中),作為示例包括圖塊902η(圖塊T1,O。子集的圖塊包括來(lái)自邊界框中的圖塊的第一行、第三行、第五行、第七行和第九行的第一圖塊、第三圖塊、第五圖塊、第七圖塊、第九圖塊、第十一圖塊和第十三圖塊??梢哉J(rèn)識(shí)到,由于基元904的頂點(diǎn)的位置,圖塊化單元108已經(jīng)確定基元處于第九行的第一個(gè)圖塊(圖塊Tsu)中。針對(duì)子集的其他圖塊,(在步驟S418中)執(zhí)行圖塊化計(jì)算以確定基元904是否處于圖塊中。這些圖塊化計(jì)算如以上所描述的通過(guò)將基元904的邊緣方程與圖塊中的測(cè)試點(diǎn)進(jìn)行比較來(lái)執(zhí)行。在圖塊的子集上執(zhí)行的圖塊化測(cè)試的結(jié)果通過(guò)針對(duì)子集的每個(gè)圖塊指示基元904是在圖塊“內(nèi)”還是圖塊“外”而被示出在圖9中。
[0067]之后可以(在步驟S422中)分析針對(duì)圖塊的子集的圖塊化測(cè)試的結(jié)果(包括按邊緣結(jié)果,其如以上所描述的用于在推出圖塊是否不包括基元中使用),以確定是否存在圖塊的3x3塊,該圖塊的3x3塊具有來(lái)自角落中的圖塊子集的圖塊,其中子集的那些圖塊具有相同的圖塊化測(cè)試結(jié)果。如果是這樣的情況,則3x3塊中的剩余五個(gè)圖塊可以被分配以與子集的相關(guān)圖塊相同的結(jié)果(在步驟S424中),而不執(zhí)行針對(duì)那五個(gè)圖塊的特定圖塊化計(jì)算。例如,圖9中示出的處于邊界框的左上角的圖塊的3x3塊(S卩,邊界框的頭三行中的頭三個(gè)圖塊)包括四個(gè)角落中的子集的圖塊(圖塊T1,3),針對(duì)其圖塊化測(cè)試結(jié)果指示基元904在那些圖塊外部,并且具體地,因?yàn)閳D塊全部在基元904的相同邊緣外部(例如,在如圖9所示的基元904的左邊緣外部),所以基元904在那些圖塊外部。因此,可以從針對(duì)圖塊的子集的圖塊化結(jié)果,推出基元904在該3x3塊中的其他五個(gè)圖塊(圖塊T1,^T24J2AT2,3和T3,2)的外部,其處于由子集的四個(gè)圖塊界定的區(qū)域中,而不執(zhí)行針對(duì)那五個(gè)圖塊的任何其他圖塊化測(cè)試。類似地,圖9中示出的處于邊界框的第五行到第七行和第三列到第五列中的圖塊的3x3塊包括針對(duì)其圖塊化測(cè)試結(jié)果指示基元904在那些圖塊內(nèi)部的四個(gè)角落中的子集的圖塊(圖塊T5,3、Τ5,5、Τ7,3和T7,5)。因此,可以從針對(duì)圖塊的子集的圖塊化結(jié)果,推出基元904處于該3X3塊中的其他五個(gè)圖塊(圖塊1'5,4、1'6,3、1'6,4、1'6,5和17,4)中,其處于由子集的四個(gè)圖塊界定的區(qū)域中,而不執(zhí)行針對(duì)那五個(gè)圖塊的任何其他圖塊化測(cè)試。
[0068]類似地,可以(在步驟S422中)分析針對(duì)圖塊的子集的圖塊化測(cè)試的結(jié)果以確定是否存在線中(例如同一行或列中)的子集的具有相同圖塊化測(cè)試結(jié)果的兩個(gè)圖塊。如果是這樣的情況,則在子集的那兩個(gè)圖塊之間的(多個(gè))其他圖塊可以被分配以與子集的相關(guān)圖塊相同的結(jié)果(在步驟S424中),而不執(zhí)行針對(duì)那個(gè)(那些)其他圖塊的特定圖塊化計(jì)算。例如,針對(duì)邊界框的第三行和第五行中的第一個(gè)圖塊(圖塊IXdPT5ll)的圖塊化測(cè)試指示基元904在那些圖塊外部,并且圖塊IXdPT5ll在基元904的相同邊緣的外部。因此,可以從針對(duì)圖塊的子集的圖塊化結(jié)果,推出基元904在第四行中的第一個(gè)圖塊(圖塊T4,:)(其處于由子集的兩個(gè)圖塊(圖塊IXdPT5ll)界定的區(qū)域中)的外部,而不執(zhí)行針對(duì)該圖塊的其他圖塊化測(cè)試。類似地,針對(duì)邊界框的第三行中的第七個(gè)圖塊和第九個(gè)圖塊(圖塊T3,7和T3,9)的圖塊化測(cè)試指示基元904在那些圖塊內(nèi)部。因此,可以從針對(duì)圖塊的子集的圖塊化結(jié)果,推出基元904處于第三行中的第八個(gè)圖塊(圖塊T3,8)(其處于由子集的兩個(gè)圖塊(圖塊T3,7和T3,9)界定的區(qū)域中)中,而不執(zhí)行針對(duì)該圖塊的其他圖塊化測(cè)試。
[0069]在一些示例中,步驟S422和S424可以被重復(fù)使得對(duì)圖塊化結(jié)果的進(jìn)一步分析可以例如基于基元的頂點(diǎn)位于其中的圖塊來(lái)實(shí)施。這可以允許推出對(duì)其他圖塊的圖塊化結(jié)果,而不基于涉及邊緣方程的比較來(lái)執(zhí)行針對(duì)那些其他圖塊的特定圖塊化計(jì)算。例如,在針對(duì)圖塊的子集的圖塊化測(cè)試的第一分析之后,已經(jīng)推出基元904在圖9中示出的邊界框的第二行中的第十一個(gè)圖塊(圖塊T2,η)內(nèi)部。由于基元904的頂點(diǎn)之一的位置,還知道基元904處于邊界框的第二行中的第四個(gè)圖塊(圖塊T2,4)中。因此,在進(jìn)一步的分析階段中,可以推出基元904處于邊界框的第二行中的第五個(gè)圖塊到第十個(gè)圖塊(圖塊T2,^IjT2,1Q)中,而不執(zhí)行針對(duì)那些圖塊的圖塊化計(jì)算。類似地,在進(jìn)一步的分析階段中,可以推出基元904處于邊界框的第四列中的第三個(gè)圖塊和第四個(gè)圖塊(圖塊T3,4和T4,4)中,而不執(zhí)行針對(duì)那些圖塊的圖塊化計(jì)算。
[0070]在圖9中用帶點(diǎn)陰影示出了針對(duì)其的圖塊化結(jié)果從子集的圖塊的圖塊化結(jié)果來(lái)推出的圖塊。最淺的帶點(diǎn)陰影指示基元904在圖塊的外部,然而兩種類型的較暗帶點(diǎn)陰影指示基元904在圖塊內(nèi)部。兩個(gè)較暗帶點(diǎn)陰影中的較淺者指示在第一分析之后基元904被確定為在圖塊內(nèi)部,并且兩個(gè)較暗帶點(diǎn)陰影中的較暗者指示在進(jìn)一步的分析之后基元904被確定為在圖塊內(nèi)部。
[0071 ]如以上所描述的,要指出,當(dāng)分析圖塊化測(cè)試的結(jié)果時(shí),如果圖塊化測(cè)試指示基元在子集的圖塊的組的外部,則基元在圖塊的外部的原因應(yīng)當(dāng)被考慮,即基元的哪個(gè)邊緣是圖塊外部。針對(duì)要被用于推出基元在另一圖塊的外部的子集的多個(gè)圖塊的結(jié)果,則子集的所有多個(gè)圖塊應(yīng)當(dāng)在基元的相同邊緣的外部,否則可能錯(cuò)誤地推出基元在該另一圖塊的外部。
[0072]在步驟S428中,針對(duì)圖9中的剩余圖塊(即沒(méi)有陰影或影線的那些圖塊),使用邊緣方程和圖塊內(nèi)的測(cè)試點(diǎn)來(lái)執(zhí)行圖塊化計(jì)算,使得基元904的圖塊化是完整的。在圖9中示出的示例中,邊界框包括126個(gè)圖塊。針對(duì)圖塊中的68個(gè)執(zhí)行基于邊緣方程的圖塊化計(jì)算;針對(duì)圖塊中的3個(gè)的圖塊化測(cè)試涉及標(biāo)識(shí)基元904的頂點(diǎn)處于哪些圖塊中;并且針對(duì)其他55個(gè)圖塊,關(guān)于基元904是否處于圖塊中的確定從針對(duì)邊界框中的其他圖塊的圖塊化測(cè)試的結(jié)果來(lái)推出。在以上【背景技術(shù)】部分中描述的先前系統(tǒng)中,將針對(duì)邊界框中的每個(gè)圖塊,即針對(duì)圖9中示出的示例中的126個(gè)圖塊,執(zhí)行圖塊化計(jì)算。因此,在該示例中,本文中描述的方法避免針對(duì)圖塊中的58個(gè)(46%的圖塊)執(zhí)行圖塊化計(jì)算。由于圖塊化計(jì)算涉及浮點(diǎn)運(yùn)算并且花費(fèi)大量處理資源和時(shí)間來(lái)實(shí)施,在該示例中針對(duì)其執(zhí)行圖塊化計(jì)算的圖塊的數(shù)目的減少將(在速度和功耗方面)顯著改善圖塊化過(guò)程的效率。
[0073]包含在子集中的圖塊的數(shù)目可以被改變。具體地,對(duì)基元的圖塊化可以以分層的方式來(lái)實(shí)施,使得在第一(粗糙)階段中,執(zhí)行針對(duì)圖塊的子集的圖塊化測(cè)試,并且圖塊化測(cè)試的結(jié)果被用于以相對(duì)粗糙的分辨率確定基元是否處于至少一個(gè)其他圖塊中,其中圖塊的子集包括來(lái)自渲染空間的圖塊的多AN1XM1塊中的每個(gè)塊的相應(yīng)圖塊。之后在第二(精細(xì))階段中,執(zhí)行針對(duì)圖塊的子集的圖塊化測(cè)試,并且圖塊化測(cè)試的結(jié)果被用于以相對(duì)精細(xì)的分辨率確定基元是否處于至少一個(gè)其他圖塊中,其中圖塊的子集包括來(lái)自渲染空間的圖塊的多個(gè)N2 X M2 ±夬中的每個(gè)塊的相應(yīng)圖塊,其中NON2和/SMOM2。例如,在第一階段中,NjPM1可以等于4使得圖塊的子集包括來(lái)自渲染空間的圖塊的多個(gè)4x4塊中的每個(gè)塊的相應(yīng)圖塊,之后在第二階段中,犯和跑可以等于2使得圖塊的子集包括來(lái)自渲染空間的圖塊的多個(gè)2x2塊中的每個(gè)塊的相應(yīng)圖塊。以這種方式,如果可能的話,則在第一階段中,可以在那些區(qū)域中的所有圖塊具有相同的圖塊化結(jié)果的情況下推出針對(duì)邊界框的大區(qū)域的圖塊化結(jié)果,而不執(zhí)行許多圖塊化計(jì)算,之后在第二階段中,可以在那些區(qū)域中的所有圖塊具有相同的圖塊化結(jié)果的情況下推出針對(duì)邊界框的剩余較小區(qū)域的圖塊化結(jié)果。在另一示例中,在第一階段中,僅僅邊界框的角落圖塊可以被包含在圖塊的子集中,之后在第二階段中,來(lái)自圖塊的多個(gè)N2 X M2塊中的每個(gè)塊的相應(yīng)圖塊可以被包含在圖塊的子集中。另外,在其他示例中,可以以不同分辨率實(shí)施多于兩個(gè)階段,即可以在分層中存在多于兩個(gè)階段。
[0074]參考圖10和Ila到lld,除了以上描述的圖塊化方法或作為對(duì)其的備選,描述了對(duì)基元進(jìn)行圖塊化的另一方式,其可以由圖塊化單元108來(lái)實(shí)施。
[0075]參考圖10中示出的流程圖,在步驟S1002中,圖塊化單元108從預(yù)處理模塊106接收基元。圖塊化單元108考慮第一基元。在步驟S1004中,例如以與以上所描述的相同的方式來(lái)確定針對(duì)基元的邊界框,并且如果基元延伸到渲染空間的邊緣以外,則邊界框被剪裁使得其不延伸到渲染空間的邊緣以外。如以上所描述的,在圖塊與邊界框至少部分地重疊的情況下,圖塊被確定為處于邊界框中?;淮_定為沒(méi)有處于未與邊界框至少部分地重疊的圖塊中。
[0076]在參考圖10和Ila到Ild描述的方法中,邊界框中的圖塊的線一次被處理,其中線可以是行或列。在邊界框中存在比圖塊的行更多的圖塊的列的情況下將線設(shè)置為行可以是有益的;然而,在邊界框中存在比圖塊的列更多的圖塊的行的情況下將線設(shè)置為列可以是有益的。因此,圖塊的線被選擇為處于具有邊界框中的圖塊的線的最小數(shù)目的維度中。這是有益的,因?yàn)橛糜趯?duì)基元進(jìn)行圖塊化所執(zhí)行的計(jì)算的數(shù)目隨著邊界框中的線的數(shù)目線性伸縮,因此將線的維度選擇為最小值可以減少在對(duì)基元進(jìn)行圖塊化中涉及的處理量。在步驟S1006中,圖塊化單元108確定在邊界框中是否存在比圖塊的行更多的圖塊的列。如果在邊界框中存在比圖塊的行更多的圖塊的列,則在步驟S1008中,圖塊化單元108確定邊界框要以圖塊的行來(lái)處理。備選地,如果在邊界框中不存在比圖塊的行更多的圖塊的列,則在步驟S1010中,圖塊化單元108確定邊界框要以圖塊的列來(lái)處理。
[0077]作為參考圖10中示出的流程圖詳細(xì)描述的方法的寬泛概述,針對(duì)邊界框中的圖塊的線之間的一個(gè)或多個(gè)圖塊邊界中的每個(gè)圖塊邊界,圖塊化單元108確定圖塊邊界與基元邊緣的交叉點(diǎn),并且使用所確定的交叉點(diǎn)來(lái)確定基元處于邊界框中的圖塊中的哪些圖塊中。
[0078I圖1 Ia到I Id示出了具有包括圖塊的6x4組的邊界框的基元1102的示例。在該示例中,在邊界框中存在比圖塊的列更多的圖塊的行,因此在步驟S1010中,圖塊化單元108確定邊界框要以圖塊的列來(lái)處理。在下面描述的示例中,邊界框以圖塊的列來(lái)處理,但是應(yīng)當(dāng)認(rèn)識(shí)到,在其他示例中,邊界框可以在適當(dāng)?shù)那闆r下以圖塊的行來(lái)處理。
[0079]考慮邊界框中的圖塊的第一列,其中考慮在圖塊的第一列與第二列之間的圖塊邊界1104。在步驟S1012中,針對(duì)邊界框中的圖塊的第一列,圖塊化單元確定圖塊邊界1104與限定基元110 2的邊緣的邊緣線的初始交叉點(diǎn)?;?10 2的邊緣中的兩個(gè)邊緣與圖塊邊界1104相交,然而針對(duì)基元的另一邊緣,限定邊緣的邊緣線1106與圖塊邊界1104在基元1102的外部的位置處交叉。初始交叉點(diǎn)被示出在圖1la中在點(diǎn)1108^11082和11083處。除非基元1102的邊緣之一與圖塊邊界1104平行,則將存在三個(gè)初始交叉點(diǎn)1108,其中的兩個(gè)(在圖1 Ia中示出的示例中,11082和11083)將位于基元1102的邊緣上并且對(duì)于確定基元1102處于圖塊中的哪些圖塊中是有用的,同時(shí)另一交叉點(diǎn)(IlOS1)將不位于基元1102的邊緣上并且對(duì)于確定基元1102處于圖塊中的哪些圖塊中將不會(huì)有用。
[0080]在步驟S1014中,圖塊化單元108通過(guò)標(biāo)識(shí)初始交叉點(diǎn)中的哪些初始交叉點(diǎn)位于基元1102的邊緣上,來(lái)確定初始交叉點(diǎn)中的哪些初始交叉點(diǎn)要被用作圖塊邊界1104與基元1102的邊緣的交叉點(diǎn)。這可以通過(guò)考慮沿圖塊邊界1104前進(jìn)并且針對(duì)初始交叉點(diǎn)兩側(cè)(例如緊貼初始交叉點(diǎn)的兩側(cè))的點(diǎn)確定點(diǎn)是在基元1102的內(nèi)部還是外部來(lái)完成。如果確定針對(duì)初始交叉點(diǎn)的兩側(cè)的兩個(gè)點(diǎn)是不同的,則初始交叉點(diǎn)是基元的邊緣上的交叉點(diǎn)(例如點(diǎn)11082和11083),然而如果確定針對(duì)初始交叉點(diǎn)的兩側(cè)的兩個(gè)點(diǎn)是相同的,則初始交叉點(diǎn)不是基元的邊緣上的交叉點(diǎn)(例如點(diǎn)1108ι)。因此,在圖1 Ia中示出的示例中,交叉點(diǎn)11082和IlOS3被標(biāo)識(shí)為在基元1102的邊緣上,并且這些所標(biāo)識(shí)的交叉點(diǎn)被用于確定基元處于邊界框的第一列中的圖塊中的哪些圖塊中。所標(biāo)識(shí)的交叉點(diǎn)可以被存儲(chǔ)在存儲(chǔ)114中以用于在后續(xù)迭代中用于處理后續(xù)列,如在下面提供的描述中顯而易見(jiàn)的??梢允谴鎯?chǔ)的交叉點(diǎn)的樣本位置或簡(jiǎn)單地是交叉點(diǎn)出現(xiàn)在其中的圖塊。方法之后從步驟S1014傳遞到步驟S1016和S1018兩者。
[0081 ] 在步驟S1016中,圖塊化單元108確定圖塊的列中的開(kāi)始圖塊1112S。這通過(guò)找到列中的包括在其邊界上的在步驟S1014中標(biāo)識(shí)的所確定的交叉點(diǎn)之一(11082或11083)或者包括基元1102的頂點(diǎn)的第一圖塊(例如從邊界框的頂部開(kāi)始并且向下進(jìn)行)來(lái)完成。圖塊1112s被確定為開(kāi)始圖塊,因?yàn)槠渚哂性谄溥吔缟系慕徊纥c(diǎn)11082。在步驟S1018中,圖塊化單元108確定圖塊的列中的結(jié)束圖塊1112^。這通過(guò)找到列中的包括在其邊界上的在步驟S1014中標(biāo)識(shí)的所確定的交叉點(diǎn)之一(I 1082或11083)或者包括基元1102的頂點(diǎn)的最后圖塊(例如從邊界框的頂部開(kāi)始并且向下進(jìn)行)來(lái)完成。圖塊1112^被確定為結(jié)束圖塊,因?yàn)槠渚哂性谄溥吔缟系慕徊纥c(diǎn)11083并且其還具有頂點(diǎn)1110。
[0082]在步驟S1020中,圖塊化單元108確定基元處于列中的在開(kāi)始圖塊1112s與結(jié)束圖塊1112^之間并且包括開(kāi)始圖塊1112s和結(jié)束圖塊1112^的圖塊中。第一列的在開(kāi)始圖塊與結(jié)束圖塊(11128與11126)之間并且包括開(kāi)始圖塊和結(jié)束圖塊(11124P1112e)的這些圖塊用影線示出,可以看到基元1102處于影線圖塊中,但是沒(méi)有處于邊界框的第一列的其他圖塊中。
[0083]在步驟1022中,將針對(duì)基元1102的基元標(biāo)識(shí)符添加到針對(duì)其確定基元處于那些圖塊(例如圖1la中示出的影線圖塊)中的那些圖塊的顯示列表。
[0084]在步驟S1024中,圖塊化單元108確定在邊界框中是否存在更多要處理的圖塊的線(在該示例中為列)。如果存在,則方法傳遞到步驟S1026使得下一線(例如列)可以被處理。在步驟S1026中,圖塊化單元108確定下一線是否是邊界框的最后的線。如果下一線不是邊界框中的最后的線,則方法從步驟S1026傳遞到步驟S1012,使得下一線可以被處理。
[0085]例如,在圖1lb中示出的示例中,可以處理圖塊的第二列。以這種方式,在圖塊的第二列與第三列之間的圖塊邊界1114被用于確定初始交叉點(diǎn)1118^11182和11183(在步驟S1012中)。初始交叉點(diǎn)^…工在邊緣線1116與圖塊邊界1114相交的點(diǎn)處,但是該初始交叉點(diǎn)1118!沒(méi)有在基元1102的邊緣上。然而,其他初始交叉點(diǎn)11182和11183在基元1102的邊緣上,因此在步驟S1014中,初始交叉點(diǎn)11182和11183(但是不是1118ι)被標(biāo)識(shí)為位于基元的邊緣上的交叉點(diǎn)。這些所標(biāo)識(shí)的交叉點(diǎn)可以被存儲(chǔ)以用于在后續(xù)迭代中使用。
[0086]為了找到第二列的開(kāi)始圖塊和結(jié)束圖塊,交叉點(diǎn)IlOS2和IlOS3的位置(其在先前迭代中被確定并被存儲(chǔ)以用于在該迭代中使用)、交叉點(diǎn)11182和11183的位置和頂點(diǎn)1020的位置被使用。開(kāi)始圖塊被確定為圖塊1122s (在步驟S1016中),因?yàn)樵搱D塊包括頂點(diǎn)1120。結(jié)束圖塊被確定為圖塊1122e(在步驟S1018中),因?yàn)樵搱D塊包括交叉點(diǎn)11083和11183。在圖lib中用影線示出的圖塊在步驟S1020中被確定為處于基元1102中,因?yàn)樗鼈兲幱陂_(kāi)始圖塊1122s與結(jié)束圖塊1122e之間(并且包括它們)。因此,針對(duì)基元1102的基元標(biāo)識(shí)符被添加到針對(duì)在圖1lb中用影線示出的圖塊的顯示列表(在步驟S1022中)。
[0087]如圖1lc中示出的,方法針對(duì)下一列(第三列)進(jìn)行重復(fù)。由于第三列不是邊界框中的最后的列,方法重復(fù)回到步驟S1012,并且第三列被處理。以這種方法,在圖塊的第三列與第四列之間的圖塊邊界1124被用于確定初始交叉點(diǎn)1128!、11282和11283(在步驟S1012中)。初始交叉點(diǎn)11281在邊緣線1126與圖塊邊界1124相交的點(diǎn)處,但是該初始交叉點(diǎn)1128工沒(méi)有在基元1102的邊緣上。然而,其他初始交叉點(diǎn)11282和11283在基元1102的邊緣上,因此在步驟SlO 14中,初始交叉點(diǎn)11282和11283(但是不是1128!)被標(biāo)識(shí)為位于基元的邊緣上的交叉點(diǎn)。這些所標(biāo)識(shí)的交叉點(diǎn)可以被存儲(chǔ)以用于在后續(xù)迭代中使用。
[0088]為了找到第三列的開(kāi)始圖塊和結(jié)束圖塊,交叉點(diǎn)IllS2和IllS3的位置(其在先前迭代中被確定并被存儲(chǔ)以用于在該迭代中使用)以及交叉點(diǎn)11282和112&的位置被使用。開(kāi)始圖塊被確定為圖塊1130s (在步驟S1016中),因?yàn)樵搱D塊包括交叉點(diǎn)11182。結(jié)束圖塊被確定為圖塊1130e (在步驟S1018中),因?yàn)樵搱D塊包括交叉點(diǎn)11283。在圖11 c中用影線示出的圖塊在步驟S1020中被確定為處于基元1102中,因?yàn)樗鼈兲幱陂_(kāi)始圖塊1130s與結(jié)束圖塊1130e之間(并且包括它們)。因此,針對(duì)基元1102的基元標(biāo)識(shí)符被添加到針對(duì)在圖1lc中用影線示出的圖塊的顯示列表(在步驟S1022中)。
[0089]如圖1ld中示出的,方法針對(duì)下一列(第四列)進(jìn)行重復(fù)。由于第四列是邊界框中的最后的列,方法從步驟S1026傳遞到步驟S1016和S1018,而不執(zhí)行步驟S1012或S1014。這是因?yàn)樵谶吔缈蛑械淖詈罅械挠疫叺膱D塊邊界是邊界框的邊緣,因此基元將不與該圖塊邊界相交。為了找到最后列的開(kāi)始圖塊和結(jié)束圖塊,交叉點(diǎn)11282和11283的位置(其在先前迭代中被確定并被存儲(chǔ)以用于在該迭代中使用)和頂點(diǎn)1032的位置被使用。開(kāi)始圖塊被確定為圖塊1134s (在步驟SI 016中),因?yàn)樵搱D塊包括交叉點(diǎn)11282。結(jié)束圖塊被確定為圖塊1134e(在步驟S1018中),因?yàn)樵搱D塊包括交叉點(diǎn)11283和頂點(diǎn)1032。在圖1ld中用影線示出的圖塊在步驟S1020中被確定為處于基元1102中,因?yàn)樗鼈兲幱陂_(kāi)始圖塊1134s與結(jié)束圖塊1134e之間(并且包括它們)。因此,針對(duì)基元1102的基元標(biāo)識(shí)符被添加到針對(duì)在圖1ld中用影線示出的圖塊的顯示列表(在步驟S1022中)。
[0090]之后在步驟S1024中確定在邊界框中不存在更多要處理的圖塊列,因此方法傳遞到步驟SI 028 O在步驟S1028中,針對(duì)圖塊的顯示列表從圖塊化單元108被輸出并被存儲(chǔ)在存儲(chǔ)器10屯中。如以上所描述的,在本文中描述的示例中,在顯示列表被創(chuàng)建的同時(shí)它們可以被存儲(chǔ)在圖塊化單元108內(nèi)部的存儲(chǔ)114中。在一些示例中,一旦針對(duì)渲染的所有基元已經(jīng)被圖塊化,則顯示列表是完整的并且它們被傳遞到芯片外存儲(chǔ)器KM1以存儲(chǔ)在其中。如以上所描述的,在其他示例中,圖塊化單元108可以不使用內(nèi)部存儲(chǔ)(諸如存儲(chǔ)114)來(lái)存儲(chǔ)顯示列表,并且代之,基元標(biāo)識(shí)符可以在執(zhí)行圖塊化時(shí)被直接寫入到存儲(chǔ)器KM1中的顯示列表。另外,在一些其他示例中,內(nèi)部存儲(chǔ)114可以被實(shí)施在圖塊化單元108中,但是內(nèi)部存儲(chǔ)114可以不足夠大以同時(shí)存儲(chǔ)針對(duì)所有圖塊的所有顯示列表。因此,內(nèi)部存儲(chǔ)114可以被用于在執(zhí)行圖塊化時(shí)收集之后可以成塊地(或“成批地”)寫出到存儲(chǔ)器KM1的圖塊化結(jié)果。這可以避免在基元被寫入到存儲(chǔ)器KM1中的不同顯示列表時(shí)低效率的存儲(chǔ)器存取模式。
[0091]渲染單元110可以之后根據(jù)顯示列表來(lái)渲染圖塊中的每個(gè)圖塊中的基元。為了渲染針對(duì)圖塊的基元,在步驟S1030中,渲染單元110從存儲(chǔ)器KM1取回針對(duì)圖塊的顯示列表。渲染單元110可以之后取回處于當(dāng)前渲染的圖塊中的由顯示列表指示的基元。這些基元可以從存儲(chǔ)器KM1取回。渲染單元110之后渲染圖塊中的基元。在圖1中示出的示例中,渲染單元110實(shí)施延遲渲染,由此隱藏面消除在紋理化和/或陰影化之前被執(zhí)行,但是在其他示例中,可以實(shí)施非延遲渲染。在步驟S1032中,經(jīng)渲染的結(jié)果被輸出并可以被傳遞到存儲(chǔ)器1042以用于存儲(chǔ)在例如幀緩沖中。渲染單元110處理圖塊中的每個(gè)圖塊中的基元,并且當(dāng)整幅圖像已經(jīng)被渲染并被存儲(chǔ)在存儲(chǔ)器1042中時(shí),圖像可以從圖形處理系統(tǒng)100被輸出并且例如被顯示在顯示器上。
[0092]在一些情形下,例如針對(duì)具有大的邊界框的基元,參考圖10和Ila到Ild描述的方法可以相較于參考圖4到9描述的示例提供對(duì)基元進(jìn)行圖塊化的更高效的方法。對(duì)比之下,在其他情形下,例如針對(duì)具有小的邊界框的基元,參考圖4到9描述的方法可以相較于參考圖10和Ila到Ild描述的示例提供對(duì)基元進(jìn)行圖塊化的更高效的方法。具體地,在參考圖10和Ila到Ild描述的方法中執(zhí)行的計(jì)算的數(shù)目與邊界框的最小維度成線性比例(例如與邊界框中的圖塊的列的數(shù)目和圖塊的行的數(shù)目中的最小值成線性比例)。這是因?yàn)獒槍?duì)除了最后線之外的線(例如圖塊的列)中的每條線,相同數(shù)目的計(jì)算被執(zhí)行而與在每條線中有多少圖塊無(wú)關(guān)。如從以上的描述中顯而易見(jiàn)的,針對(duì)最后的線,可以執(zhí)行較少的計(jì)算。例如,針對(duì)包括圖塊的20x4組(S卩20行和4列)的邊界框?qū)?zhí)行與在圖1la到Ild中示出的示例中針對(duì)包括圖塊的6x4組(S卩6行和4列)的邊界框?qū)?zhí)行的相同的計(jì)算。這與參考圖4到9描述的途徑形成對(duì)比,其中針對(duì)圖塊化執(zhí)行的計(jì)算的數(shù)目與邊界框中的圖塊的數(shù)目近似成比例,例如與邊界框的面積近似成比例,其隨著成方形的邊界框的最小維度近似伸縮。因此,參考圖10和圖1la到Ild描述的方法尤其對(duì)于處理具有大的邊界框的基元有用,并且尤其對(duì)于處理具有在一個(gè)維度上比在另一個(gè)維度上明顯更長(zhǎng)的邊界框的基元有用。
[0093]因此,在一些實(shí)施例中,圖塊化單元108可以有能力以兩種不同方式來(lái)實(shí)施圖塊化方法:(i)方法I,即如參考圖4a和4b中示出的流程圖所描述的,以及(ii)方法2,即如參考圖10中示出的流程圖所描述的。方法的頭兩個(gè)步驟是相同的,即圖塊化單元接收基元并確定針對(duì)基元的邊界框。圖塊化單元108可以之后分析邊界框以確定是要執(zhí)行方法I還是方法2。例如,如果邊界框的最大維度大于圖塊的閾值數(shù)目,則圖塊化單元108可以利用方法2繼續(xù)進(jìn)行,然而如果邊界框的最大維度不大于圖塊的閾值數(shù)目,則圖塊化單元108可以利用方法I繼續(xù)進(jìn)行。在方法I與方法2之間進(jìn)行選擇的其他方式可以在不同示例中例如基于邊界框的面積來(lái)使用。以這種方式,基元被圖塊化的方式可以針對(duì)不同基元是不同的,并且具體地可以被選擇以良好地適于基元的大小和/或形狀以由此提供基元的高效圖塊化。
[0094]圖4a、4b和10中示出的流程圖的方法步驟可以被實(shí)施為圖塊化單元108的處理邏輯112內(nèi)的邏輯塊。邏輯塊可以以硬件或軟件或其組合來(lái)實(shí)施。例如,如果邏輯塊以硬件來(lái)實(shí)施,則它們可以被形成為適于執(zhí)行如本文中描述的邏輯塊的期望功能的晶體管和其他硬件部件的特定布置。對(duì)比之下,如果邏輯塊以軟件來(lái)實(shí)施,則它們可以包括可以被存儲(chǔ)在存儲(chǔ)器中并且可以被提供給處理邏輯112以用于在其上執(zhí)行以由此提供邏輯塊的功能的計(jì)算機(jī)指令的集。
[0095]以上描述的圖形處理系統(tǒng)100可以被實(shí)施在計(jì)算機(jī)系統(tǒng)中。例如,圖12示出了包括GPU 102,CPU 1202和存儲(chǔ)器1204的計(jì)算機(jī)系統(tǒng),其中存儲(chǔ)器1204可以包括對(duì)應(yīng)于以上描述的存儲(chǔ)器104jP1042的存儲(chǔ)器塊。計(jì)算機(jī)系統(tǒng)還包括其他設(shè)備1206,諸如顯示器1208、揚(yáng)聲器1210、麥克風(fēng)1212和相機(jī)1214。計(jì)算機(jī)系統(tǒng)的部件可以經(jīng)由通信總線1216彼此通信。針對(duì)應(yīng)用的計(jì)算機(jī)程序代碼可以被存儲(chǔ)在存儲(chǔ)器1204中,并且可以例如被執(zhí)行在CPU 1202上。如果應(yīng)用需要渲染3D場(chǎng)景的圖像,則描述基元的圖形數(shù)據(jù)可以被發(fā)送到GPU 102,并且GPU102可以如以上所描述的渲染場(chǎng)景。
[0096]—般地,以上描述的功能、方法、技術(shù)或部件中的任何(例如,圖塊化單元108和其部件)可以被實(shí)施在使用軟件、固件、硬件(例如,固定邏輯電路)或者這些實(shí)施方式中的任何組合的模塊中。術(shù)語(yǔ)“模塊”、“功能”、“部件”、“±夬”、“單元”和“邏輯”在本文中被用于總體上表示軟件、固件、硬件或其任何組合。
[0097]在軟件實(shí)施方式的情況下,模塊、功能、部件、單元或邏輯表示當(dāng)執(zhí)行在處理器(例如,一個(gè)或多個(gè)CPU)上時(shí)執(zhí)行指定任務(wù)的程序代碼。在一個(gè)示例中,描述的方法可以通過(guò)被配置具有以機(jī)器可讀形式存儲(chǔ)在計(jì)算機(jī)可讀介質(zhì)上的軟件的計(jì)算機(jī)來(lái)執(zhí)行。計(jì)算機(jī)可讀介質(zhì)的一個(gè)這樣的配置是信號(hào)承載介質(zhì)并且因此被配置為將指令(例如,作為載波)諸如經(jīng)由網(wǎng)絡(luò)傳輸?shù)接?jì)算設(shè)備。計(jì)算機(jī)可讀介質(zhì)還可以被配置為非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)并且因此不是信號(hào)承載介質(zhì)。計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)的示例包括可以使用磁技術(shù)、光學(xué)技術(shù)和其他技術(shù)來(lái)存儲(chǔ)指令或其他數(shù)據(jù)并且可以由機(jī)器訪問(wèn)的隨機(jī)存取存儲(chǔ)器(RAM)、只讀存儲(chǔ)器(ROM),光盤、閃速存儲(chǔ)器、硬盤存儲(chǔ)器和其他存儲(chǔ)器設(shè)備。
[0098]軟件可以以用于將計(jì)算機(jī)配置為執(zhí)行描述的方法的構(gòu)成部分的包括計(jì)算機(jī)程序代碼的計(jì)算機(jī)程序的形式,或者以在程序在計(jì)算機(jī)上運(yùn)行時(shí)適于執(zhí)行本文中描述的方法中的任何方法的所有步驟的包括計(jì)算機(jī)程序代碼裝置的計(jì)算機(jī)程序的形式,并且其中計(jì)算機(jī)程序可以體現(xiàn)在計(jì)算機(jī)可讀介質(zhì)上。程序代碼可以被存儲(chǔ)在一個(gè)或多個(gè)計(jì)算機(jī)可讀介質(zhì)中。本文中描述的技術(shù)的特征是平臺(tái)無(wú)關(guān)的,這意味著技術(shù)可以被實(shí)施在具有各種處理器的各種計(jì)算平臺(tái)上。
[0099]本領(lǐng)域技術(shù)人員還將意識(shí)到,功能、技術(shù)或方法中的全部或一部分可以由專用電路、專用集成電路、可編程邏輯陣列、現(xiàn)場(chǎng)可編程門陣列等來(lái)實(shí)現(xiàn)。例如,模塊、功能、部件、單元、或邏輯(例如,實(shí)施在圖塊化單元108的處理邏輯112內(nèi)的邏輯塊)可以包括電路形式的硬件。這樣的電路可以包括在制造工藝中可用的晶體管和/或其他硬件元件。通過(guò)示例的方式,這樣的晶體管和/或其他元件可以被用于形成電路或結(jié)構(gòu),該電路或結(jié)構(gòu)實(shí)施和/或包含諸如寄存器、觸發(fā)器或鎖存器的存儲(chǔ)器、諸如布爾運(yùn)算的邏輯運(yùn)算器、諸如加法器、乘法器或移位器的數(shù)學(xué)運(yùn)算器、以及互連。這樣的元件可以被提供為定制電路或標(biāo)準(zhǔn)單元庫(kù)、宏、或者在其他級(jí)別的抽象。這樣的元件可以被互連在特定布置中。模塊、功能、部件、單元、或邏輯(例如,處理邏輯112內(nèi)的邏輯塊)可以包括為固定功能的電路和可以被編程為執(zhí)行一個(gè)或多個(gè)功能的電路;這樣的編程可以從固件或軟件更新或控制機(jī)制來(lái)提供。在示例中,硬件邏輯具有實(shí)施固定功能操作、狀態(tài)機(jī)或過(guò)程的電路。
[0100]還旨在包含“描述”或限定實(shí)施以上描述的模塊、功能、部件、單元或邏輯的硬件的配置的軟件,諸如HDL(硬件描述語(yǔ)言)軟件,如被用于設(shè)計(jì)集成電路或者用于將可編程芯片配置為實(shí)現(xiàn)期望功能。也就是說(shuō),可以提供計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),其具有編碼在其上的計(jì)算機(jī)可讀程序代碼,計(jì)算機(jī)可讀程序代碼用于生成被配置為執(zhí)行本文中描述的方法中的任何方法的圖形處理系統(tǒng),或者用于生成包括本文中描述的任何裝置的圖形處理系統(tǒng)。也就是說(shuō),計(jì)算機(jī)系統(tǒng)可以被配置為從電路元件的定義和限定用于將那些電路元件進(jìn)行組合的規(guī)則的數(shù)據(jù),來(lái)生成數(shù)字電路的表示,其中非瞬態(tài)計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)可以具有存儲(chǔ)在其上的處理器可執(zhí)行指令,其當(dāng)在這樣的計(jì)算機(jī)系統(tǒng)處執(zhí)行時(shí)使計(jì)算機(jī)系統(tǒng)生成例如包括如在本文中的示例中描述的圖塊化單元的圖形處理系統(tǒng)。
[0101]術(shù)語(yǔ)‘處理器’和‘計(jì)算機(jī)’在本文中用于指代具有使得其可以執(zhí)行指令的處理能力的任何設(shè)備或其部分,或者能夠執(zhí)行功能或方法中的全部或一部分的專用電路、或者其任何組合。
[0102]盡管本主題已經(jīng)以特定于結(jié)構(gòu)特征和/或方法動(dòng)作的語(yǔ)言進(jìn)行描述,但是要理解所附權(quán)利要求中限定的主題不一定限于以上描述的具體特征或動(dòng)作。更確切地說(shuō),以上描述的具體特征和動(dòng)作被公開(kāi)為實(shí)施權(quán)利要求的示例形式。將理解,以上描述的益處和優(yōu)點(diǎn)可以涉及一個(gè)示例或可以涉及若干示例。
[0103]如將對(duì)技術(shù)人員顯而易見(jiàn)的,可以在不損失尋求的效果的情況下延伸或更改本文中給出的任何范圍或值。本文中描述的方法步驟可以以任何合適的順序或者在適當(dāng)?shù)那闆r下同時(shí)地來(lái)執(zhí)行。在不損失尋求的效果的情況下,以上描述的示例中的任何示例的方面可以與描述的其他示例中的任何其他示例的方面進(jìn)行組合以形成其他示例。
【主權(quán)項(xiàng)】
1.一種在圖形處理系統(tǒng)中處理基元的方法,所述方法包括對(duì)所述基元進(jìn)行圖塊化以確定所述基元處于渲染空間的多個(gè)圖塊中的哪些圖塊中,所述對(duì)所述基元進(jìn)行圖塊化包括: 確定針對(duì)所述基元的邊界框; 針對(duì)在所述邊界框中的圖塊的線之間的至少一個(gè)圖塊邊界中的每個(gè)圖塊邊界,確定所述圖塊邊界與所述基元的邊緣的交叉點(diǎn);以及使用所確定的交叉點(diǎn)來(lái)確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中。2.根據(jù)權(quán)利要求1所述的方法,其中所述確定所述圖塊邊界與所述基元的邊緣的交叉點(diǎn)包括: 確定所述圖塊邊界與限定所述基元的邊緣的邊緣線的初始交叉點(diǎn);以及 標(biāo)識(shí)那些初始交叉點(diǎn)中的哪些初始交叉點(diǎn)位于所述基元的所述邊緣上, 其中所標(biāo)識(shí)的初始交叉點(diǎn)是被用于確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中的所確定的交叉點(diǎn)。3.根據(jù)權(quán)利要求1或2所述的方法,其中使用所確定的交叉點(diǎn)來(lái)確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中的步驟包括針對(duì)圖塊的線: 通過(guò)找到所述線中的第一圖塊,來(lái)確定圖塊的所述線中的開(kāi)始圖塊,所述第一圖塊包括在其邊界上的所確定的交叉點(diǎn)或者包括所述基元的頂點(diǎn); 通過(guò)找到所述線中的最后圖塊,來(lái)確定圖塊的所述線中的結(jié)束圖塊,所述最后圖塊包括在其邊界上的所確定的交叉點(diǎn)或者包括所述基元的頂點(diǎn); 確定所述基元處于所述線中的在所述開(kāi)始圖塊與所述結(jié)束圖塊之間并且包括所述開(kāi)始圖塊和所述結(jié)束圖塊的圖塊中。4.根據(jù)任一前述權(quán)利要求所述的方法,其中圖塊的所述線是圖塊的行或列。5.根據(jù)任一前述權(quán)利要求所述的方法,還包括: 在所述邊界框中存在比圖塊的列更少的圖塊的行的情況下,確定圖塊的所述線是圖塊的行;以及 在所述邊界框中存在比圖塊的行更少的圖塊的列的情況下,確定圖塊的所述線是圖塊的列。6.根據(jù)任一前述權(quán)利要求所述的方法,其中所述基元被確定為沒(méi)有處于未與所述邊界框至少部分地重疊的圖塊中。7.根據(jù)任一前述權(quán)利要求所述的方法,其中所述邊界框被剪裁使得所述邊界框不延伸到所述渲染空間的所述邊緣以外。8.根據(jù)任一前述權(quán)利要求所述的方法,還包括在確定所述基元處于特定圖塊中的情況下將所述基元的基元標(biāo)識(shí)符包含在針對(duì)所述特定圖塊的顯示列表中。9.根據(jù)權(quán)利要求8所述的方法,還包括針對(duì)所述渲染空間的所述圖塊中的每個(gè)圖塊,根據(jù)針對(duì)所述圖塊的所述顯示列表來(lái)渲染所述圖塊中的所述基元。10.—種圖形處理系統(tǒng),包括用于對(duì)基元進(jìn)行圖塊化以確定所述基元處于渲染空間的多個(gè)圖塊中的哪些圖塊中的圖塊化單元,所述圖塊化單元被配置為: 確定針對(duì)所述基元的邊界框; 針對(duì)在所述邊界框中的圖塊的線之間的至少一個(gè)圖塊邊界中的每個(gè)圖塊邊界,確定所述圖塊邊界與所述基元的邊緣的交叉點(diǎn);以及 使用所確定的交叉點(diǎn)來(lái)確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中。11.根據(jù)權(quán)利要求10所述的圖形處理系統(tǒng),其中所述圖塊化單元被配置為通過(guò)以下來(lái)確定所述圖塊邊界與所述基元的邊緣的交叉點(diǎn): 確定所述圖塊邊界與限定所述基元的邊緣的邊緣線的初始交叉點(diǎn);以及 標(biāo)識(shí)那些初始交叉點(diǎn)中的哪些初始交叉點(diǎn)位于所述基元的所述邊緣上, 其中所標(biāo)識(shí)的初始交叉點(diǎn)是要被用于確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中的所確定的交叉點(diǎn)。12.根據(jù)權(quán)利要求10或11所述的圖形處理系統(tǒng),其中所述圖塊化單元被配置為通過(guò)針對(duì)圖塊的線進(jìn)行以下內(nèi)容而使用所確定的交叉點(diǎn)中的至少一些交叉點(diǎn)來(lái)確定所述基元處于所述邊界框中的所述圖塊中的哪些圖塊中: 通過(guò)找到所述線中的第一圖塊,來(lái)確定圖塊的所述線中的開(kāi)始圖塊,所述第一圖塊包括在其邊界上的所確定的交叉點(diǎn)或者包括所述基元的頂點(diǎn); 通過(guò)找到所述線中的最后圖塊,來(lái)確定圖塊的所述線中的結(jié)束圖塊,所述最后圖塊包括在其邊界上的所確定的交叉點(diǎn)或者包括所述基元的頂點(diǎn); 確定所述基元處于所述線中的在所述開(kāi)始圖塊與所述結(jié)束圖塊之間并且包括所述開(kāi)始圖塊和所述結(jié)束圖塊的圖塊中。13.根據(jù)權(quán)利要求10到12中的任一項(xiàng)所述的圖形處理系統(tǒng),其中圖塊的所述線是圖塊的行或列。14.根據(jù)權(quán)利要求10到13中的任一項(xiàng)所述的圖形處理系統(tǒng),其中所述圖塊化單元還被配置為: 在所述邊界框中存在比圖塊的列更少的圖塊的行的情況下,確定圖塊的所述線是圖塊的行;以及 在所述邊界框中存在比圖塊的行更少的圖塊的列的情況下,確定圖塊的所述線是圖塊的列。15.根據(jù)權(quán)利要求10到14中的任一項(xiàng)所述的圖形處理系統(tǒng),其中所述圖塊化單元被配置為確定所述基元沒(méi)有處于未與所述邊界框至少部分地重疊的圖塊中。16.根據(jù)權(quán)利要求10到15中的任一項(xiàng)所述的圖形處理系統(tǒng),其中所述圖塊化單元被配置為對(duì)所述邊界框進(jìn)行剪裁使得所述邊界框不延伸到所述渲染空間的所述邊緣以外。17.根據(jù)權(quán)利要求10到16中的任一項(xiàng)所述的圖形處理系統(tǒng),其中所述圖塊化單元還被配置為在確定所述基于處于特定圖塊中的情況下將所述基元的基元標(biāo)識(shí)符包含在針對(duì)所述特定圖塊的顯示列表中。18.根據(jù)權(quán)利要求17所述的圖形處理系統(tǒng),還包括渲染單元,所述渲染單元被配置為針對(duì)所述渲染空間的所述圖塊中的每個(gè)圖塊,根據(jù)針對(duì)所述圖塊的所述顯示列表來(lái)渲染所述圖塊中的所述基元。
【文檔編號(hào)】G06T15/00GK106067188SQ201610211411
【公開(kāi)日】2016年11月2日
【申請(qǐng)日】2016年4月6日 公開(kāi)號(hào)201610211411.4, CN 106067188 A, CN 106067188A, CN 201610211411, CN-A-106067188, CN106067188 A, CN106067188A, CN201610211411, CN201610211411.4
【發(fā)明人】X·楊, R·席德
【申請(qǐng)人】想象技術(shù)有限公司
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1