国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于IBL的光照一致性研究

2019-03-02 02:35黎婭娟馬萬(wàn)峰
現(xiàn)代計(jì)算機(jī) 2019年2期
關(guān)鍵詞:面片光源光照

黎婭娟,馬萬(wàn)峰

(四川大學(xué)計(jì)算機(jī)學(xué)院,成都 610065)

0 引言

隨著科技的發(fā)展,增強(qiáng)現(xiàn)實(shí)[1]越來(lái)越火爆,而增強(qiáng)現(xiàn)實(shí)的其中一個(gè)重要的技術(shù)就是虛實(shí)融合技術(shù)。虛實(shí)融合需要虛擬物體以及真實(shí)場(chǎng)景在光照、幾何以及時(shí)間上的一致性。光照一致性[2-3]指的是虛擬物體光照效果的真實(shí)性,其光照效果與環(huán)境一致,有與環(huán)境同樣明顯的明暗、陰影等效果,從而和背景融為一體。幾何一致性是指虛擬物體和真實(shí)環(huán)境幾何空間的一致性。時(shí)間一致性則指的實(shí)時(shí)交互。目前的AR技術(shù)最缺少的就是光照一致性,因?yàn)楹茈y獲得真實(shí)場(chǎng)景中的光源信息,而真實(shí)場(chǎng)景中的光源不再是簡(jiǎn)單的點(diǎn)光源、平行光源等,而是各種復(fù)雜的光源混雜在一起的。

目前,國(guó)內(nèi)外對(duì)虛實(shí)結(jié)合中的光照一致性均有了一定成果。1993年,F(xiàn)ournirer等[4]提出了利用基于圖像的光照算法,使得虛擬物體與真實(shí)場(chǎng)景融合的思路。2003年,Daisuke Miyazaki等人[5]根據(jù)單視點(diǎn)拍攝的圖像,測(cè)量了反射信息、幾何信息以及光照信息等,估算了光源的位置分布信息。2006年,Tommy Jonson等人[6-7]利用輻射量的技術(shù),把真實(shí)場(chǎng)景變化成環(huán)境貼圖,利用Phong模型來(lái)模擬太陽(yáng)光照,這是一個(gè)基于戶(hù)外的系統(tǒng)。2009年,Banterle等人[8]提出了利用基于圖像的光照技術(shù),恢復(fù)整個(gè)場(chǎng)景的HDR圖像,從而進(jìn)行光照計(jì)算。2014年,Chen等[9]利用場(chǎng)景理解技術(shù)來(lái)估計(jì)真實(shí)場(chǎng)景的幾何信息,進(jìn)行光照估計(jì)。

本文提出的方法是在已有真實(shí)場(chǎng)景的HDR圖像的基礎(chǔ)上,將HDR上每一個(gè)像素點(diǎn)當(dāng)作光源,預(yù)處理生成輻照貼圖和含有MipMap等級(jí)的貼圖,進(jìn)行漫反射光照和鏡面反射光照,同時(shí)在虛擬物體底部加上虛擬的無(wú)限大的平面,利用環(huán)境光遮蔽算法生成陰影,光照與陰影結(jié)合,即可渲染出虛擬物體最終的光照值。

1 相關(guān)工作

本文通過(guò)光照模型對(duì)虛擬物體進(jìn)行光照計(jì)算。光照模型,也叫做明暗模型,是用來(lái)計(jì)算物體任意點(diǎn)的顏色值的一種模型。光照模型有局部光照和全局光照兩種模型,局部光照僅僅只考慮了可見(jiàn)光源對(duì)物體的影響,沒(méi)有考慮到物體相互間的光照等。而在全局光照中,場(chǎng)景中的物體不僅僅會(huì)受到直接來(lái)自光源的光照,同時(shí)還會(huì)收到周?chē)h(huán)境其他物體的反射光折射光等各種光的影響?,F(xiàn)實(shí)生活中的光照就是全局光照[10]。

