专利摘要:
景深可藉由淘汰在一透鏡上一欲呈現之三角形為不可見的半空間區域而被柵格化。接著,內部測試僅對剩餘的未淘汰半空間區域執行。欲呈現之三角形與被處理瓦片之間的分離平面可用以界定半空間區域。
公开号:TW201310393A
申请号:TW101122486
申请日:2012-06-22
公开日:2013-03-01
发明作者:Robert M Toth;Tomas G Akenine-Moller;Carl J Munkberg
申请人:Intel Corp;
IPC主号:G06T5-00
专利说明:
運用選擇性淘汰之隨機柵格化技術
本發明係有關於運用選擇性淘汰之隨機柵格化技術。 發明背景
此發明有關於電腦,且特別是有關於圖形處理。
在過去幾年中,對隨機柵格化的研究活動增加。景深(DOF)與動態模糊同時有效柵格化仍是難以實現的目標。僅柵格化景深是一個實質上比較簡單的問題,但是,供其專用的演算法並未被充分地探討。
依據本發明之一實施例,係特地提出一種隨機柵格化方法,其包含以下步驟:使用一電腦處理器,基於運算成本選擇性地淘汰在一透鏡上一欲呈現之凸多邊形為不可見的區域。 圖式簡單說明
第1圖是顯示依據一實施例的二維分離平面的草圖;第2圖是依據一實施例的可能可見及不可見的半空間的示意圖;第3圖是依據一實施例分離平面如何產生半空間線的描繪;第4圖是依據一實施例,一投影通過瓦片角點之三角形的示意圖;第5圖是顯示依據一實施例,透過一瓦片看見的三角形的可見區域的草圖;第6圖是依據一實施例,與焦平面交叉之一三角形的描繪;第7圖是繪示依據一實施例,三角形邊qr為一對焦平面測試產生交點v的交叉線的草圖;第8圖是顯示依據一實施例,將空間分成四個區域的二候選平面的草圖;第9圖是具有對應存儲器的一透鏡柵格的草圖;第10圖是一實施例的流程圖;第11圖是一實施例的硬體描繪;第12圖是另一實施例的流程圖;以及第13圖描繪另一實施例所用的值。 詳細說明
使景深柵格化的有效演算法是以移除透鏡上(u,v)空間之半空間區域為基礎,由該半空間區域確定不能透過一瓦片內的任一像素看見欲呈現之三角形。我們精確地找到所有此類區域的交點,且所產生的區域用以減少需要執行完整的「樣本內部三角形」測試的一瓦片中樣本的數目。我們提出關於如何使用(u,v)空間中所產生的區域來快速淘汰樣本免於被測試的若干種有效方法。
通常在景深(DOF)呈現中,透鏡區域藉由(u,v)Ω[0,1]×[0,1]被參數化,其中Ω是光圈形狀且可以,例如,是正方形或圓形。一般而言,我們使每一像素的n個樣本隨機柵格化,其中每一樣本由一空間位置(x i ,y i )及一透鏡位置(u i ,v i )組成。一三角形的一裁剪空間頂點被表示為,且一三角形則為p 0 p 1 p 2。一瓦片是焦點對齊平面中的一矩形像素塊。有時,我們使用「焦平面」一詞而非「焦點對齊平面」,它是w=F的平面,所呈現的幾何形狀將在該平面上焦點完全對焦。一內部測試僅計算某一樣本(x i ,y i ,u i ,v i )是否f在被柵格化之三角形內部。一般而言,不必要的內部測試的數目應被最小化。
為了描述我們的演算法,我們將使用分離平面的概念,大限光器用此一概念基於單元格遮擋淘汰。二凸多面體物件之間的一分離平面是一種由一物件的一邊及另一物件的一頂點所形成的平面,且同時,該等物件必須位於平面的兩側。此一情形的圖示以二維繪示在第1圖中。
在第1圖中,一瓦片與一三角形的分離線可用以找出透鏡上可減少隨機柵格化所需運算數目的區域。透鏡上的區域10及12使用分離平面來檢出。應注意的是,在區域12中,沒有可透過瓦片中的任一點「看見」三角形的透鏡位置。在第1圖中的左側,一三角形位於焦平面的後面。在第1圖中的右側,一三角形在焦平面的前面。當焦平面後面的一頂點被用以界定分離平面時,正半空間包含瓦片,且反之亦然。
由一瓦片及一三角形得到的分離平面可用以移除透鏡上的半空間區域免於進一步處理。我們找出透鏡上不能透過瓦片中的任一點「看見」三角形的區域,及在透鏡座標(u i ,v i )的瓦片中的所有樣本,在此種區域中不需要任何進一步的內部測試。從第1圖中可直觀地理解,瓦片與三角形之分離線用以淘汰透鏡上的區域12。
在三維中,有兩種不同型態的分離平面可用以淘汰透鏡上的半空間區域。這些分離平面被繪示於第2圖中。第一組分離平面由一瓦片邊緣及一三角形頂點產生。讓我們用π i來表示這些平面,其中平面的正半空間由所有點p組成,如此則π i (p)0。現在,考量瓦片最左的(垂直)邊緣。在第2圖左側的範例中,瓦片的左邊與最右邊的三角形頂點產生一分離平面。此分離平面將透鏡區域切成兩個半空間。我們稱切割線為半空間線,h i (u,v)=0。
在第2圖的左側,此範例中三角形14之最右邊的頂點與最左邊的瓦片邊緣形成一分離平面。此平面與透鏡區域交叉,且將它分成兩個半空間:負半空間16,它在透鏡上的點透過瓦片中的任一點都不能看見三角形,及正半空間18,其在透鏡上的點可能可以看見三角形。分離平面的法線與瓦片本身在平面的同一側,且此法線界定透鏡上的正及負半空間。在第2圖的右側,一分離平面由一三角形邊及一瓦片角點形成。
應注意的是,我們依形成分離平面的三角形頂點在焦平面前面還是後面來選擇分離平面之法線的不同「符號」(即+n或-n)。其理論基礎是我們想淘汰h i (u,v)<0的區域,與頂點位置無關。對於焦平面後面的頂點,分離平面的法線被選擇成使得其正半空間包含整個瓦片。對照之下,對於焦平面前面的頂點,分離平面的法線使其負半空間包含整個瓦片。這被繪示於第1圖中。
半空間線之二維法線的方向得自對應分離平面之法線。這些二維法線在第2圖中被繪示為箭頭。按幾何學原理容易看出,透鏡上的負半空間中沒有點能夠透過瓦片中的任一點「看見」三角形。
第二組半空間線由一三角形邊與一瓦片角點所形成之分離平面產生。一範例被繪示在第2圖的右側。我們用Π j 來表示這些半空間線以將它們與由瓦片邊緣及三角形頂點所形成的平面(π i )區分開。Π j 平面亦產生半空間線,被表示為H j (u,v)=0。
第一組半空間線h i 將是水平的或是垂直的,且一般而言,第二組半空間線H j 可具有任意方位。當所有瓦片邊緣均產生一分離平面時,它們將在透鏡平面中形成一二維框。利用此框,淘汰整個瓦片中之樣本的廣大部分免於進一步處理是簡單而有效的。一範例被繪示在第3圖的左側。在同一張圖的右側,透鏡上更多的區域已由H j 平面剔除。當所有三角形頂點都在焦平面的前面或後面時,透鏡上剩餘的有效區域由凸區域來界定,其中h i (u,v)0且H j (u,v)0。只有在此有效區域(第3圖中的區域20)內透鏡座標為(u i ,v i )的樣本需要做內部測試。在下文中描述的我們的實用演算法的效率是源於此一事實。
在第3圖中,透鏡是粗線正方形。在左側,前四個分離平面產生水平及垂直的半空間線,它們由h i (u,v)=0來界定。它們在透鏡平面中共同形成一二維邊界框。只有透鏡位置在區域20中的樣本需要被進一步處理。僅使用前四個平面就可剔除透鏡的大量區域。在第3圖的右側,第二組半空間線H j (u,v)=0可進一步縮小區域20。當三角形與焦平面相交時,情況更加複雜且我們將在下文中證明在此種情況下如何使用第一組半空間線h i (u,v)來淘汰。
產生分離平面並非總是可行的。例如,當三角形切穿過一瓦片時,將不能在該瓦片中找到分離平面。然而,這在三角形從朝前變為朝後時發生,或反之亦然,且因而可以增加一半空間線來切去三角形朝後的透鏡部分。這對接近物件之輪廓的三角形可能是有利的。實際上,與場景中的其他三角形相比,此種三角形通常只有少數,且因此,我們還未發現這會有好處。
我們將使用大量符號來簡化演算法的說明。和之前一樣,三角形頂點被稱作p 0、p 1及p 2。一瓦片的四個角點由t a 、t b 、t c 及t d 來表示。一頂點p j 透過一瓦片角點t i 在透鏡上的投影將由來表示。
參照第4圖,顯示符號的一插圖,一三角形之頂點p 0、p 1及p 2透過瓦片角點t a 、t b 、t c 及t d 而投影到透鏡上以形成透鏡座標I ij ,其中i {a,b,c,d},且j {0,1,2}。例如,頂點p 2是透過t b 投影產生I b2
頂點p j 透過瓦片角點t i 之投影產生透鏡座標I ij : 當呈現一特定三角形時,偏移o及差量δ是恆定的,且因此,這些參數可以一三角形設置來計算。除此之外,只有對瓦片座標的一線性相關,意味著當從一瓦片移動至下一瓦片時,它們可使用增量更新被有效地評估。若,則座標將永不會在透鏡上產生一實際上有淘汰作用的半空間。原因在於,投影將接近±∞,這將永不會有助於在一有限透鏡上淘汰。因此,剩餘的運算可忽略這樣的頂點。
接下來,我們描述分離平面π如何透過一瓦片邊緣及一三角形頂點被找到。確定一平面是否是分離平面的最直接的方式是測試未用以界定平面的二三角形頂點相對於瓦片是否在平面的對面。我們將描述一種有效的實施方式。
由於這些半空間線h(u,v)=0將是水平的或垂直的,所有運算都可在二維中完成。讓我們假定我們想確定是否一出自一三角形頂點p j 的平面是一穿過位於的一瓦片邊緣的分離平面。在此情況下,所有計算都可在xw平面中全部被完成。在下文中,回顧焦平面在w=F,且透鏡在w=0。還應注意的是,在所有我們的說明中,像素都精確位於焦平面中。
為了確定是否實際上由一分離平面界定一半空間線,我們想確定另兩個三角形頂點位於哪個半空間。若它們兩者皆不與瓦片本身位在同一半空間中,則我們找到一分離線,。
為了測試是否是一分離平面,我們設定q=p j ,且令r為其他三角形頂點中的一三角形頂點。我們由(q x ,q w )導出一二維線方程式(,F),且將另兩個三角形頂點插入該線方程式。在少量數學變換之後,我們發現點(r x ,r w )的線方程式求解為: 還應注意的是e(q,r)=-e(r,q),所以對於一特定瓦片,僅e(p 0,p 1)、e(p 1,p 2)及e(p 2,p 0)需要求解。一般而言,對於界定一分離線,另兩個三角形頂點應在線的同一側,且〉F時在負半空間中,以及〈F時在正半空間中,這可以從第1圖中看出。如先前所述,的情況被忽略,因為此種投影將不會提供任何淘汰。應注意的是,方程式2中的是線性的,因為是線性的而如此預期。
例如,假設頂點q=p 0,及最左方的瓦片邊緣,藉由求解r=p 1及r=p 2的線方程式(方程式2),我們測試是否是一分離半空間線。若它是分離的,則對應的半空間線h(u,v)由下式來界定: 它是透鏡上的垂直半空間線。應注意的是,淘汰「方向」隨頂點是否在焦平面F前面或後面而變。除此之外,p w 〉F測試在對最右邊的瓦片邊緣測試時逆轉。對於已驗證為真實分離平面(使用方程式2)的所有透鏡座標及,建立相似的方程式。這些是計算水平及垂直半空間線h i (u,v)=0所需的全部。
最後,我們描述我們如何處理至少一頂點位於焦平面前面,以及至少一頂點位於焦平面後面的情況。
在第6圖中,當一三角形與焦平面相交時,一瓦邊可產生兩個分離平面。應注意的是,在此情況下,淘汰在「內部」區域24中完成,與當三角形與焦平面並未相交時(參見第1圖)形成對照。在此情況下,我們在透鏡上對最高區域25產生一uv框且對最低區域產生一uv框。
焦平面後面的三角形頂點集合以A代表,且焦平面前面的三角形頂點集合以B代表。當一集合為空時,所有頂點都位於焦平面的一側。在此等情況下,直接在透鏡上的uv域中產生一框,且內部測試將僅在框內部實行。我們稱這些框為uv框,我們廣義地使用「框」一詞,因為它們可在某些方向上無限延伸,正如我們將看到的。當A及B均為非空集合,且有分離半空間線由此二集合產生時,二uv框將被產生。這可在第6圖中看到。當一集合(例如,A)產生二分離半空間線時,此二分離半空間線將用以界定集合的uv框。
這繪示於第5圖中。透過瓦片23看見三角形的可見區域。在此情況下,我們在透鏡上產生二uv框,且僅對在這些區域內具有uv座標的樣本進行內部測試。
在計算I ij 之後,平面的分類可以用需要較少活資料且可能更適合平行化的不同方式來執行。下述演算法僅對於u維被描述;同一程序對v維也有效。
我們從依據三角形頂點位於焦平面的哪一側來對三角形頂點分類開始。使用第4圖中的符號,我們形成二區間: 若〉0,則方程式4可被簡化,且我們只需對每一區間界限測試二瓦片角點中的一瓦片角點。若所有的三角形頂點都在焦平面的一側上,則其中一區間為空,且u中的可見區間由或提供。若,則一垂直瓦片邊緣與一三角形角點之間不存在分離平面。
最終,若,,且,則我們得到可見區間:
v維的區間相似地被計算。為了導出透鏡上的可見2D區域,包括u及v的A邊界的區間被組合以形成一2D區域。對於包括B邊界的區間,做法相似。例如,若u及v兩者如方程式5中所描述的情況,在〉,且〉之下,則所產生的uv框為:uv框A:[ A u ,∞]×[A v ,∞] (6)
此情況被繪示於第5圖中。
只要頂點不在焦平面中,迄今所述演算法就是正確的。每當此種頂點存在時,就需要對計算區域執行一些小調整:, B u =-∞,若對於任一符合之p j ,, A u =-∞,,若對於任一符合之p j ,,(8)且對於v亦相仿。
接下來,我們描述如何計算H j 線。
給定一三角形邊qr,我們形成射線q+t(r-q)=q+t d。參照第7圖,我們計算射線與焦平面的交點v。我們將焦平面分成九個區域,並識別v落入哪一區域。交點v並不取決於我們想要將邊分類的瓦片。因此,可以預先計算此點及單元格改變的瓦片。因此,對每一瓦片唯一需要做的事是比較瓦片座標與這些預先算出的邊界。
在v被分類成九個格之一下,我們識別形成最大角∠t m vt n 的二瓦片角點m及n。這些可被表列如下:
使用此表格,我們可形成二候選平面Π1:(q,r,t m )和Π2:(r,q,t n )。使用d w 分量的符號,即,邊qr是否指向照相機,我們可選擇平面法線方向,使得瓦片在各別平面的負半空間中。對於平行於影像平面的邊,d w =0,且我們使用d x ,d y 來確定m及n以及使用q w -F的符號來確定法線方向。單元格5沒有候選平面,這是因為在此一單元格中,邊直指瓦片,且不可能在邊與一瓦片角點之間存在任何分離平面。同樣地,在q w=r w=F時,任一邊qr都不能產生一有用的半空間線,且因此被忽略。
在第7圖中,三角形邊qr是對焦平面進行測試的交叉線,其產生交點v。瓦片abcd將焦平面分為九個區域,編號為1-9。在上述範例中,交點v在單元格1中,且因此形成分離平面的候選角點是b及c。在此圖示中,它們被繪示為從v到c及從v到b的線,形成v與瓦片之間的切線。
為了確定Π1及Π2是否是分離平面,三角形的第三頂點對這些平面測試。若該頂點是在一平面的正半空間中,則該平面是一分離平面。每一三角形邊可產生最多兩個分離平面,正如在第8圖中可見。
在第8圖中,二候選平面Π1及Π2將空間分成四個區域,繪示為I--Ⅳ。構造上,三角形邊qr包括在這兩個平面內。Π1及Π2是否是分離的取決於第三三角形頂點s在哪一區域中。若s在區域I或Ⅱ中,則Π1是一分離平面。若s在區域Ⅱ或Ⅲ中,則Π2是分離的。從而一三角形邊qr可產生0、1或2個分離平面。
給定一平面Π:n.x+c=0,透鏡(u,v,0)上對應的半空間線為n.(u,v,0)+c=n x u+n y v+c. (9)此方程式非線性地變化,且因此,必須對每一瓦片來計算。為了說明這一點,再次考慮三角形邊qr與焦平面中的一瓦片角點t。通過這些點的一平面由P:n.x+c=0來界定,其中:n=q×r+(r-q)×t c=-t.(q×r) (10)應注意的是,當我們在屏幕空間中移動時,法線n及c改變。變化與q與r的深度差成比例。
最後,平面Π i 的法線需要在淘汰透鏡上的樣本時被仔細處理。當淘汰uv框A中的區域時,正半空間Π i 中的樣本可被淘汰。然而,當淘汰uv框B中的區域時,負半空間Π i 中的樣本可被淘汰。
直到現在為止,位於透鏡平面中的半空間線h i 及H j 以一精確方式被算出。在本小節中,我們將描述半空間線如何被利用來快速淘汰樣本以實現更迅速的景深柵格化。半空間線是在每一瓦片的基礎上被計算,且因而淘汰機會被共享於一瓦片中的所有像素之間。然而,若我們要看到效能提升,程序仍需要非常有效率。將看到的是,確定哪些樣本位於透鏡之有效子空間中本質上是一柵格化程序。
我們將一正方形網格疊加到透鏡形狀上且追蹤落入每一網格單元的樣本數目。這繪示於第9圖中。這些樣本分佈隨像素而改變,且我們使用被攪亂且重覆在屏幕上的一小分佈集合(32×32)。應注意的是,32×32可由實施者選擇的一解析度取代。
第9圖繪示具有對應存儲器的一透鏡網格。對於每一網格單元,我們將樣本數目儲存在該單元內,以及指向該網格單元中的第一樣本的一偏移。在此一佈局下,我們可對照分離半空間線有效率地淘汰大量樣本集合。
由三角形頂點及瓦片邊緣產生的半空間線h i 由於它們是軸對齊的而提供一種容易的淘汰手段。我們可簡單地將它們向下及向上箝位至最近的網格單元,並使用箝位的矩形範圍來快速地通過相關樣本。
對於非軸對齊半空間線H j ,我們對由h i 線算出之矩形範圍中的所有網格單元進行迭代,且對網格單元與H j 線之間的重疊謹慎地進行測試。對於每一屏幕空間瓦片這實質上歸結成一微柵格化程序以便淘汰樣本。一種使此程序最佳化的方式是利用透鏡網格的有限解析度並使用一預先計算的柵格器。此處的概念是得到一小的查找表,其中內部的位元遮罩是對於不同的邊取向預先算出並儲存的(例如,一64位元遮罩表對一8×8柵格是足夠的)。所有邊都在表中被詢問,且內部區域藉由對位元遮罩實行AND運算而被計算。
在下述虛擬碼中,我們概述使用半空間線淘汰來呈現景深的全演算。

