两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

利用可見(jiàn)性插值實(shí)現(xiàn)三維場(chǎng)景間接光照效果近似繪制的方法與流程

文檔序號(hào):12273142閱讀:253來(lái)源:國(guó)知局
利用可見(jiàn)性插值實(shí)現(xiàn)三維場(chǎng)景間接光照效果近似繪制的方法與流程

本發(fā)明涉及一種利用可見(jiàn)性插值實(shí)現(xiàn)三維場(chǎng)景間接光照效果近似繪制的方法,屬于三維圖形繪制技術(shù)領(lǐng)域。



背景技術(shù):

利用計(jì)算機(jī)生成照片級(jí)真實(shí)感三維場(chǎng)景畫面離不開(kāi)全局光照效果的繪制。全局光照可以看作是直接光照和間接光照之和。用基于光柵化圖形繪制管線的技術(shù)可以比較容易地繪制出直接光照效果,全局光照效果繪制的難點(diǎn)是間接光照效果的繪制。常見(jiàn)的全局光照效果繪制方法有路徑跟蹤、光子映射、光線跟蹤等方法。在“2005 Symposium on Interactive 3D Graphics and Games”國(guó)際學(xué)術(shù)會(huì)議上,Carsten Dachsbacher和Marc Stamminger發(fā)表了論文《Reflective Shadow Maps》;在該論文中作者提出了反射陰影圖方法,用于快速繪制三維場(chǎng)景的近似間接光照;該方法的核心思想是:先把相機(jī)放在光源位置處,繪制三維場(chǎng)景,生成反射陰影圖,然后把反射陰影圖中的每個(gè)像素記錄的空間位置點(diǎn)當(dāng)作一個(gè)間接光源,最后用這些間接光源來(lái)照射三維場(chǎng)景并把相機(jī)放在視點(diǎn)位置,按照正常的視點(diǎn)觀察參數(shù)繪制三維場(chǎng)景,從而繪制出近似間接光照結(jié)果。然而,Carsten Dachsbacher和Marc Stamminger提出的反射陰影圖方法在繪制間接光照時(shí)并未考慮間接光源與可視場(chǎng)景點(diǎn)之間的可見(jiàn)性問(wèn)題,即該方法不能正確繪制因間接光源被物體遮擋而出現(xiàn)的間接光照陰影。Tobias Ritschel等人2011年在《Computer Graphics Forum》期刊上發(fā)表了論文《Making Imperfect Shadow Maps View-Adaptive: High-Quality Global Illumination in Large Dynamic Scenes》,作者用雙向反射陰影圖(Bidirectional Reflective Shadow Map)和重要性采樣技術(shù)來(lái)從所有潛在的間接光源集合中選擇一個(gè)子集,從而創(chuàng)建出實(shí)際使用的間接光源集合,進(jìn)而用該子集中的間接光源來(lái)照射三維場(chǎng)景,以便繪制三維場(chǎng)景的近似間接光照效果;Tobias Ritschel等人使用殘缺陰影圖(Imperfect Shadow Map)來(lái)實(shí)現(xiàn)間接光照陰影計(jì)算,然而使用殘缺陰影圖要求三維場(chǎng)景幾何對(duì)象能用數(shù)量合理的點(diǎn)來(lái)代表,這個(gè)條件對(duì)復(fù)雜三維場(chǎng)景來(lái)說(shuō)不易滿足。



技術(shù)實(shí)現(xiàn)要素:

本發(fā)明的目的在于提供一種利用可見(jiàn)性插值實(shí)現(xiàn)三維場(chǎng)景間接光照效果近似繪制的方法, 根據(jù)部分場(chǎng)景采樣點(diǎn)和間接光源之間的可見(jiàn)性來(lái)插值計(jì)算其他場(chǎng)景點(diǎn)和間接光源之間的可見(jiàn)性,從而用較低的代價(jià)完成考慮間接光照遮擋問(wèn)題的間接光照效果繪制。