本文由于已有周?chē)h(huán)境光照的所有信息,所以本文的光照就是全局光照。本文采用的是Cook-Torrance光照模型,它是基于物理的光照模型[11]。光線(xiàn)照射到物體表面會(huì)發(fā)生漫反射、鏡面反射、折射等現(xiàn)象,本文只考慮其中的漫反射和鏡面反射,該Cook-Torrance光照模型就是用來(lái)模擬不同材質(zhì)的反射效果的模型。詳細(xì)算法會(huì)在下一節(jié)詳細(xì)說(shuō)明[14]。

2 算法

本節(jié)主要介紹IBL算法中的漫反射和鏡面反射以及SSAO算法,以及如何將兩個(gè)算法融合,渲染最終的畫(huà)面。輸入一張高動(dòng)態(tài)范圍的全景圖作為背景,即真實(shí)環(huán)境,將全景圖變換成立方體貼圖,將立方體貼圖上的每一個(gè)像素點(diǎn)作為虛擬光源,采用Cook-Torrance光照模型對(duì)虛擬物體進(jìn)行光照,利用SSAO生成對(duì)應(yīng)的AO紋理。最后結(jié)合,使得虛擬物體和真實(shí)環(huán)境很好地融合。

2.1 漫反射計(jì)算

本文根據(jù)輸入的全景圖,轉(zhuǎn)化為立方體貼圖(Cubemap),也稱(chēng)為天空盒。由公式(1),生成天空盒上p點(diǎn)所對(duì)應(yīng)的方向上的輻照值,假設(shè)p點(diǎn)一直在立方體正中心。公式(1)與圖1結(jié)合一起,就是求點(diǎn)p處ωo方向上的輻射值,這個(gè)表達(dá)式取決于入射方向ωi在天空盒上的每一個(gè)采樣方向,因?yàn)閜點(diǎn)所在平面的下半部球上的方向?yàn)樨?fù)值,不考慮在內(nèi),所以本文僅需要考慮在其半球上的入射光線(xiàn)。本文對(duì)p點(diǎn)ωo方向所在的半球上所有的入射光線(xiàn)ωi加權(quán)求平均值,即生成了ωo方向上的輻照值。本文用的黎曼求和積分計(jì)算積分方程,在p點(diǎn)所在的半球領(lǐng)域Ω上進(jìn)行均勻的采樣得到各個(gè)入射方向 ωi上的輻射值,加權(quán)平均后即Li(p,ωi)(n﹒ωi),乘以常量即是積分方程,因?yàn)槭穷A(yù)處理,可以適當(dāng)增加采樣數(shù)量,使得結(jié)果更加的精確。

圖1 半球積分

為了進(jìn)一步簡(jiǎn)化積分計(jì)算,對(duì)公式(1)化簡(jiǎn),將直角坐標(biāo)系轉(zhuǎn)化為極坐標(biāo)系,見(jiàn)公式(2)。因?yàn)槭窃诎肭蝾I(lǐng)域上積分,所以

對(duì)積分繼續(xù)化簡(jiǎn),因?yàn)樯傻臉永臄?shù)量是固定的,所以分別在θ、φ方向上采樣n1、n2數(shù)量的樣本,公式(2)可化簡(jiǎn)為公式(3)

漫反射的計(jì)算是采用預(yù)計(jì)算的方式,預(yù)計(jì)算的過(guò)程:在初始化的時(shí)候,計(jì)算環(huán)境貼圖上任意一點(diǎn)P上的出射方向ωo上的輻照值,將計(jì)算的結(jié)果以FBO的形式輸出到另一張立方體貼圖紋理上。因?yàn)镃ubemap有6個(gè)面,所以初始化時(shí)需要在前后左右上下6個(gè)方向上繪制6遍。后續(xù)在每幀計(jì)算漫反射光照時(shí),僅需要通過(guò)虛擬物體的法向量來(lái)采樣之前生成好的Cubemap即可,從而達(dá)到很好的實(shí)時(shí)性。輸入的環(huán)境貼圖與根據(jù)輻照值生成的輻照貼圖見(jiàn)圖2。

圖2環(huán)境貼圖和輻照貼圖

2.2 鏡面反射計(jì)算

鏡面反射的計(jì)算同漫反射的計(jì)算一樣,均是預(yù)計(jì)算出相關(guān)的紋理。但鏡面反射的預(yù)計(jì)算會(huì)更復(fù)雜,鏡面反射的相關(guān)方程見(jiàn)公式(4)。

