亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        AR透明眼鏡渲染

        2019-03-02 02:35:30馬萬峰黎婭娟
        現(xiàn)代計算機 2019年2期
        關(guān)鍵詞:方向深度模型

        馬萬峰,黎婭娟

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

        0 引言

        隨著圖形學(xué)理論的進展和顯卡計算能力的提升,使得實時虛擬現(xiàn)實(VR)和增強現(xiàn)實(AR)應(yīng)用在PC端乃至移動端實現(xiàn)成為可能,尤其是發(fā)展到現(xiàn)在AR應(yīng)用已經(jīng)被廣泛應(yīng)用于交互游戲和手機自拍中。對于AR應(yīng)用需要解決兩個關(guān)鍵的問題,物理一致性和光照一致性,同時對于透明物體的渲染,還需要考慮融合問題[1]。目前來說很多大的公司都在發(fā)力AR,例如谷歌已經(jīng)正式發(fā)布了ARCore,ARKit已經(jīng)跟新到了2.0版本,已經(jīng)有超過千萬的安裝數(shù)量。同時,包括三星、小米、華為也在各自手機上開展AR體驗,微信、支付寶等也有AR攝影。

        目前功能性AR主要集中在各種短視頻、特效相機、虛擬全景旅游,用戶目前更多的是體驗AR所帶來的那種新鮮感[2]。2015年左右,AR圖書或者AR識圖卡[3]特別火,一度帶動了圖書行業(yè)的小高潮,AR+教育成為當(dāng)時特別火熱的話題。通過AR技術(shù),將紙質(zhì)圖文知識以生動酷炫的3D場景/模型呈現(xiàn),帶來全新的閱讀體驗。AR家居,也是非常典型的應(yīng)用場景,尤其是結(jié)合AR空間深度感知技術(shù),真正為用戶解決家居擺放、購買等需求。

        國內(nèi)外互聯(lián)網(wǎng)巨頭目前仍然還在持續(xù)不斷地對AR進行投入,目前市面上越來越多的產(chǎn)品,我們都能看到在產(chǎn)品上面集成了AR功能。

        但是與此同時也帶來了一個非常嚴(yán)重的問題,AR渲染不僅僅包括物理場景的探測,還包括周圍光照環(huán)境的實時探測,特別是當(dāng)AR與透明物體結(jié)合在一起時將會帶來更多的挑戰(zhàn)。包括預(yù)計算和在光照計算上做出一些妥協(xié)[5],以及改進渲染算法是一件非常重要的事情,尤其是在目前更多的AR體驗來源于移動端,但是移動端GPU和CPU通常計算能力還是不夠,如何能夠減輕渲染時對硬件帶來的負(fù)擔(dān)是一個越來越重要的課題,本文將會聚焦光照一致性算法效率提升和與透明物體渲染結(jié)合,能夠更好地用于移動端。

        本文提出了一種方法,能夠?qū)?yīng)用于非透明物體的Cook-Torrance光照模型進行改進,利用紋理偏移方法與透明物體背后的場景進行偏移混合,同時利用多種方式改進渲染效率,最終在可接受的渲染時間內(nèi)實時渲染出了透明眼鏡并能夠與頭部模型混合,隨著頭部的轉(zhuǎn)動而進行對應(yīng)的運動,用于自拍體驗中。

        1 相關(guān)工作

        本文提出的方法,首先通過解析視頻或者實時相機拍攝得到的每一幀的含有人頭部的圖片,通過圖像解析算法得到對應(yīng)的虛擬頭部模型的變換矩陣,包括平移、旋轉(zhuǎn)矩陣,每次人的頭部發(fā)生任何改變,將會對M(Model)、V(View)、P(Projection)矩陣產(chǎn)生影響,并反饋得到。

        接下來對眼鏡進行渲染,眼睛的光照渲染包括Diffuse光照,Specular光照,透過眼鏡之后的折射光照,前面兩種光照可以通過IBL(Image Based Lighting)部分進行處理,折射光照可以通過紋理偏移直接對基礎(chǔ)人像紋理進行采樣并與前面的光照進行混合。然后,再通過對頭部模型作用MVP矩陣,從而讓頭部模型與拍攝或者解析視頻得到的真實頭部保持一致。

        在光照渲染結(jié)束之后,需要進行深度一致性的判斷,先繪制頭部模型,再繪制虛擬眼鏡模型。頭部模型繪制之后打開深度測試,保證在頭部模型外邊的眼睛部分片段能夠得到顯示。

        最終,再進行了深度一致性檢測和光照一致性渲染之后,得到了最終的AR渲染結(jié)果。

        另外本算法還對IBL渲染算法中包括切線空間,重要性采樣進行了改進,提升了渲染效率。

        2 算法

        本節(jié)內(nèi)容主要介紹AR眼鏡渲染的IBL算法部分和透明混合部分實現(xiàn)細節(jié)。IBL算法部分采用Cook-Torrance BRDF光照模型,但是這種光照模式主要是用來渲染不透明的物體表面的Diffuse光照和Specular光照,并不涉及到透明物體渲染過程中折射光線的問題。本文通過結(jié)合IBL算法和紋理偏移算法將兩者結(jié)合起來,IBL仍然用來實現(xiàn)Diffuse光照和Specular光照,透明物體的后面的折射光照通過光線在頂點法線,折射率,折射放縮因子等共同作用下得到。從而能夠得到虛擬眼鏡的光照效果。

        2.1 IBL光照渲染

        本文采用的Cook-Torrance BRDF光照模型主要基于三個原理:基于微平面表面模型、能量守恒、應(yīng)用基于物理的BRDF。用金屬度,粗糙度這兩個參數(shù)來對模型材質(zhì)進行控制。

        所有的PBR技術(shù)都是基于微平面理論,任何材質(zhì)在達到微觀尺度下都是由一個個平坦的鏡面構(gòu)成,這樣可以用粗糙度來描述這些鏡面分布的朝向一致性的概率[6]。對于一束平行入射光線,粗糙度越高,將會產(chǎn)生分布范圍更廣泛,但是更加暗淡的鏡面反射,這是由于能量守恒定律的限制。

        另外對于金屬材質(zhì)而言是沒有Diffuse光照的,對于鐵銹等材質(zhì),金屬度將會為介于0到1的某個值,用來更好地表現(xiàn)材質(zhì)的特性。

        IBL技術(shù)不是通過直接分析光照,而是把周圍整個環(huán)境作為一個大的光源來照亮物體,可以用一個HDR(High Dynamic Range)天空盒來捕獲真實場景光照,并且把天空盒上面的每個像素作為一個光源。用這種方式來對放入其中的虛擬物體進行渲染將會讓虛擬物體在光照上與場景有更好的融合感。

        解決光照渲染問題最主要的是要解決Cook-Torrance反射率方程的實時積分問題。對此可以將其分為Diffuse光照部分和Specular光照部分分別進行預(yù)處理計算[7]來提升渲染的效率,并在最后進行光照的合成。主要目標(biāo)是解決在所有的分布在法線方向半球入射光線Wi積分。我們需要能夠在給定入射光線方向就能夠檢索環(huán)境的輻照度,這個可以根據(jù)Cubemap采樣進行獲取。

        (1)IBL中Specular光照

        如果把位置p永遠當(dāng)作是環(huán)境貼圖的中心,那么Diffuse光照積分僅僅依賴于Wi。所以我們就能夠預(yù)計算一個新的Cubemap存儲每個采樣方向Wo的Diffuse光照積分結(jié)果。

        為了計算所有的光線對頂點的影響,需要沿著法線向量方向構(gòu)造半球,在半球中的所有光線將會對頂點光照產(chǎn)生影響。如圖1所示。

        圖1 半球積分

        由于直接對Wi進行積分非常困難,可以將其轉(zhuǎn)換為球面坐標(biāo)并在上面進行積分,另外由于在越靠近半球下方單位相同角度劃分時將會有更大的面積,需要在結(jié)果上乘以權(quán)重sin(theta)。

        圖2 計算積分時轉(zhuǎn)化為球面坐標(biāo)進行計算

        輸入一張Cubemap環(huán)境貼圖進行IBL中Diffuse光照計算之后將會得到一張模糊化的Irradiance Cubemap??梢灾苯痈鶕?jù)頂點的法線方向采樣Irradiance Cubemap得到最終的Diffuse光照。

        圖3 環(huán)境貼圖進行Diffuse光照部分積分后效果圖

        (2)IBL中Specular光照

        Cook-Torrance的Specular光照部分在積分部分上不是常量,積分結(jié)果不僅取決于光照入射方向還取決于視線方向。在每所有的入射光線方向,并且包括所有可能的觀察實現(xiàn)方向的積分代價過于昂貴不能實時計算出來。本文使用split-sumapproximation方法來解決這個問題。

        第一部分叫做pre-filtered environment map,把粗糙度考慮在內(nèi),是一個含有不同mipmap等級的Cubemap,當(dāng)粗糙度越大時,反射現(xiàn)象越模糊[8]。

        并且由于我們在做預(yù)計算時此時并不知道觀察方向,我們可以做進一步妥協(xié),假定觀察方向,也就是Specular反射方向總是等于頂點法線方向,用這種方式來去多的觀察方向,同時和前面計算Diffuse光照的時候一樣,也假定物體的位置均是在Cubemap的中心位置。這樣就能直接預(yù)計算出含有mipmap等級的Specular光照第一部分。粗糙度等級越高,生成的pre-filtered environment紋理越模糊。

        圖4 環(huán)境貼圖進行Specular第一部分光照積分后效果

        第二部分是Specualar光照的BRDF積分部分。如果我們假定入射的光線在每個方向是完全的白色,我們就能根據(jù)給定的粗糙度和由法線和入射光線構(gòu)成的角度計算出對應(yīng)的BRDF積分值[9]。這是一張二維的與輸入的環(huán)境貼圖的無關(guān)的紋理。用采樣得到的值分別對基礎(chǔ)反射率F0進行放縮和偏置,就能夠得到最終的材質(zhì)反射率數(shù)值。

        圖5 BRDF二維圖像

        2.2 屏紋理偏移

        對于渲染透明玻璃的材質(zhì),折射是光從一種媒介穿到另一種折射率不同的媒介時產(chǎn)生的彎曲現(xiàn)象;

        對基本場景生成一副圖像,把該圖像當(dāng)作紋理,然后對查找該紋理的坐標(biāo)進行擾動來模擬折射。

        基本步驟:

        ●第一步是把場景集合渲染到一張紋理上,并忽略折射網(wǎng)格(眼鏡模型)。這張紋理可以用來確定哪些物體在折射后方可見的,折射體會在隨后渲染,把這張紋理記為S;

        ●第二步是畫折射的網(wǎng)格,用擾動過的紋理坐標(biāo)從紋理S中查找對應(yīng)的值來模擬折射效果。這種擾動可以用一個發(fā)現(xiàn)圖N來完成,用到了法向圖的XY通道,用它們乘以一個很小的值作為紋理坐標(biāo)的偏移量;

        ●最后用得到的偏移紋理坐標(biāo)采樣場景中的背景圖S,就能夠得到折射數(shù)據(jù)。

        2.3 最終光照合成

        在渲染眼鏡之前,預(yù)渲染生成包含Diffuse光照的irradiance貼圖,包含Specular光照的prefilter貼圖和放縮偏置基礎(chǔ)反射率的BRDF二維貼圖。同時還需要傳入環(huán)境貼圖已經(jīng)包含頭像的背景貼圖。

        基本步驟:

        ●在View空間下進行計算;根據(jù)視線方向,法線方向和玻璃材質(zhì)的折射率分別計算得到反射光線和折射光線;

        ●在菲涅耳函數(shù)中輸入法線向量方向,視線方向,基礎(chǔ)反射率和粗糙度,便能夠得到反射系數(shù),即反射光線占整體反射加Diffuse光照的比率;進而根據(jù)求出Specular光照比例為ks=F,Diffuse光照比例為kd=(1-F)*金屬度;

        ●接下來便可得到Diffuse光照為:

        vec3 irradiance=texture(irradianceMap,ViewNormal3f).rgb;

        vec3 diffuse=irradiance*albedo;

        ●可得到Specular光照為:

        vec3 prefilteredColor=textureLod(prefilterMap,Reflect-View3f,roughness*5).rgb;vec2 brdf=texture(brdfLUT,vec2(max(dot(ViewNormal3f,ViewEyeDirect3f),0.0),roughness)).rg;

        vec3 specular=prefilteredColor*(F*brdf.x+brdf.y);

        ●最終得到IBL部分光照為:vec3 ambient=(kd*diffuse+specular)*ao;

        ●接下來計算折射光照,需要先通過折射光線方向?qū)y理xy位置進行偏移,再對包含頭像的背景紋理進行采樣,就能得到折射的顏色;

        tex+=(normalize(RefractView3f).xy*0.12f);

        vec3 refractcolor3f=texture(BackColor,tex).rgb;

        ●進行包含Diffuse光照,Specular光照,折射光照包含一定比例的混合,同時對最終的顏色進行Tonemap色調(diào)映射,將其限制為0到1之間。

        Vec3 color=ambient*0.5+refractcolor*0.8;

        color=vec3(1.0f)-exp(-color.rgb*2.5f);

        2.4 場景物理一致性

        在渲染眼鏡之前,首先需要把得到的每一幀的包含人頭部的幀渲染出來,由于需要在折射數(shù)據(jù)中需要對其采樣并混合,需要將其深度設(shè)置為1。再渲染頭部模型,因為眼睛需要戴在頭部模型上面,需要渲染頭部模型保留其深度。最后在渲染虛擬眼睛的時候需要執(zhí)行深度測試,無縫保留在當(dāng)前視線下所能真正看到的眼鏡部分,進入頭部模型的眼鏡片段由于執(zhí)行深度測試將會被丟棄掉。

        基本步驟:

        ●綁定幀緩沖,渲染場景的數(shù)據(jù)將會被渲染到幀緩沖紋理中,以便后續(xù)處理。同時開啟深度測試,并設(shè)置深度測試函數(shù)參數(shù)為小于等于。

        ●渲染背景紋理,即解析視頻得到的每一幀圖像或者拍攝到的視頻中每一幀圖像。

        ●設(shè)置深度函數(shù)參數(shù)為小于;渲染頭部模型,此時僅僅在shader中渲染深度。在片段著色器中不執(zhí)行任何內(nèi)容。

        ●開始渲染虛擬眼鏡,在第一次渲染背景時,背景所在的深度全部設(shè)置為1。在接下來渲染頭部模型時,由于執(zhí)行了深度測試,頭部模型的深度將會占據(jù)屏幕并對其進行賦值。再接下來進行眼鏡渲染時,由于原有的頭部模型深度已經(jīng)保存下來,執(zhí)行深度測試之后,進入頭部模型的虛擬眼鏡片段將會被丟掉。從而保證眼鏡不會出現(xiàn)在人頭部里面的情形,保證了在空間深度下的視覺一致性問題。

        3 結(jié)果

        在這一節(jié)中我們將會給出在不同的輸入視頻,不同的光照環(huán)境,不同的角度下,虛擬眼鏡戴在頭部上的效果。實驗環(huán)境為 NVIDIA 1060,Win10,VS2013,本文算法的實驗輸入源為提前準(zhǔn)備好的真實環(huán)境的全景圖,測試的視頻。

        圖6 同一背景在不同頭部角度下的渲染結(jié)果

        圖7 不同背景在相似頭部角度下的渲染結(jié)果

        4 結(jié)語

        我們所提出的方法,通過將傳統(tǒng)的渲染不透明表面物體的Cook-Torrance光照模型與紋理偏移融合起來,IBL光照部分用來作為Diffuse光照和Specular光照,紋理偏移采樣到的背景作為折射光照。通過這種方式提供了一種通用折射渲染方式,同時,由于提供的是真實環(huán)境的光照環(huán)境貼圖,并將其用于AR眼鏡,將會導(dǎo)致AR眼鏡效果看起來更加真實。在實現(xiàn)過程中,做出一些妥協(xié),包括虛擬眼睛的各個頂點位置均位于Cubemap中心,預(yù)計算時的視線方向與法線向量保持一致等,使得能夠?qū)庹召N圖進行預(yù)計算,在后期只需要通過方向進行紋理采樣并進行混合即可,極大地提高了渲染效率。

        在以后的研究中,將會根據(jù)相機拍攝的場景得到不完整的環(huán)境貼圖,并通過諸如最近像素法等恢復(fù)出整個場景的其他沒有照到的部分,用其進行渲染,做到真正的虛擬眼鏡光照效果在不同的環(huán)境條件下都能夠保持對應(yīng)的光照正確性。

        猜你喜歡
        方向深度模型
        一半模型
        2022年組稿方向
        2021年組稿方向
        2021年組稿方向
        深度理解一元一次方程
        重要模型『一線三等角』
        重尾非線性自回歸模型自加權(quán)M-估計的漸近分布
        深度觀察
        深度觀察
        深度觀察
        性感女教师在线免费观看| 久久综合视频网站| 好看午夜一鲁一鲁一鲁| 一区二区三区四区黄色av网站| 99国产精品99久久久久久| 无遮挡边摸边吃奶边做视频免费| 婷婷综合缴情亚洲狠狠| 我的极品小姨在线观看| 免费a级毛片18禁网站| 国产成人亚洲精品无码mp4| 国产a级精精彩大片免费看| av网站韩日在线观看免费| 国产情侣一区二区| 精品国产人成亚洲区| 亚洲国产另类久久久精品小说| 日韩亚洲国产中文字幕| 亚洲av不卡无码国产| 亚洲精品欧美二区三区中文字幕| 精精国产xxxx视频在线播放器| 国内精品毛片av在线播放| 色一情一乱一伦麻豆| 成 人 色综合 综合网站| 日本岛国大片不卡人妻| 久久久精品毛片免费观看| 三年片大全在线观看免费观看大全| 国产美女精品aⅴ在线| 亚洲综合天堂av网站在线观看| 人妻久久久一区二区三区蜜臀| 中文人妻无码一区二区三区在线| 神马不卡一区二区三级| 人妻少妇偷人精品一区二区三区| 亚洲精品第一国产综合精品| 丰满多毛少妇做爰视频| 色中文字幕视频在线观看| 日本道免费一区二区三区日韩精品| 性生交大全免费看| 国产91在线精品福利| 东京热加勒比视频一区| 激情综合丁香五月| 专区亚洲欧洲日产国码AV| 国产久久久自拍视频在线观看|