本發(fā)明的技術(shù)方案是這樣實(shí)現(xiàn)的:一種利用可見(jiàn)性插值實(shí)現(xiàn)三維場(chǎng)景間接光照效果近似繪制的方法, 其特征在于:首先利用雙向反射陰影圖和重要性采樣技術(shù),根據(jù)待繪制三維場(chǎng)景模型創(chuàng)建在間接光照繪制過(guò)程中實(shí)際使用的間接光源集合A001;然后,把相機(jī)放到視點(diǎn)位置,按照正常的視點(diǎn)觀察參數(shù)繪制三維場(chǎng)景,計(jì)算得到每個(gè)可視場(chǎng)景點(diǎn)的空間位置A002,并把所有空間位置A002存放在二維數(shù)組A003中;對(duì)二維數(shù)組A003進(jìn)行降采樣得到二維數(shù)組A004,對(duì)于間接光源集合A001中的每個(gè)間接光源A005,判斷間接光源A005與二維數(shù)組A004中的每個(gè)空間位置A002之間是否直接可視,如果直接可視,把與之對(duì)應(yīng)的可見(jiàn)性值設(shè)置為1,否則把與之對(duì)應(yīng)的可見(jiàn)性值設(shè)置為0,把二維數(shù)組A004中的所有空間位置A002對(duì)應(yīng)的可見(jiàn)性值保存在二維數(shù)組A006中;對(duì)于間接光源集合A001中的每個(gè)間接光源A005,計(jì)算在不考慮幾何物體遮擋時(shí)的間接光源A005對(duì)二維數(shù)組A003中的每個(gè)空間位置A002的光照貢獻(xiàn)A007,利用二維雙線性插值技術(shù)根據(jù)二維數(shù)組A006的內(nèi)容插值計(jì)算出間接光源A005與二維數(shù)組A003中的每個(gè)空間位置A002之間的可見(jiàn)性值VIS,間接光源A005對(duì)二維數(shù)組A003中的每個(gè)空間位置A002的實(shí)際光照貢獻(xiàn)IndI等于光照貢獻(xiàn)A007與可見(jiàn)性值VIS之乘積;對(duì)于二維數(shù)組A003中的每個(gè)空間位置A002,累加間接光源集合A001中的每個(gè)間接光源A005對(duì)空間位置A002的實(shí)際光照貢獻(xiàn)IndI就得到空間位置A002的總間接光照結(jié)果;具體實(shí)現(xiàn)步驟如下:

步驟S101:利用雙向反射陰影圖和重要性采樣技術(shù),根據(jù)待繪制三維場(chǎng)景模型創(chuàng)建在間接光照繪制過(guò)程中實(shí)際使用的間接光源集合A001;

步驟S102:把相機(jī)放到視點(diǎn)位置,按照正常的視點(diǎn)觀察參數(shù)繪制三維場(chǎng)景,計(jì)算得到每個(gè)可視場(chǎng)景點(diǎn)的空間位置A002,并把所有空間位置A002存放在二維數(shù)組A003中;可視場(chǎng)景點(diǎn)就是從視點(diǎn)位置透過(guò)虛擬像素平面的像素能直接看到的場(chǎng)景點(diǎn),二維數(shù)組A003的行數(shù)等于虛擬像素平面的像素行數(shù)Nr,二維數(shù)組A003的列數(shù)等于虛擬像素平面的像素列數(shù)Nc;二維數(shù)組A003的每個(gè)元素與虛擬像素平面的各個(gè)像素一一對(duì)應(yīng);

步驟S103:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含行、列的二維數(shù)組A004,其中表示對(duì)x進(jìn)行向上取整,n為一個(gè)正奇數(shù)表示降采樣倍數(shù),n < Nrn < Nc;把二維數(shù)組A003的第行、第列的元素賦值給二維數(shù)組A004的第i行、第j列的元素,其中i = 1, 2, ?, ?1,j = 1, 2, ?, ?1,表示對(duì)x進(jìn)行向下取整;如果,則令I(lǐng)dr = + +1,否則令I(lǐng)dr = Nr;如果,則令,否則令I(lǐng)dc = Nc;把二維數(shù)組A003的第Idr行、第列的元素賦值給二維數(shù)組A004的第行、第j列的元素,其中;把二維數(shù)組A003的第行、第Idc列的元素賦值給二維數(shù)組A004的第i行、第列的元素,其中;把二維數(shù)組A003的第Idr行、第Idc列的元素賦值給二維數(shù)組A004的第行、第列的元素;

