專利名稱:用于圖像處理的塊渲染的制作方法
用于圖像處理的塊渲染
背景技術:
塊渲染(tiling rendering)體系結構將計算機生成的圖像劃分成較小部分以分別進行渲染。每個部分稱為塊。塊渲染體系結構的流水線通常由前端和后端組成。前端對場景中的頂點執(zhí)行頂點著色,并將每個所得三角形歸類到與其重疊的塊中。注意,對非幾何屬性的著色可推遲到后端。在前端之后出現(xiàn)的后端通過對任何余下屬性進行頂點著色、將其三角形柵格化并對所得的片段進行像素著色來分別處理每個塊。具有許多稱為核的獨立執(zhí)行單元的并行硬件需要使渲染工作在核之間平均分配以充分利用其資源的策略,即工作需要是負荷平衡的。這是極其重要的,因為渲染性能會取決于渲染完成方式而顯著提高。前端可將場景幾何結構分割成合適的區(qū)塊,以供每個核并行地處理。每個此類區(qū)塊被稱為幾何批次(geometry batch) 0該分割可以是任意的,因此容易在前端實現(xiàn)良好的負荷平衡。后端是固有并行的,因為每個塊能被獨立地處理。然而,這并不保證良好的負荷平衡。取決于場景中的幾何分布和著色復雜度,大部分工作可能在幾個塊中結束。在最壞情況下,單個塊是代價昂貴,而剩下的塊是低廉的。這導致負荷失衡,因為選中昂貴塊的核將需要大量時間來處理該塊。在此期間,余下核將空閑,因為它們很快完成了它們的工作。
圖1是一個實施例的流程圖;圖2是一個實施例的流程圖;圖3是一個實施例的流程圖;以及圖4是一個實施例的系統(tǒng)描述。
具體實施例方式可使用技術的組合來平衡塊渲染流水線中后端的負荷。如圖1所示,在一些實施例中,在前端工作42之后,部件包括用于估計給定塊的成本的流水線40、記錄成本模型所需信息的前端每塊計數(shù)器44、何時分割塊的試探法46、對向核調派工作進行排序的試探法 48、以及丟棄子塊外的三角形和片段的專用柵格化器50。然后后端工作52完成。準確查明單個核需要多少時間來執(zhí)行塊的后端工作的唯一方式是實際執(zhí)行該工作。然而,需要在不實際進行該工作的情況下大概知道所需時間是多長。為此,在一個實施例中,不昂貴的成本估計模型計算需要多少時間來執(zhí)行塊的后端工作。當已針對所有塊完成該估計時,在可用核之間均勻地分配所有塊的工作的機會明顯更高。成本估計模型可使用可從典型前端記錄的數(shù)據(jù)以給出在后端處理給定塊所需的時間的估計。為了估計單個三角形的成本,需要大概知道它覆蓋了多少個樣本。在理想情況下,“父”塊和三角形之間的交集的面積可被用作三角形覆蓋了多少個樣本的度量。這可能不容易計算,因為它可能涉及對每個三角形的代價昂貴的剪裁。替代地,在確定交迭塊時, 可利用在前端進行的觀測對每個三角形粗略歸類,例如該三角形是否覆蓋整個塊。此外,很小的三角形可使用柵格化器中的特殊代碼路徑,從而促成對此類三角形特殊歸類的需要。 不同的歸類稱為三角形類型。注意,三角形類型與諸如像素著色或ζ-緩沖模式之類的當前渲染狀態(tài)無關。給定塊的數(shù)據(jù)可包括但不限于歸屬于塊的某種三角形類型的三角形數(shù)量; 歸屬于塊的某種三角形類型的每個三角形的像素著色成本總和,例如執(zhí)行針對單個片段的某個像素著色器所需的循環(huán);以及歸屬于塊的遵守特定渲染狀態(tài)(例如啟用僅模板或早期 ζ挑選(early-z-cull))的某種三角形類型的三角形數(shù)量。包括針對較高級構造的計數(shù)器也是有用的,諸如包含與塊交迭的三角形的幾何批次的數(shù)量。每個幾何批次通常將引發(fā)特定量的開銷。在一些實施例中,該模型可使用該數(shù)據(jù)來形成線性和對數(shù)項,這些項的加權和表示處理該塊所花費的時間。對數(shù)項用于對包藏(occlusion)進行建模,即,當三角形可見時,因為需要針對該三角形覆蓋的像素計算所有著色,所以通常將花費較長時間來處理該三角形,而當三角形被之前渲染的三角形包藏(遮蔽)時,執(zhí)行將較為低廉??墒褂檬諗坑诿肯袼氐慕坏切螖?shù)的對數(shù)的模型。參見CoX、Michael以及I^at Hanrahan的“用于對象并行渲染的像素合并分布式監(jiān)聽算法(Pixel merging for object-parallelrendering a distributed snooping algorithm) ”,1993 并行渲染研討會論文集,第 49-56 頁(1993) (Proceedings of the 1993 Symposium on ParallelRendering, pp.49-56 (1993))。通過將該模型與測得的定時進行擬合來確定權重。該擬合可在運行時(runtime)
期間以合適的間隔或離線時利用來自多個場景的數(shù)據(jù)執(zhí)行。所使用的對數(shù)函數(shù)可以是針對
整數(shù)計算非常高效的2-對數(shù)的底(floor)。一非線性模型是
權利要求
1.一種用于塊分割的方法,包括估計塊渲染流水線中的后端工作所需的時間。
2.如權利要求1所述的方法,其特征在于,包括基于所述估計成本判定是否將塊分割成子塊。
3.如權利要求1所述的方法,其特征在于,包括標識三角形類型并將所述類型用于估計。
4.如權利要求3所述的方法,其特征在于,包括基于三角形是否覆蓋整個塊來標識三角形類型。
5.如權利要求2所述的方法,其特征在于,包括基于所述三角形覆蓋的樣本數(shù)量來標識三角形類型。
6.如權利要求1所述的方法,其特征在于,包括確定早期ζ挑選是否啟用來估計所述時間。
7.如權利要求1所述的方法,其特征在于,包括使用多個核并使工作于從塊分割的子塊上的每個核能夠遍歷所述塊中的所有三角形,以確定哪些三角形落在所述核的分配子塊內。
8.一種存儲指令的非瞬態(tài)計算機可讀介質,所述指令使處理器能 使用成本估計模型估計塊渲染流水線中每塊的后端工作所需的時間。
9.如權利要求8所述的介質,其特征在于,還存儲使用所述成本估計模型來判定是否將塊分割成子塊的指令。
10.如權利要求8所述的介質,其特征在于,還存儲用于標識三角形類型并將所述類型用于估計的指令。
11.如權利要求10所述的介質,其特征在于,還存儲用于基于三角形是否覆蓋整個塊來標識三角形類型的指令。
12.如權利要求10所述的介質,其特征在于,還存儲用于基于所述三角形覆蓋的樣本數(shù)量來標識三角形類型的指令。
13.如權利要求8所述的介質,其特征在于,還存儲用于確定早期ζ挑選是否啟用來估計所述時間的指令。
14.如權利要求8所述的介質,其特征在于,還存儲用于使用多個核并使工作于從塊分割的子塊上的每個核能夠遍歷所述塊中的所有三角形以確定哪些三角形落在所述核的分配子塊內的指令。
15.一種裝置,包括成本估計單元,用于確定是否分割塊;以及多核處理器,每個核在未分割的塊以及子塊上工作,所述子塊是通過遍歷塊中的所有三角形并確定哪些三角形落在所述核內作為有符號子塊而從所述塊中分割出來的。
16.如權利要求15所述的裝置,其特征在于,包括用于每個核的一組計數(shù)器,所述計數(shù)器用于開發(fā)成本估計模型。
17.如權利要求16所述的裝置,其特征在于,所述計數(shù)器耦合至求和裝置。
18.如權利要求17所述的裝置,其特征在于,包括耦合至所述求和裝置的成本估計單兀。
19.如權利要求15所述的裝置,其特征在于,包括用于估計塊渲染流水線中后端工作所需時間的估計單元。
20.如權利要求19所述的裝置,其特征在于,所述估計單元用于標識三角形類型并將所述類型用于估計。
全文摘要
本發(fā)明公開了用于圖像處理的塊渲染??稍诓粚嶋H進行后端工作的情況下估計后端工作所需的時間。前端計數(shù)器記錄成本模型的信息,且可使用試探法來獲知何時分割塊和針對核的工作調派排序。專用柵格化器丟棄子塊外的三角形和片段。
文檔編號G06T11/20GK102279978SQ20111016197
公開日2011年12月14日 申請日期2011年6月7日 優(yōu)先權日2010年6月8日
發(fā)明者R·巴林格, T·G·阿凱奈-莫勒 申請人:英特爾公司