依據一實施例,一高階景深柵格化演算法被繪示於第10圖中。第10圖中所示之序列可以在軟體、硬體及/或韌體中實施。在一軟體實施例中,該序列可藉由儲存在一非暫態電腦可讀媒體,諸如光學、半導體或磁性儲存裝置上的電腦可讀指令來實施。
一開始,一瓦片被選擇(方塊28),且分離平面在欲呈現的三角形與被處理瓦片之間產生,如方塊30中所示者。接下來,透鏡上的半空間區域使用分離平面來界定,如方塊32中所示者。接著,有用的半空間區域被識別,如方塊34中所示者。有用的半空間區域是欲呈現三角形在透鏡上可見的那些區域。無用半空間區域被淘汰,如方塊36中所示者,且並不會被進一步處理。如方塊38中所示者,僅有用的半空間區域被內部測試。在方塊40中,半空間區域線被增量更新。菱形框42的檢測確定這是不是最後一個瓦片。若是,則流程結束,否則,流程方塊28迭代回到方塊28來選擇另一瓦片進行處理。
在一實施例中,一甲骨文函數決定何時淘汰運算的某一部分將會具有低效率,使得淘汰成本超過被淘汰的成本。當甲骨文函數確定此等運算效能差時,它們被禁用。在一實施例中,就景深而言,這發生在投影三角形大小與到焦平面的距離相比較小時,即在一三角形在屏幕空間中變得非常模糊時。由於可以預料到這對景深呈現而言經常發生,甲骨文函數可提供顯著增益。一般而言,一瓦片測試確定欲呈現三角形是否與一瓦片重疊。然而,一瓦片測試還可提供額外的資訊。例如,若一三角形與該瓦片重疊,則該測試可提供關於哪些樣本需要被內部測試及哪些樣本無需進一步處理的資訊。對於景深而言,處理位於透鏡上的樣本可被避免,且對於動態模糊而言,處理時間樣本可被避免。組合也是可能的。
景深的瓦片測試由計算瓦片與三角形之間的二組分離平面組成。對齊瓦片邊緣的第一組平面始終有利於計算。對齊三角形邊的一組平面計算成本更高,且主要在散焦相較於平面欲對齊之三角形邊之長度大時有用。這些後提到的平面根據甲骨文函數被評估並自適應禁用。從現在起後提到的平面的計算被稱作瓦片邊緣測試。
甲骨文函數使用如下。對一邊執行瓦片邊緣測試的成本被表示為Ctest_enabled。不對一邊執行瓦片邊緣測試的成本被表示為Ctest_disabled(此為可藉由瓦片邊緣測試而避免的在瓦片內執行所有樣本測試的成本)。若Ctest_enabled>Ctest_disabled,則評估邊的瓦片邊緣測試對當前三角形禁用。淘汰散焦三角形之邊界框中所有瓦片之一邊的成本Ctest_enabled按照下式來計算: 其中Atotal是散焦三角形之邊界框的屏幕面積,Atile是一單一瓦片的面積,且Ctest_edge_test是計算一瓦片邊緣測試的成本。Ctest_disabled按照下式來計算:C test_disabled =A cull .C sample_test .R,其中Acull是可藉由邊而被淘汰的密度加權屏幕面積,Csample_test是測試一樣本的成本,且R是多取樣率。應注意的是,當多取樣率改變時,C sampe_test .R可能是預先計算,或甚至由於R通常僅是僅有的幾個值中的一個值而被表列。
依據一實施例,可藉由一特定邊之瓦片邊緣測試來淘汰的屏幕表面積Acull的估計值以三角形配置被計算,如第12圖中所闡述。
每一三角形頂點i的屏幕空間投影(Xi,Yi)以透鏡Ω中的透鏡座標(u,v)的函數:u x v:[-1,1]x[-1,1]被計算(方塊50)。景深是在裁剪空間中的一切變,且投影可被寫作: 其中及是透鏡中心的屏幕空間投影,且k及m是依切變矩陣元素及三角形頂點的z及w分量而定的每一頂點的常量。
投影三角形邊△(u,v)=(X1-X0,Y1-Y0)形成(方塊52)。
投影邊的軸對齊面積:A bb (u,v)=|△ x (u)||△ y (v)|被計算(方塊54)。
可由此邊淘汰的平均面積藉由積分透鏡Ω上的一半軸對齊面積而被計算(方塊56): 其中AΩ是透鏡面積。為了計算積分,這包含一abs運算,Abb被分成(最多四個)C1連續部分。這容易藉由對(u,v)解線性方程式△ x (u)=0,△ x (v)=0來完成。使用所產生的面積Acull
為了得到正確加權之成本C test_disabled 及C test_enabled ,所有區域及X與Y可相對於標準化裝置座標計算像素。標準化裝置座標可被使用,但是在縱橫比非1:1時需要進一步調整以得到正確結果。在通常情況下,對透鏡Ω內部的(u,v),△ x (u)=0,△ x (v)=0中無零值,且△ x (u)>0,△ x (v)>0,積分的值僅為,它是從透鏡中心看到的投影邊的軸對齊邊界框的一半面積。在透鏡內之△ x (u)=0,△ x (v)=0無解的特殊情況的想法下,我們可設計一較粗糙但速度稍快的近似:,其避免對△ x (u)=0,△ x (v)=0求解的成本。此等效於假定對於透鏡內的任一(u,v),邊的邊界框不會變得退化。應注意的是,該框在其面積為零時退化。
基於估計對齊三角形邊的半線的淘汰可能性的選擇性淘汰法(「瓦片邊緣測試」)也可被應用於通用隨機柵格化。當計算上述積分A_{avg}時,我們對二透鏡參數積分。在一般情況下,我們不僅對透鏡積分,而且對影響三角形邊之屏幕空間位置的所有隨機參數積分。例如,就隨機動態模糊柵格化而言,積分是對時間而非透鏡座標積分,且對於一包括動態模糊及景深兩者的一隨機柵格化,積分是對時間及二透鏡參數積分。
可藉由對一特定邊的瓦片邊緣測試來淘汰的屏幕表面積Acull的一替代估計值按照下式來計算: 其中(x0,y0)及(x1,y1)是從透鏡中心看到的邊頂點之投影屏幕空間位置,(W0,H0)及(W1,H1)是頂點的模糊圈,如第13圖中所示。
第11圖中所示之電腦系統130可包括一硬驅動器134及一可移式媒體136,它們藉由一匯流排104被耦接至一晶片組核心邏輯110。該電腦系統可以是任一電腦系統,包括智慧型行動裝置,諸如智慧型手機、平板裝置,或行動網際網路裝置。一鍵盤及滑鼠120,或其他習知的組件,可經由匯流排108被耦合至該晶片組核心邏輯。在一實施例中,該核心邏輯可經由一匯流排105耦合至圖形處理器112,及中央處理器100。圖形處理器112還可藉由一匯流排106而被耦合至一碼框緩衝器114。碼框緩衝器114可藉由一匯流排107被耦合至一顯示屏幕118。在一實施例中,一圖形處理器112可以是使用單一指令多資料(SIMD)架構的一多線程、多核心的平行處理器。
就一軟體實施而言,有關的編碼可被儲存在任一適合的半導體、磁性或光學記憶體中,包括主記憶體132(如139所示)或圖形處理器內任一可利用的記憶體。因此,在一實施例中,用以執行第10及12圖之序列的編碼可被儲存在一非暫態機器或電腦可讀媒體,諸如記憶體132,及/或圖形處理器112,及/或中央處理器100中,且可在一實施例中藉由處理器100及/或圖形處理器112來執行。
第10及12圖是流程圖。在某些實施例中,這些流程圖中所示的序列可以在硬體、軟體或韌體中實施。在一軟體實施例中,一非暫態電腦可讀媒體,諸如半導體記憶體、磁性記憶體,或光學記憶體可用以儲存指令,且可藉由一處理器來執行以實施第10及12圖中所示之序列。
一通用技術選擇性地啟用隨機柵格器的一特定的淘汰測試。雖然一範例是在景深柵格化的情況下被提供,該技術可應用於一般的隨機柵格化,包括動態模糊及動態模糊與景深之組合。僅使用動態模糊包含一三維(3D)柵格器,而僅使用景深包含使用一四維(4D)柵格器,且同時使用動態模糊及景深包含使用一五維(5D)柵格器。
本文所述的圖形處理技術可在各種不同的硬體架構中實施。例如,圖形功能可整合在一晶片組內。可選擇地,一離散的圖形處理器可被使用。作為又一實施例,圖形功能可藉由一通用處理器,包括一多核心處理器來實施。
此說明書中提及「一個實施例(one embodiment)」或「一實施例(an embodiment)」意指與該實施例關聯所描述之一特定特徵、結構或特性被包括在本發明所包含的至少一實施態樣中。因此,片語「一個實施例(one embodiment)」或「在一實施例中(in an embodiment)」之出現不一定指同一實施例。此外,特定特徵、結構或特性可以所繪示之特定實施例之外的其他適當形式實行且所有的此種形式可被包含在本申請案之申請專利範圍內。
雖然本發明已就有限數目的實施例而加以描述,熟於此技者將瞭解是其有許多修改及變化。後附申請專利範圍意圖涵蓋落入本發明之真正精神及範圍內的所有此種修改及變化。
10,12,20‧‧‧區域
14‧‧‧三角形
16‧‧‧負半空間
18‧‧‧正半空間
23‧‧‧瓦片
24‧‧‧「內部」區域
25‧‧‧最高區域
28~40、50~56‧‧‧方塊
42‧‧‧菱形框
100‧‧‧中央處理器/處理器
104~108‧‧‧匯流排
110‧‧‧晶片組核心邏輯
112‧‧‧圖形處理器
114‧‧‧碼框緩衝器
118‧‧‧顯示屏幕
120‧‧‧鍵盤及滑鼠
130‧‧‧電腦系統
132、139‧‧‧主記憶體/記憶體
134‧‧‧硬驅動器
136‧‧‧可移式媒體
第1圖是顯示依據一實施例的二維分離平面的草圖;第2圖是依據一實施例的可能可見及不可見的半空間的示意圖;第3圖是依據一實施例分離平面如何產生半空間線的描繪;第4圖是依據一實施例,一投影通過瓦片角點之三角形的示意圖;第5圖是顯示依據一實施例,透過一瓦片看見的三角形的可見區域的草圖;第6圖是依據一實施例,與焦平面交叉之一三角形的描繪;第7圖是繪示依據一實施例,三角形邊qr為一對焦平面測試產生交點v的交叉線的草圖;第8圖是顯示依據一實施例,將空間分成四個區域的二候選平面的草圖;第9圖是具有對應存儲器的一透鏡柵格的草圖;第10圖是一實施例的流程圖;第11圖是一實施例的硬體描繪;第12圖是另一實施例的流程圖;以及第13圖描繪另一實施例所用的值。
10,12‧‧‧區域
权利要求:
Claims (28)
[1] 一種隨機柵格化方法,其包含以下步驟:使用一電腦處理器,基於運算成本選擇性地淘汰在一透鏡上一欲呈現之凸多邊形為不可見的區域。
[2] 如申請專利範圍第1項所述之方法,其包括藉由在一瓦片與一三角形之間使用最多二組分離平面來執行一用以隨機柵格化的瓦片測試,該等分離平面包括對齊瓦片邊緣的一第一組平面及對齊三角形邊的一第二組平面。
[3] 如申請專利範圍第2項所述之方法,其包括評估使用該第二組平面來執行淘汰測試的成本。
[4] 如申請專利範圍第3項所述之方法,其包括評估可藉由該第二組平面而非該第一組平面被淘汰的樣本之樣本測試成本。
[5] 如申請專利範圍第4項所述之方法,其包括藉由確定使用該第二組平面來執行淘汰測試的成本是否大於可藉由該第二組平面而非該第一組平面被淘汰的樣本之樣本測試來執行瓦片邊緣測試。
[6] 如申請專利範圍第1項所述之方法,其用於隨機景深柵格化,該方法包括估計可藉由對一特定邊之瓦片邊緣測試而淘汰的一屏幕表面積,以一透鏡座標函數來計算一三角形頂點的一屏幕空間投影,計算一投影邊的一軸對齊面積,及計算可由該投影邊淘汰的平均面積。
[7] 如申請專利範圍第6項所述之方法,在一通用隨機柵格器中,基於經歷由一組隨機參數支配之轉換的一三角形邊及一瓦片角點所界定的超平面選擇性地啟用一淘汰測試。
[8] 如申請專利範圍第7項所述之方法,在一通用隨機柵格器中,基於由一移動三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[9] 如申請專利範圍第8項所述之方法,在一通用隨機柵格器中,基於由一移動且散焦之三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[10] 一種非暫態電腦可讀媒體,其儲存指令以使一電腦能夠執行以下操作:基於運算成本選擇性地淘汰在一透鏡上一欲呈現之凸多邊形為不可見的區域。
[11] 如申請專利範圍第10項所述之媒體,其進一步儲存指令以供藉由在一瓦片與一三角形之間使用最多二組分離平面來執行一用以隨機柵格化的瓦片測試,該等分離平面包括對齊瓦片邊緣的一第一組平面及對齊三角形邊的一第二組平面。
[12] 如申請專利範圍第11項所述之媒體,其進一步儲存指令以供評估使用該第二組平面來執行淘汰測試之成本。
[13] 如申請專利範圍第11項所述之媒體,其進一步儲存指令以供評估可藉由該第二組平面而非該第一組平面被淘汰之樣本的樣本測試成本。
[14] 如申請專利範圍第13項所述之媒體,其進一步儲存指令以供藉由確定執行淘汰測試的成本是否大於可藉由該第二組平面而非該第一組平面被淘汰之樣本的樣本測試來執行瓦片邊緣測試。
[15] 如申請專利範圍第10項所述之媒體,其進一步儲存指令以對隨機景深柵格化來估計可藉由一特定邊之一瓦片邊緣測試而淘汰的一屏幕表面積,以一透鏡座標函數來計算一三角形頂點的一屏幕空間投影,計算一投影邊的一軸對齊面積,及計算可由該投影邊淘汰的平均面積。
[16] 如申請專利範圍第15項所述之媒體,其進一步儲存指令以供在一通用隨機柵格器中,基於以經歷由一組隨機參數支配之轉換的一三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[17] 如申請專利範圍第16項所述之媒體,其進一步儲存指令以供在一通用隨機柵格器中,基於由一移動三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[18] 如申請專利範圍第17項所述之媒體,其進一步儲存指令以供在一通用隨機柵格器中,基於由一移動且散焦之三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[19] 一種裝置,其包含:一處理器,用以基於運算成本選擇性地淘汰一透鏡之欲呈現的一凸多邊形為不可見的區域;及一儲存器,被耦合至該處理器。
[20] 如申請專利範圍第19項所述之裝置,其中該裝置是一圖形處理器。
[21] 如申請專利範圍第19項所述之裝置,該處理器用以藉由在一瓦片與一三角形之間使用最多二組分離平面來執行一用以隨機柵格化之瓦片測試,該等分離平面包括對齊瓦片邊緣的一第一組平面及對齊三角形邊的一第二組平面。
[22] 如申請專利範圍第21項所述之裝置,該處理器用以評估使用該第二組平面來執行淘汰測試的成本。
[23] 如申請專利範圍第22項所述之裝置,該處理器用以評估可藉由該第二組平面而非該第一組平面被淘汰的樣本之樣本測試成本。
[24] 如申請專利範圍第23項所述之裝置,該處理器用以藉由確定使用該第二組平面來執行淘汰測試的成本是否大於可藉由該第二組平面而非該第一組平面而被淘汰的樣本之樣本測試來執行瓦片邊緣測試。
[25] 如申請專利範圍第19項所述之裝置,該處理器用以估計可藉由對一特定邊之瓦片邊緣測試而淘汰的一屏幕表面積,以一透鏡座標函數來計算一三角形頂點的一屏幕空間投影,計算一投影邊的一軸對齊面積,及計算可由該投影邊淘汰的平均面積。
[26] 如申請專利範圍第25項所述之裝置,其包括一通用隨機柵格器以供基於以經歷由一組隨機參數支配之轉換的一三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[27] 如申請專利範圍第26項所述之裝置,其包括一通用隨機柵格器以供基於由一移動三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
[28] 如申請專利範圍第27項所述之裝置,其包括一通用隨機柵格器以供基於由一移動且散焦之三角形邊及一瓦片角點所界定之超平面選擇性地啟用一淘汰測試。
类似技术:
公开号 | 公开日 | 专利标题
TWI480834B|2015-04-11|用於隨機柵格化的方法和裝置以及非暫態電腦可讀媒體
TWI550551B|2016-09-21|景深網格化
US10540576B1|2020-01-21|Panoramic camera systems
EP2622581B1|2017-11-29|Multi-view ray tracing using edge detection and shader reuse
US8743114B2|2014-06-03|Methods and systems to determine conservative view cell occlusion
GB2492227A|2012-12-26|Improving sample test efficiency in graphics rendering
TWI614720B|2018-02-11|具有保守邊界之五維柵格化技術
TWI633519B|2018-08-21|基於線性化五維(5d)邊緣方程式之樣本揀選技術(二)
JP5770295B2|2015-08-26|モーションブラー及び被写界深度のためのバックフェースカリング
US20140146042A1|2014-05-29|Apparatus and method for processing primitive in three-dimensional | graphics rendering system
US10026216B2|2018-07-17|Graphics data processing method and apparatus
KR102059578B1|2019-12-27|3차원 그래픽스 렌더링 시스템에서 프리미티브 처리 장치 및 방법
同族专利:
公开号 | 公开日
US9165348B2|2015-10-20|
CN103608850B|2017-05-10|
WO2012177282A1|2012-12-27|
EP2729918A4|2015-12-23|
TWI480834B|2015-04-11|
EP2729918A1|2014-05-14|
US20130287314A1|2013-10-31|
CN103608850A|2014-02-26|
引用文献:
公开号 | 申请日 | 公开日 | 申请人 | 专利标题
US6111584A|1995-12-18|2000-08-29|3Dlabs Inc. Ltd.|Rendering system with mini-patch retrieval from local texture storage|
US6057847A|1996-12-20|2000-05-02|Jenkins; Barry|System and method of image generation and encoding using primitive reprojection|
US6359629B1|1998-07-06|2002-03-19|Silicon Graphics, Inc.|Backface primitives culling|
US7023437B1|1998-07-22|2006-04-04|Nvidia Corporation|System and method for accelerating graphics processing using a post-geometry data stream during multiple-pass rendering|
US6480205B1|1998-07-22|2002-11-12|Nvidia Corporation|Method and apparatus for occlusion culling in graphics systems|
WO2000010372A2|1998-08-20|2000-03-02|Apple Computer, Inc.|System, apparatus and method for spatially sorting image data in a three-dimensional graphics pipeline|
US8854364B1|2003-12-22|2014-10-07|Nvidia Corporation|Tight depth range occlusion prediction system and method|
US7286137B2|2005-02-28|2007-10-23|Asml Holding N.V.|Method and system for constrained pixel graytones interpolation for pattern rasterization|
US8284206B2|2006-03-14|2012-10-09|Transgaming, Inc.|General purpose software parallel task engine|
JP4142065B2|2006-05-22|2008-08-27|株式会社ソニー・コンピュータエンタテインメント|縮小zバッファ生成方法、隠面消去方法、およびオクルージョンカリング方法|
JP4116648B2|2006-05-22|2008-07-09|株式会社ソニー・コンピュータエンタテインメント|オクルージョンカリング方法および描画処理装置|
KR100793990B1|2006-09-18|2008-01-16|삼성전자주식회사|타일 기반 3차원 렌더링에서의 조기 z 테스트 방법 및시스템|
US8009269B2|2007-03-14|2011-08-30|Asml Holding N.V.|Optimal rasterization for maskless lithography|
GB2461894B|2008-07-16|2010-06-23|Light Blue Optics Ltd|Holographic image display systems|
TWI547766B|2009-05-20|2016-09-01|瑪波微影Ip公司|多調柵格化|
CN102460633B|2009-05-20|2014-12-17|迈普尔平版印刷Ip有限公司|用于光刻系统的图案数据转换器|
US9058697B2|2011-04-28|2015-06-16|Intel Corporation|Depth of field rasterization by culling regions on a lens from which a convex polygon to be rendered is not visible|
CN103608850B|2011-06-23|2017-05-10|英特尔公司|带选择性剔除的随机光栅化|CN103608850B|2011-06-23|2017-05-10|英特尔公司|带选择性剔除的随机光栅化|
US10134101B2|2012-02-27|2018-11-20|Intel Corporation|Using cost estimation to improve performance of tile rendering for image processing|
US9824412B2|2014-09-24|2017-11-21|Intel Corporation|Position-only shading pipeline|
US10217272B2|2014-11-06|2019-02-26|Intel Corporation|Zero-coverage rasterization culling|
FR3035293B1|2015-04-14|2021-10-08|Valroger Thibault De|Procede de communication cryptographique base sur le hasard profond|
US10235811B2|2016-12-29|2019-03-19|Intel Corporation|Replicating primitives across multiple viewports|
US10628910B2|2018-09-24|2020-04-21|Intel Corporation|Vertex shader with primitive replication|
法律状态:
2022-01-11| MM4A| Annulment or lapse of patent due to non-payment of fees|
优先权:
申请号 | 申请日 | 专利标题
US201161500189P| true| 2011-06-23|2011-06-23||
[返回顶部]