步驟S104:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含Nr行、Nc列的二維數(shù)組IndLS,把二維數(shù)組IndLS的每個(gè)元素賦值為0,二維數(shù)組IndLS的元素與二維數(shù)組A003的元素一一對(duì)應(yīng),二維數(shù)組IndLS用于保存二維數(shù)組A003中的元素對(duì)應(yīng)的空間位置A002的總間接光照結(jié)果;對(duì)于間接光源集合A001中的每個(gè)間接光源A005,做如下操作:

步驟S104-1:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含行、列的二維數(shù)組A006;二維數(shù)組A006的元素與二維數(shù)組A004的元素一一對(duì)應(yīng)。對(duì)于二維數(shù)組A004中的每個(gè)元素B003,計(jì)算元素B003在二維數(shù)組A004中對(duì)應(yīng)的行號(hào)row和列號(hào)col,做如下操作:

① 連接元素B003對(duì)應(yīng)的空間位置A002與間接光源A005對(duì)應(yīng)的空間位置B004,確定一條線段B005,判斷線段B005與三維場(chǎng)景中的幾何物體之間是否有除線段B005的兩個(gè)端點(diǎn)之外的交點(diǎn),如果有,則把二維數(shù)組A006的第row行、第col列的元素賦值為0,否則把二維數(shù)組A006的第row行、第col列的元素賦值為1;

② 計(jì)算元素B003對(duì)應(yīng)的空間位置A002在視點(diǎn)坐標(biāo)系中的坐標(biāo)vCOR;視點(diǎn)坐標(biāo)系由u、v、w三個(gè)正交的方向定義,視點(diǎn)坐標(biāo)系的原點(diǎn)在視點(diǎn)位置,w方向?yàn)槲挥谝朁c(diǎn)處的相機(jī)的正前方向,v方向?yàn)槲挥谝朁c(diǎn)處的相機(jī)的豎直向上方向。

步驟S104-2:對(duì)于二維數(shù)組A003中的每個(gè)元素B006,做如下操作:

① 計(jì)算在不考慮幾何物體遮擋時(shí)的間接光源A005對(duì)元素B006對(duì)應(yīng)的空間位置A002產(chǎn)生的光照貢獻(xiàn)A007;

② 二維數(shù)組A006的各個(gè)元素與二維數(shù)組A004的各個(gè)元素對(duì)應(yīng)的空間位置A002的坐標(biāo)vCOR的uv分量共同定義了二維可見(jiàn)性函數(shù)V(u, v)的離散采樣結(jié)果B007,二維數(shù)組A006的各個(gè)元素的值為二維可見(jiàn)性函數(shù)V(u, v)在特定的uv位置處的采樣值;計(jì)算元素B006對(duì)應(yīng)的空間位置A002在視點(diǎn)坐標(biāo)系中的坐標(biāo)vCOR2;令s2等于坐標(biāo)vCOR2的u分量值,t2等于坐標(biāo)vCOR2的v分量值;根據(jù)離散采樣結(jié)果B007,如果s2t2在離散采樣結(jié)果B007的uv坐標(biāo)的采樣范圍內(nèi),則利用二維雙線性插值技術(shù)計(jì)算V(u = s2, v = t2)的值,否則在離散采樣結(jié)果B007中搜索離(u = s2, v = t2)最近的采樣點(diǎn)SP,把采樣點(diǎn)SP對(duì)應(yīng)的二維可見(jiàn)性函數(shù)V(u, v)的值作為V(u = s2, v = t2)的近似值;令變量DSI等于光照貢獻(xiàn)A007與V(u = s2, v= t2)的值之乘積;

③ 計(jì)算元素B006在二維數(shù)組A003中的行號(hào)i2和列號(hào)j2;先把變量BUF賦值為二維數(shù)組IndLS的第i2行、第j2列的元素的值,再把二維數(shù)組IndLS的第i2行、第j2列的元素賦值為變量BUF的值與變量DSI的值之和。

