景深柵格化的制作方法
【專利摘要】可以通過剔除要被呈現(xiàn)的三角形從其不可視的透鏡上的半空間區(qū)域來對(duì)景深進(jìn)行柵格化。然后,僅對(duì)剩余的未被剔除的半空間區(qū)域進(jìn)行內(nèi)部測(cè)試。位于要被呈現(xiàn)的三角形和正在被處理的切片之間的分離平面能夠用于限定所述半空間區(qū)域。
【專利說明】景深柵格化
【背景技術(shù)】[0001]本申請(qǐng)涉及計(jì)算機(jī),并且尤其涉及圖形處理。
[0002]在過去的幾年中,對(duì)于隨機(jī)柵格化的研究活動(dòng)不斷增加。然而,景深的有效柵格化和動(dòng)感模糊依然是難以實(shí)現(xiàn)的目標(biāo)。實(shí)質(zhì)上,僅景深的柵格化是較簡(jiǎn)單的問題,但是仍然沒有很好地探索出對(duì)于其的專門算法。
【專利附圖】
【附圖說明】
[0003]圖1是根據(jù)一個(gè)實(shí)施例表示二維的分離平面的草圖;
[0004]圖2是根據(jù)一個(gè)實(shí)施例的潛在可視和不可視半空間的示意性原理圖;
[0005]圖3是根據(jù)一個(gè)實(shí)施例的分離平面如何生成半空間線的原理圖;
[0006]圖4是根據(jù)一個(gè)實(shí)施例經(jīng)過切片的角投射的三角形的示意性原理圖;
[0007]圖5是根照一個(gè)實(shí)施例表示對(duì)于經(jīng)過切片看到的三角形的可視區(qū)域的草圖;
[0008]圖6是根據(jù)一個(gè)實(shí)施例與焦平面相交的三角形的描繪;
[0009]圖7是根據(jù)一個(gè)實(shí)施例表示關(guān)于焦平面進(jìn)行交叉測(cè)試生成交叉點(diǎn)V的三角形的邊qr的草圖;
[0010]圖8是根據(jù)一個(gè)實(shí)施例表示兩個(gè)候選平面將空間劃分為四個(gè)區(qū)域的草圖;
[0011]圖9是一個(gè)具有相對(duì)應(yīng)的存儲(chǔ)的透鏡網(wǎng)格的草圖;
[0012]圖10是一個(gè)實(shí)施例的流程圖;并且
[0013]圖11是一個(gè)實(shí)施例的硬件原理圖。
【具體實(shí)施方式】
[0014]一種用于景深柵格化的有效算法以去除透鏡上的(u,v)空間的半空間區(qū)域?yàn)榛A(chǔ),從該半空間區(qū)域,不能夠經(jīng)過切片內(nèi)的任何像素看到要被明確呈現(xiàn)的三角形。我們精確地發(fā)現(xiàn)所有這樣的區(qū)域的交叉,并且產(chǎn)生的區(qū)域用于減少切片中樣本的數(shù)量,在該切片中需要執(zhí)行完整的“三角形內(nèi)部樣本”測(cè)試。對(duì)于如何使用(u,v)空間中產(chǎn)生的區(qū)域來快速地剔除樣本免于被測(cè)試,我們提出了幾種有效的方法。
[0015]通常,對(duì)于景深(DOF)呈現(xiàn),通過(",V,) e Q c [0,l]x [0,1]對(duì)透鏡區(qū)域進(jìn)行參數(shù)化,其
中Q為光圈形狀,并且可以例如是方形或圓形。一般來說,我們具有每像素n個(gè)樣本用于隨機(jī)柵格化,其中,每一個(gè)樣本由空間位置(Xi,yi)和透鏡位置(Ui, Vi)構(gòu)成。將三角形的裁
剪空間頂點(diǎn)表示為戶=(/K,//,火),并且然后將三角形表示為KP1P^切片是焦點(diǎn)對(duì)準(zhǔn)
的平面中像素的矩形塊。有時(shí),我們使用術(shù)語“焦平面”代替“焦點(diǎn)對(duì)準(zhǔn)的平面”,焦平面是滿足w=F的平面,在該焦平面中,呈現(xiàn)的幾何體將表現(xiàn)出完美的聚焦。內(nèi)部測(cè)試簡(jiǎn)單地計(jì)算某一樣本(Xi,yi,Ui,Vi)是否位于正在被柵格化的三角形內(nèi)部。一般來說,應(yīng)該最小化不必要的內(nèi)部測(cè)試的數(shù)量。
[0016]為了描述我們的算法,我們將使用分離平面的概念,該概念也曾用于對(duì)于大型遮光板的基于單元的遮擋剔除。位于兩個(gè)凸多面體對(duì)象之間的分離平面是由來自一個(gè)對(duì)象的邊和來自另一個(gè)對(duì)象的頂點(diǎn)形成的平面,并且同時(shí),這兩個(gè)對(duì)象必須位于該平面的相對(duì)側(cè)上。圖1中示出了該分離平面的二維說明。
[0017]在圖1中,能夠使用切片和三角形的分離線來發(fā)現(xiàn)透鏡上的區(qū)域,在該區(qū)域中,能夠減少隨機(jī)柵格化所需要的計(jì)算的數(shù)量。使用分離平面來檢測(cè)透鏡上的區(qū)域10和12。注意到,在區(qū)域12中,不存在能夠經(jīng)過切片中的任何點(diǎn)“看到”三角形的透鏡位置。在圖1的左側(cè)上,三角形位于焦平面的后面。在圖1的右側(cè)上,三角形位于焦平面的前面。當(dāng)使用焦平面后面的頂點(diǎn)來限定分離平面時(shí),正的半空間包含切片,并且反之亦然。
[0018]可以使用根據(jù)切片和三角形導(dǎo)出的分離平面來去除透鏡上的半空間區(qū)域免于進(jìn)一步處理。我們發(fā)現(xiàn)不能夠經(jīng)過切片中的任何點(diǎn)“看到”三角形的透鏡上的區(qū)域,并且因而在這樣的區(qū)域中具有透鏡坐標(biāo)(Ui, Vi)的切片中的所有樣本不需要任何進(jìn)一步的內(nèi)部測(cè)試。直觀地,這能夠根據(jù)圖1進(jìn)行理解,其中使用切片和三角形的分離線來剔除透鏡上的區(qū)域12。
[0019]在三維中,存在能夠用于剔除透鏡上的半空間區(qū)域的兩種不同類型的分離平面。這在圖2中進(jìn)行了說明。通過切片的邊和三角形的頂點(diǎn)生成分離平面的第一集合,我們用^來表示這些平面,其中,該平面的正半空間由所有點(diǎn)P組成,以使得L(P)≥O?,F(xiàn)在,考慮切片的最左側(cè)的(垂直)邊。在圖2的左側(cè)的示例中,切片的左側(cè)與三角形的最右側(cè)的頂點(diǎn)創(chuàng)建分離平面。這一分離平面將透鏡區(qū)域分離為兩個(gè)半空間。我們將該分割線稱為半空間線 Iii (u,v) =0。
[0020]在圖2中的左側(cè)上,在這一示例中,三角形14的最右側(cè)的頂點(diǎn)與切片的最左側(cè)的邊形成分離平面。這一平面與透鏡區(qū)域相交,并且將該透鏡區(qū)域劃分為兩個(gè)半空間:負(fù)半空間16,其中透鏡上的點(diǎn)不能夠經(jīng)過切片中的任何點(diǎn)看到三角形;正半空間18,其中透鏡上的點(diǎn)潛在地能夠看到三角形。該分離平面的法線與切片本身位于該平面的相同側(cè)上,并且這限定了透鏡上的正半空間和負(fù)半空間。在圖2中的右側(cè)上,由三角形的邊和切片的角形成分離平面。
[0021]注意到,取決于形成分離平面的三角形的頂點(diǎn)位于焦平面的前面還是后面,不同地選擇分離平面的法線的符號(hào)(即,+n或-n)。這樣做的原因在于,我們想剔除ht (u,v)〈O的區(qū)域,而與頂點(diǎn)位置無關(guān)。對(duì)于位于焦平面的后面的頂點(diǎn),選擇分離平面的法線以使得它的正半空間包含整個(gè)切片。相反,對(duì)于位于焦平面的前面的頂點(diǎn),分離平面的法線是這樣的,以使得它的負(fù)半空間包含整個(gè)切片。這在圖1中進(jìn)行了說明。
[0022]半空間線的二維法線的方向從相對(duì)應(yīng)的分離平面的法線得到。在圖2中將這些二維法線說明為箭頭。在幾何上,容易看到的是,透鏡上的負(fù)半空間中的所有點(diǎn)都不能夠經(jīng)過切片中的任何點(diǎn)“看到”三角形。
[0023]根據(jù)由三角形的邊和切片的角形成的分離平面來生成半空間線的第二集合。在圖2中的右側(cè)說明了示例。我們將這些分離平面標(biāo)記為IIj以與由切片的邊和三角形的頂點(diǎn)生成的平面n i相區(qū)分。平面IIj也生成被標(biāo)記為HjOi, v)=0的半空間線。
[0024]半空間線h的第一集合或者水平或者垂直,并且通常,半空間線Hj的第二集合可以具有任意取向。當(dāng)所有切片的邊分別生成一個(gè)分離平面時(shí),它們將在透鏡的平面中形成二維框。利用這樣的框,剔除整個(gè)切片中的大部分樣本免于進(jìn)一步處理,這將是簡(jiǎn)單而有效的。在圖3中的左側(cè)示出了示例。在該相同的圖的右側(cè),已經(jīng)通過&平面剔除了透鏡上的進(jìn)一步區(qū)域。當(dāng)三角形的所有頂點(diǎn)位于焦平面的前面或者后面時(shí),透鏡上的剩余活動(dòng)區(qū)域由凸區(qū)域進(jìn)行限定,其中hi(U,V)≥O并且Hj(Uj)≥O。僅位于這一活動(dòng)區(qū)域(圖3中的區(qū)域20)內(nèi)部的具有透鏡坐標(biāo)(Ui,Vi)的樣本需要進(jìn)行內(nèi)部測(cè)試。后面描述的我們的實(shí)用算法的有效性就是源于這一事實(shí)。
[0025]在圖3中,透鏡是粗線的方形。在左側(cè)上,前四個(gè)分離平面生成水平和垂直的半空間線,通過Iii(U^)=O進(jìn)行限定。同時(shí),它們?cè)谕哥R平面中形成二維邊界框。僅需要進(jìn)一步處理具有區(qū)域20中的透鏡位置的樣本。僅使用前四個(gè)平面能夠剔除透鏡的大量區(qū)域。在圖3中的右側(cè)上,半空間線的第二集合Hj (u,v)=0能夠進(jìn)一步縮減區(qū)域20。當(dāng)三角形相交于焦平面時(shí),情況將更加復(fù)雜,并且我們將在下文中表示如何使用半空間線的第一集合比(u,v)來在這樣的情況下進(jìn)行剔除。
[0026]創(chuàng)建分離平面并不總是可能的。例如,當(dāng)三角形穿過切片時(shí),發(fā)現(xiàn)對(duì)于該切片的分離平面將是不可能的。然而,當(dāng)三角形從前向變?yōu)楸诚驎r(shí),或者有相反的方向變化時(shí),這種情況就會(huì)發(fā)生,并且因而,增加半空間線以去除其中三角形為背向的透鏡的部分是可能的。這對(duì)于接近對(duì)象的輪廓的三角形是有益的。實(shí)踐中,場(chǎng)景中這樣的三角形的數(shù)量與剩余的三角形相比較通常很小,結(jié)果,我們還沒有發(fā)現(xiàn)此種做法的成效。
[0027]我們將使用大量的標(biāo)記來簡(jiǎn)化算法的描述。如上文,將三角形的頂點(diǎn)稱為p'p1和P2。切片的四個(gè)角由和td來指代。頂點(diǎn)f經(jīng)過切片的角P在透鏡上的投射將由
= O 指代。
[0028]參照?qǐng)D4,示出了我們的標(biāo)記的說明,三角形的頂點(diǎn)p°、P1和P2經(jīng)過切片的角ta、t\ t。和td投射到透鏡上以形成透鏡坐標(biāo)Iij,其中i G {a,b,c,d}并且j G {0,1,2}。例如,頂點(diǎn)P2經(jīng)過tb投射以生成Ib2。
[0029]頂點(diǎn)f經(jīng)過切片的角P的投射給出了透鏡坐標(biāo)Iij:
[0030]
【權(quán)利要求】
1.一種景深柵格化的方法,包括: 剔除要被呈現(xiàn)的凸多邊形從其不可視的透鏡上的區(qū)域。
2.如權(quán)利要求1所述的方法,包括僅對(duì)剩余的未被剔除的區(qū)域執(zhí)行內(nèi)部測(cè)試。
3.如權(quán)利要求2所述的方法,包括剔除三角形從其不可視的透鏡上的半空間區(qū)域。
4.如權(quán)利要求1所述的方法,包括使用位于要被呈現(xiàn)的凸多邊形和正在被處理的切片之間的分離平面來將所述透鏡劃分為區(qū)域,其中對(duì)所述區(qū)域的子集進(jìn)行內(nèi)部測(cè)試。
5.如權(quán)利要求4所述的方法,包括使用分離平面,并且對(duì)于每一個(gè)分離平面,在透鏡平面上限定半空間線。
6.如權(quán)利要求5所述的方法,包括僅處理位于所述剩余的未被剔除的區(qū)域內(nèi)部的樣本。
7.如權(quán)利要求4所述的方法,包括根據(jù)由三角形的頂點(diǎn)和切片的邊形成的分離平面來形成所述半空間區(qū)域。
8.如權(quán)利要求4所述的方法,包括根據(jù)由三角形的邊和切片的角形成的分離平面來形成所述半空間區(qū)域。
9.如權(quán)利要求8所述的方法,包括通過關(guān)于焦平面對(duì)三角形的邊進(jìn)行交叉測(cè)試以生成交叉點(diǎn)、將所述焦平面劃分為區(qū)域、并且識(shí)別所述交叉點(diǎn)落入其中的區(qū)域來定位所述分離平面。
10.如權(quán)利要求7所述的方法,包括遞增地更新半空間區(qū)域之間的半空間線。
11.一種存儲(chǔ)由計(jì)算機(jī)執(zhí)行的指令的非暫態(tài)計(jì)算機(jī)可讀介質(zhì),所述指令用于: 剔除要被呈現(xiàn)的凸多邊形從其不可視的透鏡上的區(qū)域,用于景深柵格化。
12.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于僅對(duì)剩余的未被剔除的區(qū)域執(zhí)行內(nèi)部測(cè)試的指令。
13.如權(quán)利要求12所述的介質(zhì),進(jìn)一步存儲(chǔ)用于剔除三角形從其不可視的透鏡上的半空間區(qū)域的指令。
14.如權(quán)利要求11所述的介質(zhì),進(jìn)一步存儲(chǔ)用于使用位于要被呈現(xiàn)的凸多邊形和正在被處理的切片之間的分離平面來將所述透鏡劃分為區(qū)域的指令,其中對(duì)所述區(qū)域的子集進(jìn)行內(nèi)部測(cè)試。
15.如權(quán)利要求14所述的介質(zhì),進(jìn)一步存儲(chǔ)用于使用分離平面,并且對(duì)于每一個(gè)分離平面,在透鏡平面上限定半空間線的指令。
16.如權(quán)利要求15所述的介質(zhì),進(jìn)一步存儲(chǔ)用于僅處理位于所述剩余的未被剔除的區(qū)域內(nèi)部的樣本的指令。
17.如權(quán)利要求14所述的介質(zhì),進(jìn)一步存儲(chǔ)用于根據(jù)由三角形的頂點(diǎn)和切片的邊形成的分離平面來形成所述半空間區(qū)域的指令。
18.如權(quán)利要求14所述的介質(zhì),進(jìn)一步存儲(chǔ)用于根據(jù)由三角形的邊和切片的角形成的分離平面來形成所述半空間區(qū)域的指令。
19.如權(quán)利要求18所述的介質(zhì),進(jìn)一步存儲(chǔ)用于通過關(guān)于焦平面對(duì)三角形的邊進(jìn)行交叉測(cè)試以生成交叉點(diǎn)、將所述焦平面劃分為區(qū)域、并且識(shí)別所述交叉點(diǎn)落入其中的區(qū)域來定位所述分離平面的指令。
20.如權(quán)利要求17所述的介質(zhì),進(jìn)一步存儲(chǔ)用于遞增地更新位于半空間區(qū)域之間的半空間線的指令。
21.一種裝置,包括: 存儲(chǔ)器;以及 耦接到所述存儲(chǔ)器的處理器,用于通過剔除要被呈現(xiàn)的凸多邊形從其不可視的透鏡上的區(qū)域來執(zhí)行景深柵格化。
22.如權(quán)利要求21所述的裝置,所述處理器用于僅對(duì)剩余的未剔除的區(qū)域執(zhí)行內(nèi)部測(cè)試。
23.如權(quán)利要求22所述的裝置,所述處理器用于剔除三角形從其不可視的透鏡上的半空間區(qū)域。
24.如權(quán)利要求21所述的裝置,所述處理器用于使用位于要被呈現(xiàn)的凸多邊形和正在被處理的切片之間的分離平面來將所述透鏡劃分為區(qū)域,其中對(duì)所述區(qū)域的集合進(jìn)行內(nèi)部測(cè)試。
25.如權(quán)利要求24所述的裝置,所述處理器用于使用分離平面,并且對(duì)于每一個(gè)分離平面,用于在透鏡平面上限定半空間線。
26.如權(quán)利要求25所述的裝置,所述處理器僅處理位于所述剩余的未被剔除的區(qū)域內(nèi)部的樣本。
27.如權(quán)利要求24所述的裝置,所述處理器用于根據(jù)由三角形的頂點(diǎn)和切片的邊形成的分離平面來形成所述半空間區(qū)域。
28.如權(quán)利要求24所述的裝置,所述處理器用于根據(jù)由三角形的邊和切片的角形成的分離平面來形成所述半空間區(qū)域。
29.如權(quán)利要求28所述的裝置,所述處理器用于通過關(guān)于焦平面對(duì)三角形的邊進(jìn)行交叉測(cè)試以生成交叉點(diǎn)、將所述焦平面劃分為區(qū)域、并且識(shí)別所述交叉點(diǎn)落入其中的區(qū)域來定位所述分離平面。
30.如權(quán)利要求27所述的裝置,所述處理器用于遞增地更新位于半空間區(qū)域之間的半空間線。
【文檔編號(hào)】G06T15/00GK103562966SQ201280024911
【公開日】2014年2月5日 申請(qǐng)日期:2012年4月18日 優(yōu)先權(quán)日:2011年4月28日
【發(fā)明者】T·G·阿可尼內(nèi)-默勒, C·J·蒙克貝里, J·N·哈塞爾格倫, R·M·托特 申請(qǐng)人:英特爾公司