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