一種基于多相機(jī)的快速反射繪制方法
【專利摘要】本發(fā)明涉及一種基于多相機(jī)的快速反射繪制方法,該方法包括以下步驟:在當(dāng)前視點(diǎn)下,對場景進(jìn)行直接繪制,獲取多個(gè)渲染結(jié)果,對渲染結(jié)果像素按法線聚類,分別為每個(gè)聚類生成傳統(tǒng)相機(jī)模型,并依據(jù)生成的相機(jī)模型繪制整個(gè)場景,最后依據(jù)繪制的圖像代理貼圖進(jìn)行深度求交運(yùn)算,混合生成反射效果。本方法借助GPU強(qiáng)大的計(jì)算能力,極大提高了渲染速度和效率。
【專利說明】一種基于多相機(jī)的快速反射繪制方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于實(shí)時(shí)渲染【技術(shù)領(lǐng)域】,具體涉及一種基于圖像空間的多相機(jī)計(jì)算和光線與圖像代理求交方法。
【背景技術(shù)】
[0002]反射在計(jì)算機(jī)圖形學(xué)有重要的作用,它不但能體現(xiàn)物體的美學(xué)特性,而且還能逼真地反映出物體的幾何關(guān)系,使場景渲染效果更加逼真令人信服。這些年,實(shí)時(shí)反射效果繪制有多個(gè)研究方向,但是還沒有一個(gè)完備的解決方法。這些方向包括:
[0003]I)基于圖像的繪制方法
[0004]這一部分方法使用場景預(yù)計(jì)算或者預(yù)先采獲的顏色數(shù)據(jù)來計(jì)算光照效果。這種經(jīng)典的圖像繪制方法包括Hanrahan的light field方法,S.J.Gortler等的Iumigraph方法和 P.Ε.Debevec 的 view dependent light field 方法.Lumigraph 方法米用紋理來儲存光線映射,而不是顏色采樣的方法,可以支持動態(tài)場景反射物體和被反射物體的實(shí)時(shí)更新。Y.Taguchi提出了一種由外到內(nèi)的光場參數(shù)化方法,可以圍繞被反射物體構(gòu)建相機(jī)。L.McMillan的環(huán)境光場貼圖方法從另一個(gè)方向從內(nèi)而外地參數(shù)化光場??偟膩碚f,由于反射的特性,即使是很小的變動都會導(dǎo)致很大的數(shù)據(jù)量變化,基于圖像的繪制方法不太適合反射的繪制。而且,動態(tài)場景中物體的變化會使光場的計(jì)算太過耗時(shí)。
[0005]2)光線跟蹤繪制方法
[0006]光線跟蹤天生支持反射的繪制,但是存在很大的效率問題。暴力地進(jìn)行每根反射光線與場景中三角形求交是相當(dāng)費(fèi)事的操作。為了加快求交的進(jìn)程,研究人員提出大量的加速結(jié)構(gòu),包括SE.Yoon提出的LOD結(jié)構(gòu),T.Foley提出的Kd-trees,N.A.Carr提出的BVH樹形結(jié)構(gòu)。這些加速結(jié)構(gòu)都可以加速GPU的求交運(yùn)算。但是,光線跟蹤很少進(jìn)行光線復(fù)用,而且它動態(tài)場景中加速結(jié)構(gòu)需要重新計(jì)算的特點(diǎn)使得它在反射繪制中存在限制。
[0007]現(xiàn)代GPU保持了強(qiáng)大的正反饋繪制特性,基于這種特性,研究人員嘗試延伸這種特性來繪制反射效果。其中有兩種不同的發(fā)展方向:正反饋處理被反射三角形繪制方法和正反饋處理反射三角形繪制方法。
[0008]3)正反饋方式處理被反射三角形繪制方法
[0009]處理被反射三角形繪制方法要處理兩個(gè)問題:1對被反射三角形的正確投影。2對被反射三角形的非線性光柵化。第二個(gè)問題可以由三角形的不斷線性細(xì)分來解決。但是第一個(gè)問題,對于一個(gè)有三角形組成的反射體,它的投影方程沒有數(shù)學(xué)封閉解。
[0010]研究人員采用多種方法用來解決頂點(diǎn)的正確投影問題:考慮到反射物體的空間劃分,反射頂點(diǎn)可以按照E.0fek等人的空間網(wǎng)格索引查找表思想的方法投影。另外,V.Popescu用反射光線在空間上的聚集性模擬了一組傳統(tǒng)相機(jī),這種叫做“基于采樣的相機(jī)”時(shí)一種存儲在BSP數(shù)的樹葉上的特殊數(shù)據(jù)結(jié)構(gòu)。第三種方法P.Estalella使用GPU的本地搜索來找尋反射頂點(diǎn)的投影。但是,由于多重投影的特性,這些方法對反射物體數(shù)量和復(fù)雜度擴(kuò)張性不高。[0011]4)正反饋方式處理反射三角形繪制方法
[0012]另一種正反饋處理的方式是將反射三角形投影光柵化。但是,在光柵化的圖像上找交點(diǎn)也是件困難度事情。如今,科研人員提出幾種模擬被反射場景的方法來避免實(shí)際的復(fù)雜光線求交過程。J.Kautz和P.Green等人的環(huán)境光貼圖方法假設(shè)被反射物體和反射物之間的距離無限長。在這種假設(shè)下,反射光線直接去索引環(huán)境光貼圖顏色而不考慮實(shí)際的幾何位置。環(huán)境光貼圖可以通過Mip映射的形式進(jìn)行反走樣,對場景復(fù)雜度有良好的擴(kuò)展性。正是得益于這些便捷性和魯棒性,環(huán)境光貼圖很適合于以效率為重的渲染手段。但是,當(dāng)反射物體和被反射物體很近的時(shí)候,環(huán)境光貼圖不足以產(chǎn)生令人信服的渲染效果。
[0013]環(huán)境光貼圖已經(jīng)擴(kuò)展到模擬單葉片和J.Kautz和P.Green的多葉片的BRDF平滑反射模型。同時(shí),L.Szirmay-kalos的配有深度信息的環(huán)境貼圖方法也用來提高反射的質(zhì)量。但是,這種環(huán)境貼圖因?yàn)橹荒塬@取到可見位置的信息,在反射渲染的時(shí)候,沒在環(huán)境貼圖上的場景就不會被正確渲染。
[0014]為了減少這種因?yàn)椴蓸硬蛔阍斐傻娜毕?,反射場景可以分割成物體,然后對用廣告版,或者V.Popescu提出的的傳統(tǒng)的深度圖像以及后來的P.Rosen的非傳統(tǒng)相機(jī)模型方式對每個(gè)物體進(jìn)行模擬。這樣可以獲得好的反射渲染效果,但是對場景進(jìn)行分割會使算法對場景復(fù)雜度擴(kuò)展性降低。
[0015]對被反射物體的模擬還包括加速光線跟蹤的方法。模擬還包括生成可以索引反射光線顏色的幾何場以及X.Yu等人的mip映射的幾何圖像方法。這些模擬方法都不能實(shí)時(shí)計(jì)算因此不能處理有變形物體的動態(tài)場景。
【發(fā)明內(nèi)容】
[0016]本發(fā)明要解決的技術(shù)問題是:提供了一種用多相機(jī)方法繪制精確反射效果的方法,并利用GPU硬件的計(jì)算能力,提高了繪制效率。該方法主要利用屏幕幾何緩沖生成多相機(jī)模型,并根據(jù)深度求交算法,計(jì)算對應(yīng)反射光線和深度貼圖的焦點(diǎn),用深度貼圖的索引顏色,繪制反射效果,充分利用GPU的特性,達(dá)到實(shí)時(shí)動態(tài)場景的精確反射繪制。
[0017]本發(fā)明解決上述技術(shù)問題的技術(shù)方案為:一種基于多相機(jī)的反射繪制方法,包括如下步驟:
[0018]I)記錄屏幕空間像素信息
[0019]步驟(I)、從當(dāng)前視點(diǎn)出發(fā)進(jìn)行渲染,在幾何緩存(Geometry Buffers)上記錄屏幕空間上像素點(diǎn)的顏色值、法線值、深度值、物體標(biāo)識和反射級別。此過程充分利用現(xiàn)代GPU上的多渲染目標(biāo)對象結(jié)構(gòu),在一次渲染的情況下記錄視空間信息,實(shí)現(xiàn)場景幾何信息與屏幕空間的分離。
[0020]步驟(2)、根據(jù)步驟(I)中幾何緩存記錄的屏幕空間反射像素的法線信息,利用屏幕空間像素上反射光線的聚集性,對屏幕空間的反射像素進(jìn)行聚類。聚類采用分筒的方式進(jìn)行,聚類標(biāo)識依據(jù)三個(gè)參數(shù)確定,前兩個(gè)參數(shù)分別為法線轉(zhuǎn)換的球坐標(biāo)系參數(shù),第三個(gè)為反射物體的標(biāo)志號。
[0021]2)對反射像素聚類生成相機(jī)模型
[0022]步驟(3)、一旦聚類的劃分確定,就需要著手在聚類劃分基礎(chǔ)上建立傳統(tǒng)相機(jī)模型來模擬這個(gè)聚類反射的幾何場景。首先根據(jù)此聚類像素的平均位置信息和平均法線,計(jì)算聚類的擬合平面。
[0023]步驟(4)、以聚類擬合平面為對稱軸,做當(dāng)前視點(diǎn)的鏡像對稱點(diǎn)作為聚類相機(jī)初始位置。按照此初始位置對聚類像素中反射光線起始點(diǎn)和終止點(diǎn)進(jìn)行透視投影,投影面為聚類擬合平面。在投影平面上分別做投影點(diǎn)初始點(diǎn)和終止點(diǎn)AABB包圍盒,并根據(jù)兩包圍盒的對角線大小比例重新設(shè)定相機(jī)的位置相對初始位置的偏移比例。
[0024]步驟(5)、按照步驟(4)中得到的相機(jī)偏移比例重新設(shè)置相機(jī),重新計(jì)算聚類像素中反射光線起始點(diǎn)和反射光線終止點(diǎn)在擬合平面上的投影包圍盒。并根據(jù)相鄰兩像素點(diǎn)的投影點(diǎn)差值設(shè)定此相機(jī)的繪制分辨率。
[0025]3)繪制反射效果
[0026]步驟(6)、分別為每個(gè)相機(jī)繪制場景。繪制時(shí)候按照聚類的擬合平面作為相機(jī)的近裁剪面,投影的圖像包圍盒的尺寸作為視窗體大小,包圍盒的大小作為繪制分辨率繪制整個(gè)場景。將繪制后的圖像紋理作為整個(gè)場景的圖像代理模擬模型。
[0027]步驟(7)、將聚類中的像素幾何點(diǎn)在圖像代理上的投影作為搜索起點(diǎn),像素點(diǎn)以反射光線方向延伸場景長度距離后的幾何點(diǎn)在圖像代理上的投影作為搜索終點(diǎn),在圖像紋理上搜索深度相交的位置點(diǎn),用此點(diǎn)紋理值索引顏色信息作為當(dāng)前像素的反射顏色,用來做反射混合渲染。
[0028]總之,與之前的方法相比,本發(fā)明能夠快速地準(zhǔn)確繪制反射效果,并支持全變形物體和動態(tài)場景。本發(fā)明主要有兩點(diǎn)貢獻(xiàn):第一,給出了一種用圖像代理來繪制反射效果的方法,該方法完全在GPU上實(shí)現(xiàn),無需預(yù)處理,具有快速并較準(zhǔn)確的優(yōu)點(diǎn)。第二,給出了一種新的多相機(jī)繪制模型,能很好的反應(yīng)聚類上光線聚集的效果,使得相機(jī)繪制幾何代理深度貼圖準(zhǔn)確和有效。
【專利附圖】
【附圖說明】
[0029]圖1為算法整體流程圖;
[0030]圖2不同場景的聚類示意圖,(a)臥室聚類圖(b)花瓶聚類圖,(C)盥洗室聚類圖;
[0031]圖3為聚類擬合平面示意圖;
[0032]圖4為偏移相機(jī)視點(diǎn)位置示意圖;
[0033]圖5為誤差示意圖,5 (a) I倍誤差圖;5 (b) 15倍誤差圖;
[0034]圖6為起居室反射效果圖;
[0035]圖7為盥洗室反射效果圖;
[0036]圖8為花瓶反射效果圖;
【具體實(shí)施方式】
[0037]下面結(jié)合附圖以及本發(fā)明的【具體實(shí)施方式】進(jìn)一步說明本發(fā)明。
[0038]本方法針對多相機(jī)的反射渲染效果繪制包括以下步驟:
[0039]步驟(I)給定場景S,從當(dāng)前視點(diǎn)V渲染場景S,對屏幕空間每個(gè)像素P記錄
[0040]a.漫反射顏色值p.rgbd ;
[0041]b.鏡面反射p.s和平滑反射混合參數(shù)p.g ;
[0042]c.法線向量p.η和位置向量p.P ;[0043]d.反射物標(biāo)識p.rid ;
[0044]到屏幕空間幾何緩存(Geometry Buffers)上,應(yīng)用現(xiàn)代GPU顯卡的多渲染目標(biāo)對象技術(shù),此步驟的眾多記錄信息只需要一次渲染就能獲取。其中鏡面反射值P.S為O時(shí)表示理想漫發(fā)射物體,為I時(shí)表示理想鏡面反射。同樣P.g為O表示理想鏡面反射,為I表示有最大BRDF葉片張角的平滑反射模型。
[0045]步驟(2)、根據(jù)步驟(1)中的幾何緩存按照物體的法線向量p.η進(jìn)行屏幕空間反射像素聚類。屏幕空間上反射光線的光線簇方向主要由屏幕空間的法線向量P.η確定,所以聚類標(biāo)識依據(jù)三個(gè)參數(shù)確定,前兩個(gè)參數(shù)分別為法線轉(zhuǎn)換的球坐標(biāo)系參數(shù),第三個(gè)為反射物體的標(biāo)志號。具體求解步驟如下:
[0046]a.對每個(gè)反射物體R,統(tǒng)計(jì)屏幕空間像素?cái)?shù)目aK ;
[0047]b.統(tǒng)計(jì)屏幕空間所有可見反射物體數(shù)目nv ;
[0048]c.將屏幕空間反射像素P的法線p.η轉(zhuǎn)換為球坐標(biāo)系坐標(biāo)(ρ.η.θ ρη φ ),并賦值聚類號(i,j,k)給ρ ;
[0049]1.1=MAXTHETABINS*p.η.Θ/360。*aR/nv
[0050]i1.j=MAXPHIBINS P 丨丨 Ψ 180° *aR/nv
[0051]ii1.k=p.rid
[0052]其中MAXTHETABINS和MAXPHIBINS分別為定義的聚類標(biāo)識前兩個(gè)參數(shù)的最大值。
[0053]聚類效果圖如圖2,圖2中同一色度顏色的區(qū)域代表為同一聚類。
[0054]步驟(3)同一聚類上的反射光線為相差不大的一組光線簇,我們用傳統(tǒng)相機(jī)模型可以對這一組光線簇進(jìn)行建模。相機(jī)的近裁剪面由擬合平面確定。聚類的擬合平面由聚類的幾何重心Pc和平均法線nc決定。聚類的幾何重心是聚類所有像素的中心位置,平均法線是聚類像素法線的平均值。圖3展示了在二維平面上擬合平面的建立過程。視點(diǎn)e,反射物體在P1和Pn的聚類在邊界點(diǎn)的法線分別為Ii1和nN,反射光線r1和rN。遠(yuǎn)裁剪面為距離近裁剪面一定距離D的平行平面。擬合平面(Pc,nc)可由公式(I) (2)表示,N為聚類像素?cái)?shù)目。相機(jī)的初始視點(diǎn)位置為當(dāng)前視點(diǎn)按照擬合平面的鏡像投影位置。
【權(quán)利要求】
1.一種基于多相機(jī)的快速反射繪制方法,總體包括如下步驟: (1)從當(dāng)前視點(diǎn)繪制場景,得到多個(gè)渲染結(jié)果,生成幾何緩存中的顏色圖像; (2)利用屏幕空間聚類算法對屏幕空間反射像素聚類; (3)計(jì)算聚類擬合平面,設(shè)定聚類相機(jī)初始視點(diǎn); (4)由反射光線投影包圍盒的長度比例計(jì)算聚類相機(jī)視點(diǎn)的偏移比例; (5)對每個(gè)聚類,基于偏移視點(diǎn)相機(jī)對反射光線進(jìn)行投影,計(jì)算投影包圍盒參數(shù)和分辨率參數(shù); (6)為每個(gè)相機(jī)聚類繪制場景,得到深度圖像代理; (7)在深度圖像代理上進(jìn)行反射光線求交,按求交結(jié)果點(diǎn)的坐標(biāo)值索引對應(yīng)的顏色作為反射顏色,與與步驟(I)生成的幾何緩存中的顏色圖像混合完成整個(gè)場景的反射效果繪制。
2.根據(jù)權(quán)利要求1所述的基于多相機(jī)的快速反射繪制方法,其特征在于步驟(2)包括:屏幕空間像素的聚類方法;用幾何緩存中屏幕空間反射像素的法線和物體的標(biāo)志號聚類;聚類標(biāo)識依據(jù)三個(gè)參數(shù)確定,前兩個(gè)參數(shù)為法線向量轉(zhuǎn)換的球坐標(biāo)系參數(shù):天頂角Φ,方位角Θ,第三個(gè)為反射物體的標(biāo)志號。
3.根據(jù)權(quán)利要求1所述的基于多相機(jī)的快速反射繪制方法,其特征在于步驟(3)包括:聚類擬合平面的確定,由聚類中所有像素的幾何重心和平均法線確定聚類的擬合平面,并將其作為模擬相機(jī)的近裁剪平面。
4.根據(jù)權(quán)利要求1所述的多相機(jī)的快速反射繪制方法,其特征在于步驟(4),包括:用相機(jī)初始視點(diǎn)投影反射光線起始點(diǎn)和終止點(diǎn),按照包圍盒對角線的比例計(jì)算聚類相機(jī)的偏移視點(diǎn)。
5.根據(jù)權(quán)利要求1所述的多相機(jī)的快速反射繪制方法,其特征在于步驟(5),包括:對每個(gè)聚類,基于偏移視點(diǎn)相機(jī)投影反射光線,計(jì)算投影包圍盒尺寸參數(shù)和分辨率信息。
6.根據(jù)權(quán)利要求1所述的多相機(jī)的快速反射繪制方法,其特征在于步驟(6),包括:以聚類的擬合平面作為相機(jī)的裁剪面,投影包圍盒尺寸作為視窗體尺寸,投影長度作為繪制分辨率為每個(gè)相機(jī)繪制整個(gè)場景,得到聚類深度圖像代理。
7.根據(jù)權(quán)利要求1所述的多相機(jī)的快速反射繪制方法,其特征在于步驟(7),包括:對屏幕空間的每個(gè)反射像素,在對應(yīng)的聚類相機(jī)深度圖像代理中搜索相交點(diǎn),得到反射顏色。與步驟(I)生成的幾何緩存中的顏色圖像混合渲染得到反射渲染效果。
【文檔編號】G06T15/50GK103544731SQ201310462932
【公開日】2014年1月29日 申請日期:2013年9月30日 優(yōu)先權(quán)日:2013年9月30日
【發(fā)明者】王莉莉, 謝乃聞, 楊晨, 趙沁平 申請人:北京航空航天大學(xué)