為了方便預(yù)計(jì)算,我們將光照部分分為兩個(gè)獨(dú)立的部分,分別積分然后組合得到最后的結(jié)果,見(jiàn)公式(4)。式子的第一部分就是預(yù)過(guò)濾環(huán)境貼圖部分,與漫反射中的輻照貼圖類(lèi)似,均是立方體貼圖。但不一樣的是,本次立方體貼圖是含有MipMap等級(jí)的立方體貼圖,等級(jí)由虛擬物體的粗糙度和金屬度確定,粗糙度越高,金屬度越低,采樣向量越分散,導(dǎo)致反射畫(huà)面更加模糊,因此MipMap等級(jí)更高。由于我們不能提前知道視線(xiàn)的方向,故本文是假設(shè)視線(xiàn)方向總是等于虛擬物體的某點(diǎn)的法向量,因此,不需考慮視線(xiàn)方向。式子第二部分就是反射積分的BRDF部分,BRDF也就是雙向反射分布函數(shù),它是根據(jù)給定的入射方向上的輻照值,來(lái)確定出射方向上的輻射率,也就是,入射光線(xiàn)經(jīng)過(guò)物體表面反射,BRDF是描述變量如何在各個(gè)出射方向上分布的函數(shù)。我們假定照射的輻照度為白色,那么我們就可以在給定粗糙度、法向量和光線(xiàn)方向上計(jì)算BRDF部分。本文第二部分仍然會(huì)預(yù)計(jì)算生成一張BRDF的二維紋理,見(jiàn)圖3,該紋理存儲(chǔ)了一個(gè)對(duì)于菲涅耳方程縮放的值(紅色部分)和一個(gè)偏執(zhí)值(綠色部分)。我們把BRDF的法線(xiàn)向量和入射光線(xiàn)方向的點(diǎn)乘的結(jié)果作為水平坐標(biāo),把BRDF的粗糙度作為垂直坐標(biāo)。將兩部分進(jìn)行合成即生成了鏡面反射光照。

圖3 BRDF二維圖像

2.2 屏幕空間環(huán)境光遮蔽計(jì)算

屏幕空間環(huán)境光遮蔽(SSAO)是一種模擬間接光照的算法,在本文,它用來(lái)替代軟陰影[12],常見(jiàn)的陰影算法陰影映射和點(diǎn)陰影等[13],但是前提是可見(jiàn)的固定光源?,F(xiàn)實(shí)世界中的光源并不是固定的,根據(jù)HDR圖像分析光源難度大,且現(xiàn)實(shí)生活中光源是多光源的,這就更加增加了難度。因此本文用屏幕空間環(huán)境光遮蔽算法代替軟陰影,但是該算法僅適用于光照很復(fù)雜,沒(méi)有明顯光源的環(huán)境。屏幕空間環(huán)境光遮蔽將褶皺、孔洞以及非??拷膲γ孀儼档姆椒▉?lái)模擬間接光照,也就是本文的軟陰影,從而消除懸浮感。因?yàn)檫@些區(qū)域很大部分都被周?chē)膸缀误w遮蔽,光線(xiàn)難以流失,因此會(huì)看上去暗一些。

屏幕空間環(huán)境光遮蔽具體是這樣計(jì)算的:對(duì)于模型的每一個(gè)三角面片,根據(jù)周?chē)拿嫫纳疃戎涤?jì)算遮蔽因子,遮蔽因子越多,即光照越暗。采集三角面片中心所在球內(nèi)的多個(gè)隨機(jī)的樣本點(diǎn)的深度,與當(dāng)前面片的深度值進(jìn)行對(duì)比,比當(dāng)前面片高的樣本數(shù)量即是遮蔽因子。如圖4(a)所示,灰色部分的樣本是高于當(dāng)前面片的深度值,也就是遮蔽因子,灰色越多,當(dāng)前面片越暗。