步驟S105:用標(biāo)準(zhǔn)的陰影映射方法繪制三維場(chǎng)景的直接光照結(jié)果,把直接光照結(jié)果與二維數(shù)組IndLS中保存的總間接光照結(jié)果加在一起就得到全局光照結(jié)果,最后把全局光照結(jié)果轉(zhuǎn)換成像素顏色值,輸出到三維場(chǎng)景畫面圖像文件中。

本發(fā)明的積極效果是利用雙向反射陰影圖和重要性采樣技術(shù)來(lái)創(chuàng)建在間接光照繪制過(guò)程中實(shí)際使用的間接光源集合,通過(guò)用間接光源照射三維場(chǎng)景來(lái)繪制間接光照,在評(píng)估間接光照可見(jiàn)性時(shí)通過(guò)對(duì)可視場(chǎng)景點(diǎn)進(jìn)行降采樣來(lái)減小計(jì)算開(kāi)銷,使用可見(jiàn)性插值方法來(lái)計(jì)算未被采樣的可視場(chǎng)景點(diǎn)的間接光照可見(jiàn)性。本方法的可見(jiàn)性插值利用了間接光照可見(jiàn)性在空間上通常連續(xù)變化的特性。使用本方法可以用較低的代價(jià)完成考慮間接光照遮擋問(wèn)題的三維場(chǎng)景間接光照效果繪制,從而提高三維場(chǎng)景間接光照效果繪制速度。

附圖說(shuō)明

圖1為對(duì)二維數(shù)組進(jìn)行降采樣的示意圖。

圖2為視點(diǎn)坐標(biāo)系示意圖。

具體實(shí)施方式

為了使本發(fā)明的特征和優(yōu)點(diǎn)更加清楚明白,下面結(jié)合具體實(shí)施例對(duì)本發(fā)明作進(jìn)一步的描述。

在本實(shí)施例中,計(jì)算機(jī)系統(tǒng)的CPU 選擇Intel(R) Xeon(R) CPU E3-1225 v3 @ 3.20GHz,內(nèi)存選擇金士頓 8GB DDR3 1333,磁盤選擇Buffalo HD-CE 1.5 TU2,顯卡選用NVidia Quadro K2000;計(jì)算機(jī)操作系統(tǒng)選用Windows 7,軟件編程工具選用VC++ 2010。在本實(shí)施例中,虛擬像素平面的像素行數(shù)為768,虛擬像素平面的像素列數(shù)為1024,降采樣倍數(shù)為7;三維場(chǎng)景為一個(gè)室內(nèi)場(chǎng)景,用一個(gè)聚光燈從天花板向下照射三維場(chǎng)景。

首先利用雙向反射陰影圖和重要性采樣技術(shù),根據(jù)待繪制三維場(chǎng)景模型創(chuàng)建在間接光照繪制過(guò)程中實(shí)際使用的間接光源集合A001;然后,把相機(jī)放到視點(diǎn)位置,按照正常的視點(diǎn)觀察參數(shù)繪制三維場(chǎng)景,計(jì)算得到每個(gè)可視場(chǎng)景點(diǎn)的空間位置A002,并把所有空間位置A002存放在二維數(shù)組A003中;對(duì)二維數(shù)組A003進(jìn)行降采樣得到二維數(shù)組A004,如圖1所示;對(duì)于間接光源集合A001中的每個(gè)間接光源A005,判斷間接光源A005與二維數(shù)組A004中的每個(gè)空間位置A002之間是否直接可視,如果直接可視,把與之對(duì)應(yīng)的可見(jiàn)性值設(shè)置為1,否則把與之對(duì)應(yīng)的可見(jiàn)性值設(shè)置為0,把二維數(shù)組A004中的所有空間位置A002對(duì)應(yīng)的可見(jiàn)性值保存在二維數(shù)組A006中;對(duì)于間接光源集合A001中的每個(gè)間接光源A005,計(jì)算在不考慮幾何物體遮擋時(shí)的間接光源A005對(duì)二維數(shù)組A003中的每個(gè)空間位置A002的光照貢獻(xiàn)A007,利用二維雙線性插值技術(shù)根據(jù)二維數(shù)組A006的內(nèi)容插值計(jì)算出間接光源A005與二維數(shù)組A003中的每個(gè)空間位置A002之間的可見(jiàn)性值VIS,間接光源A005對(duì)二維數(shù)組A003中的每個(gè)空間位置A002的實(shí)際光照貢獻(xiàn)IndI等于光照貢獻(xiàn)A007與可見(jiàn)性值VIS之乘積;對(duì)于二維數(shù)組A003中的每個(gè)空間位置A002,累加間接光源集合A001中的每個(gè)間接光源A005對(duì)空間位置A002的實(shí)際光照貢獻(xiàn)IndI就得到空間位置A002的總間接光照結(jié)果。本發(fā)明方法的具體實(shí)現(xiàn)步驟如下。