由于采樣的區(qū)域是一個(gè)球體,這樣會(huì)導(dǎo)致一個(gè)平面接受的光照最多為50%,因?yàn)槠矫嬷辽儆幸话氲臄?shù)量是遮蔽因子,但是在真實(shí)世界,平面是沒(méi)有任何遮擋的,不應(yīng)該是灰色。因此,本文將采樣區(qū)域改為面片法向量所在平面的半球,如下圖4(b)。由于僅僅對(duì)半球體內(nèi)采樣,沒(méi)有考慮到當(dāng)前面片底部的樣本,因此不會(huì)出色灰蒙蒙的效果。

屏幕空間環(huán)境光遮蔽需要輸入三角面片的位置信息、法線(xiàn)向量,計(jì)算出遮蔽因子后最終通過(guò)FBO將屏幕上每一個(gè)像素點(diǎn)所對(duì)應(yīng)的環(huán)境光照比率存儲(chǔ)在二維紋理上,但是此時(shí)有很多重復(fù)的噪聲紋理,故本文會(huì)對(duì)生成二維紋理進(jìn)行模糊化處理,從而創(chuàng)建一個(gè)光滑的遮蔽結(jié)果,如圖5,供后續(xù)的光照計(jì)算使用。

圖4遮蔽因子

圖5 枕頭的AO貼圖

3 實(shí)驗(yàn)結(jié)果

本節(jié)中將會(huì)展示輸入同一個(gè)模型在不同的環(huán)境中的變化以及不同的模型在同一環(huán)境中的變化,以及加入SSAO算法與不加SSAO算法的對(duì)比圖。實(shí)驗(yàn)環(huán)境為NVIDIA GeForce GTX 1050。

本節(jié)第一個(gè)實(shí)驗(yàn)為佛像和花瓶模型的不同材質(zhì)在同一環(huán)境下的光照,材質(zhì)屬性有漫反射材質(zhì)、鏡面反射材質(zhì)以及漫反射和鏡面反射均有的材質(zhì)。渲染結(jié)果見(jiàn)圖6,圖中第一行的模型為佛像,第二行的模型為花瓶。第一列的材質(zhì)均為全部漫反射材質(zhì),第二列材質(zhì)介于漫反射和鏡面反射中間,第三列材質(zhì)為全部鏡面反射??梢钥闯?,光線(xiàn)照射到全漫反射材質(zhì)時(shí),因?yàn)楣饩€(xiàn)全部向四面八方發(fā)散,因此沒(méi)有突出的亮斑;而光線(xiàn)照射到處于漫反射和鏡面反射均有的材質(zhì)時(shí),會(huì)有少量的比較模糊的亮斑,有反射周?chē)鷪?chǎng)景的模糊感,同時(shí)還有自身的顏色;光線(xiàn)照射到全鏡面反射材質(zhì)時(shí),因?yàn)槭晴R面材質(zhì),會(huì)全部反射周?chē)膱?chǎng)景,沒(méi)有自身的顏色,因此渲染圖成透明玻璃狀態(tài),完全地反射了周?chē)h(huán)境。不同的模型在相同場(chǎng)景中均能夠與場(chǎng)景很好的融合,給人真實(shí)的感覺(jué),本文的算法確實(shí)能夠較好的模擬不同的虛擬物體在相同場(chǎng)景的渲染效果。同時(shí),用Fraps軟件測(cè)試幀率,花瓶模型為470幀左右,佛像模型在450幀浮動(dòng),遠(yuǎn)遠(yuǎn)超過(guò)實(shí)時(shí)的要求,也說(shuō)明了本文算法的優(yōu)勢(shì)性,能夠?qū)崟r(shí)的滿(mǎn)足全局光照效果。

本文第二個(gè)實(shí)驗(yàn)為材質(zhì)漫反射和鏡面反射之間的佛像模型在不同的環(huán)境下的光照結(jié)果,輸入的HDR圖像均不相同。渲染結(jié)果見(jiàn)圖7,虛擬物體的色調(diào)基本與周?chē)h(huán)境一致。明亮的場(chǎng)景中,虛擬物體也很明暗;反之,灰暗的場(chǎng)景中,虛擬物體也隨之很暗。實(shí)驗(yàn)表面,本文算法很好的兼容性,針對(duì)不同的環(huán)境,虛擬物體都能很好地與場(chǎng)景融合。

本文第三個(gè)實(shí)驗(yàn)為枕頭模型在房間里的光照結(jié)果,渲染結(jié)果見(jiàn)圖8。左圖是沒(méi)有SSAO的結(jié)果,右圖是加入SSAO的結(jié)果。通過(guò)對(duì)比可以發(fā)現(xiàn),因?yàn)橛覉D有陰影的效果,明顯比左圖真實(shí),同時(shí)消除了懸浮感,右圖的枕頭的AO圖見(jiàn)圖5,通過(guò)在枕頭底部加入一塊平面替代真實(shí)環(huán)境的沙發(fā),達(dá)到了枕頭與沙發(fā)間陰影的效果,使得整個(gè)虛擬物體更加的真實(shí)。由于SSAO算法每一幀需要繪制,因此很耗效率,測(cè)試幀率,關(guān)閉SSAO為285幀左右,開(kāi)啟SASAO為60幀左右,仍然可以滿(mǎn)足實(shí)時(shí)渲染的要求。實(shí)驗(yàn)表明,SSAO算法確實(shí)能夠很好的解決軟陰影問(wèn)題,從而消除虛擬物體的懸浮感,達(dá)到更好的真實(shí)效果。

本文第四個(gè)實(shí)驗(yàn)是在實(shí)驗(yàn)三的基礎(chǔ)上,改變真實(shí)環(huán)境的主題色,測(cè)試枕頭顏色的變化,渲染結(jié)果見(jiàn)圖9??梢钥吹剑S著環(huán)境色調(diào)的變化,枕頭光照顏色隨之變化,與場(chǎng)景的變化一致。實(shí)驗(yàn)再次驗(yàn)證,本文算法能夠很好地保證虛擬物體與環(huán)境光照的一致性。

圖6 不同材質(zhì)的虛擬物體在同一環(huán)境下的渲染結(jié)果

圖7 相同材質(zhì)的虛擬物體在不同環(huán)境下的渲染結(jié)果

圖8 相同材質(zhì)的虛擬物體在不同環(huán)境下的渲染結(jié)果

圖9 相同材質(zhì)的虛擬物體在不同環(huán)境下的渲染結(jié)果

4 總結(jié)與展望

本文提出的方法,通過(guò)輸入HDR圖像與虛擬物體,能夠輸出虛擬物體與場(chǎng)景虛實(shí)融合的效果,達(dá)到全局光照的效果,使得場(chǎng)景與虛擬物體光照一致性,給人真實(shí)的感覺(jué),并能夠達(dá)到實(shí)時(shí)要求。經(jīng)過(guò)測(cè)試,同一虛擬物體在不同場(chǎng)景中以及不同虛擬物體在相同場(chǎng)景中,均能很好的與場(chǎng)景融合。

本文算法針對(duì)光源不明顯的場(chǎng)景,效果很真實(shí),在以后的研究中,我們會(huì)針對(duì)單光源的場(chǎng)景,分析光源所在位置,從而使用別的陰影算法,達(dá)到真實(shí)的效果,消除懸浮感。

猜你喜歡
面片光源光照
肉種雞的光照不應(yīng)性對(duì)養(yǎng)殖生產(chǎn)的不良影響分析
與往年相比,我們的選擇更多更好了 2021國(guó)內(nèi)外主流激光與LED光源家用投影機(jī)攻略
光源改變光環(huán)境
享受LED光源的卓越色彩 Acer(宏碁)PD1530i
隱蔽的力量
河沿面片
河沿面片
天地間唯一的光源
甜面片里的人生
水禽舍的光照及其控制
云龙县| 修武县| 林周县| 湖南省| 岳阳市| 万荣县| 汝州市| 阜康市| 宜黄县| 宜州市| 高雄市| 夏邑县| 安化县| 孟州市| 济阳县| 筠连县| 平果县| 衡东县| 胶州市| 垣曲县| 临西县| 岗巴县| 资源县| 德安县| 文成县| 大庆市| 通道| 伊川县| 双城市| 娄底市| 宜兰市| 泗阳县| 中西区| 长寿区| 姜堰市| 衡山县| 台江县| 陇西县| 洛南县| 正宁县| 西乡县|