步驟S101:利用雙向反射陰影圖和重要性采樣技術(shù),根據(jù)待繪制三維場(chǎng)景模型創(chuàng)建在間接光照繪制過(guò)程中實(shí)際使用的間接光源集合A001;

步驟S102:把相機(jī)放到視點(diǎn)位置,按照正常的視點(diǎn)觀察參數(shù)繪制三維場(chǎng)景,計(jì)算得到每個(gè)可視場(chǎng)景點(diǎn)的空間位置A002,并把所有空間位置A002存放在二維數(shù)組A003中;可視場(chǎng)景點(diǎn)就是從視點(diǎn)位置透過(guò)虛擬像素平面的像素能直接看到的場(chǎng)景點(diǎn),二維數(shù)組A003的行數(shù)等于虛擬像素平面的像素行數(shù)Nr,二維數(shù)組A003的列數(shù)等于虛擬像素平面的像素列數(shù)Nc;二維數(shù)組A003的每個(gè)元素與虛擬像素平面的各個(gè)像素一一對(duì)應(yīng);

步驟S103:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含行、列的二維數(shù)組A004,其中表示對(duì)x進(jìn)行向上取整,n為一個(gè)正奇數(shù)表示降采樣倍數(shù),n < Nrn < Nc;把二維數(shù)組A003的第行、第列的元素賦值給二維數(shù)組A004的第i行、第j列的元素,其中i = 1, 2, ?, ?1,j = 1, 2, ?, ?1,表示對(duì)x進(jìn)行向下取整;如果,則令I(lǐng)dr = + +1,否則令I(lǐng)dr = Nr;如果,則令,否則令I(lǐng)dc = Nc;把二維數(shù)組A003的第Idr行、第列的元素賦值給二維數(shù)組A004的第行、第j列的元素,其中;把二維數(shù)組A003的第行、第Idc列的元素賦值給二維數(shù)組A004的第i行、第列的元素,其中;把二維數(shù)組A003的第Idr行、第Idc列的元素賦值給二維數(shù)組A004的第行、第列的元素;

步驟S104:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含Nr行、Nc列的二維數(shù)組IndLS,把二維數(shù)組IndLS的每個(gè)元素賦值為0,二維數(shù)組IndLS的元素與二維數(shù)組A003的元素一一對(duì)應(yīng),二維數(shù)組IndLS用于保存二維數(shù)組A003中的元素對(duì)應(yīng)的空間位置A002的總間接光照結(jié)果;對(duì)于間接光源集合A001中的每個(gè)間接光源A005,做如下操作:

步驟S104-1:在計(jì)算機(jī)系統(tǒng)的存儲(chǔ)器中創(chuàng)建一個(gè)包含行、列的二維數(shù)組A006;二維數(shù)組A006的元素與二維數(shù)組A004的元素一一對(duì)應(yīng)。對(duì)于二維數(shù)組A004中的每個(gè)元素B003,計(jì)算元素B003在二維數(shù)組A004中對(duì)應(yīng)的行號(hào)row和列號(hào)col,做如下操作:

① 連接元素B003對(duì)應(yīng)的空間位置A002與間接光源A005對(duì)應(yīng)的空間位置B004,確定一條線段B005,判斷線段B005與三維場(chǎng)景中的幾何物體之間是否有除線段B005的兩個(gè)端點(diǎn)之外的交點(diǎn),如果有,則把二維數(shù)組A006的第row行、第col列的元素賦值為0,否則把二維數(shù)組A006的第row行、第col列的元素賦值為1;

② 計(jì)算元素B003對(duì)應(yīng)的空間位置A002在視點(diǎn)坐標(biāo)系中的坐標(biāo)vCOR;視點(diǎn)坐標(biāo)系由uv、w三個(gè)正交的方向定義,如圖2所示,視點(diǎn)坐標(biāo)系的原點(diǎn)在視點(diǎn)位置,w方向?yàn)槲挥谝朁c(diǎn)處的相機(jī)的正前方向,v方向?yàn)槲挥谝朁c(diǎn)處的相機(jī)的豎直向上方向。

步驟S104-2:對(duì)于二維數(shù)組A003中的每個(gè)元素B006,做如下操作:

① 計(jì)算在不考慮幾何物體遮擋時(shí)的間接光源A005對(duì)元素B006對(duì)應(yīng)的空間位置A002產(chǎn)生的光照貢獻(xiàn)A007;

② 二維數(shù)組A006的各個(gè)元素與二維數(shù)組A004的各個(gè)元素對(duì)應(yīng)的空間位置A002的坐標(biāo)vCOR的uv分量共同定義了二維可見(jiàn)性函數(shù)V(u, v)的離散采樣結(jié)果B007,二維數(shù)組A006的各個(gè)元素的值為二維可見(jiàn)性函數(shù)V(u, v)在特定的uv位置處的采樣值;計(jì)算元素B006對(duì)應(yīng)的空間位置A002在視點(diǎn)坐標(biāo)系中的坐標(biāo)vCOR2;令s2等于坐標(biāo)vCOR2的u分量值,t2等于坐標(biāo)vCOR2的v分量值;根據(jù)離散采樣結(jié)果B007,如果s2t2在離散采樣結(jié)果B007的uv坐標(biāo)的采樣范圍內(nèi),則利用二維雙線性插值技術(shù)計(jì)算V(u = s2, v = t2)的值,否則在離散采樣結(jié)果B007中搜索離(u = s2, v = t2)最近的采樣點(diǎn)SP,把采樣點(diǎn)SP對(duì)應(yīng)的二維可見(jiàn)性函數(shù)V(u, v)的值作為V(u = s2, v = t2)的近似值;令變量DSI等于光照貢獻(xiàn)A007與V(u = s2, v= t2)的值之乘積;

③ 計(jì)算元素B006在二維數(shù)組A003中的行號(hào)i2和列號(hào)j2;先把變量BUF賦值為二維數(shù)組IndLS的第i2行、第j2列的元素的值,再把二維數(shù)組IndLS的第i2行、第j2列的元素賦值為變量BUF的值與變量DSI的值之和。

步驟S105:用標(biāo)準(zhǔn)的陰影映射方法繪制三維場(chǎng)景的直接光照結(jié)果,把直接光照結(jié)果與二維數(shù)組IndLS中保存的總間接光照結(jié)果加在一起就得到全局光照結(jié)果,最后把全局光照結(jié)果轉(zhuǎn)換成像素顏色值,輸出到三維場(chǎng)景畫面圖像文件中。

當(dāng)前第1頁(yè)1 2 3 
網(wǎng)友詢問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
治多县| 广水市| 秦安县| 开封县| 临洮县| 乌鲁木齐市| 浑源县| 大荔县| 来凤县| 柳林县| 温州市| 曲松县| 乌兰浩特市| 瓦房店市| 巴彦淖尔市| 健康| 德兴市| 永寿县| 桃江县| 平谷区| 丹巴县| 鄂伦春自治旗| 岫岩| 台北县| 磐安县| 德安县| 夹江县| 河池市| 泽州县| 双江| 贵溪市| 无为县| 彭泽县| 稻城县| 柏乡县| 藁城市| 阿瓦提县| 通山县| 巍山| 滨州市| 兴城市|