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

        ?

        基于BRDF和GPU并行計(jì)算的全局光照實(shí)時(shí)渲染

        2016-12-02 01:33:09秦磊華
        圖學(xué)學(xué)報(bào) 2016年5期
        關(guān)鍵詞:面片亮度全局

        王 芳, 秦磊華

        (1. 鄭州升達(dá)經(jīng)貿(mào)管理學(xué)院信息工程系,河南 鄭州 451191;2. 華中科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430074)

        基于BRDF和GPU并行計(jì)算的全局光照實(shí)時(shí)渲染

        王 芳1, 秦磊華2

        (1. 鄭州升達(dá)經(jīng)貿(mào)管理學(xué)院信息工程系,河南 鄭州 451191;2. 華中科技大學(xué)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,湖北 武漢 430074)

        基于光線追蹤,將屏幕圖像像素分解為投射光線與場(chǎng)景對(duì)象交點(diǎn)面片輻射亮度和紋理貼圖的合成,每個(gè)面片的輻射亮度計(jì)算基于雙向反射分布函數(shù)(BRDF)基的線性組合,并通過圖形處理器(GPU)處理核心并行繪制進(jìn)行加速,最后與并行計(jì)算的紋理映射結(jié)果進(jìn)行合成。提出了一種基于BRDF和GPU 并行計(jì)算的全局光照實(shí)時(shí)渲染算法,利用GPU并行加速,在提高繪制效率的前提下,實(shí)現(xiàn)動(dòng)態(tài)交互材質(zhì)的全局光照實(shí)時(shí)渲染。重點(diǎn)研究:對(duì)象表面對(duì)光線的多次反射用BRDF基的線性組合來表示,將非線性問題轉(zhuǎn)換為線性問題,從而提高繪制效率;利用GPU并行加速,分別計(jì)算對(duì)象表面光輻射能量和紋理映射及其線性組合,進(jìn)一步提高計(jì)算效率滿足實(shí)時(shí)繪制需求。

        全局光照;圖形處理單元;雙向反射分布函數(shù);渲染方程;并行計(jì)算

        全局光照(global illumination)的基本任務(wù)是實(shí)現(xiàn)三維場(chǎng)景渲染,生成真實(shí)逼真的圖像,是實(shí)時(shí)渲染的必然發(fā)展方向。在渲染中,需要模擬光線在場(chǎng)景中進(jìn)行傳播所發(fā)生的各種物理現(xiàn)象,如多次的反射、折射、陰影、滲色和焦散等。這不僅需要場(chǎng)景中創(chuàng)建的各種模型對(duì)象的外觀幾何特性和材質(zhì)屬性的精確描述,還要計(jì)算求解多次反射、折射帶來的無限微積分問題。全局光照計(jì)算的復(fù)雜性使得渲染一幅真實(shí)感圖像通常需要很長的時(shí)間。全局光照繪制算法一直是圖形學(xué)領(lǐng)域研究的重點(diǎn)和熱點(diǎn),各種研究集中在如何花費(fèi)更短的時(shí)間渲染高質(zhì)量的真實(shí)感圖像,并達(dá)到實(shí)時(shí)渲染要求。

        經(jīng)典的傳統(tǒng)全局光照渲染算法主要有適合光滑表面的光線追蹤算法和適合漫反射表面的輻射度算法,這些算法繪制的圖像效果還有一定的局限,不能進(jìn)行精確描述,渲染時(shí)間也難以達(dá)到實(shí)時(shí)的要求。基于以上算法思想,陸續(xù)研究了多種全局光照算法,提高了渲染效果和逼真度,縮短了渲染時(shí)間。Kaijya[1]提出使用蒙特卡羅(Monte Carlo)方法的光線追蹤算法(raytracing);Arvo和Kirk[2]提出了改進(jìn)的逆向粒子追蹤算法(backward particle tracing);Veach和Guibas[3]提出了多重重要性采樣策略(optimally combining sampling),提高了光線追蹤算法的適應(yīng)性和效率;Lafortune和Willems[4]與 Veach和 Guibas[5]分別使用雙向路徑追蹤算法(bidirectional path tracing),通過生成一對(duì)眼睛子路徑和光源子路徑,然后連接每個(gè)結(jié)點(diǎn)(node)的方法,降低計(jì)算的方差水平,對(duì)某些以前復(fù)雜的很難計(jì)算的場(chǎng)景獲得了很好的計(jì)算效果;Jensen[6]提出了Photon Mapping算法,該算法結(jié)合了雙向路徑追蹤算法和Monte Carlo方法的優(yōu)勢(shì),包括生成光子圖和光子收集兩階段,能夠有效模擬特殊光學(xué)現(xiàn)象,如焦散(caustics)、滲色(color bleeding)、半影、次表面材質(zhì)等,對(duì)于復(fù)雜場(chǎng)景也比較高效和精確,但因計(jì)算量大達(dá)不到實(shí)時(shí)要求;陳皓和劉曉平[7]提出了集群環(huán)境下考慮負(fù)載均衡的改進(jìn)Photon Mapping并行算法,在一定程度上提高了渲染速度。

        隨著圖形處理器(graphics processing unit,GPU)的飛速發(fā)展,出現(xiàn)了一些全局光照實(shí)時(shí)渲染的算法。Zhou等[8]提出了陰影場(chǎng)(shadow fields),將場(chǎng)景中的光照或?qū)ο箝g的遮擋反射等因素的影響分解到線性基上,將復(fù)雜的積分運(yùn)算轉(zhuǎn)化為基系數(shù)的線性操作;王莉莉等[9]基于自適應(yīng)環(huán)境光遮擋和局部最高點(diǎn)集合計(jì)算遮擋角,提出微結(jié)構(gòu)陰影修正算法,對(duì)于全局光照滲色現(xiàn)象實(shí)時(shí)渲染有較好的表現(xiàn),但該算法主要針對(duì)表面微結(jié)構(gòu)規(guī)則分布的對(duì)象;儲(chǔ)璟駿等[10]在GPU中實(shí)現(xiàn)了傳統(tǒng)的光線投射體繪制,滿足了全局光照的實(shí)時(shí)交互繪制要求;Zhou等[11]提出實(shí)時(shí)K-D Tree構(gòu)建方法,實(shí)現(xiàn)了光線跟蹤算法在GPU上的并行實(shí)時(shí)渲染;Yang等[12]對(duì)K-D Tree進(jìn)行改進(jìn),提出多分割K-D Tree(multi-split K-D Tree, MSKD)方法,提升了光線追蹤在GPU上的實(shí)時(shí)渲染性能。但以上算法不支持動(dòng)態(tài)交互材質(zhì);Ben-Artzi等[13]引入空間動(dòng)態(tài)材質(zhì),支持可變材質(zhì)的直接光照實(shí)時(shí)渲染,但不支持間接光照實(shí)時(shí)渲染;孫鑫等[14]提出了動(dòng)態(tài)材質(zhì)的全局光照實(shí)時(shí)渲染,主要研究了賦予材質(zhì)的對(duì)象表面對(duì)光線的反射特性,關(guān)于GPU加速和紋理貼圖對(duì)最終效果的影響沒有做過多的探討。

        綜合以上研究,本文提出了基于雙向反射分布 函 數(shù) (bidirectional reflectance distribution function, BRDF)和 GPU 并 行 計(jì) 算 的BRDFCM-GPU(BRDF changed material with GPU parallel computing)算法,利用GPU并行加速,重點(diǎn)研究在提高繪制效率的前提下,實(shí)時(shí)實(shí)現(xiàn)動(dòng)態(tài)交互材質(zhì)的全局光照渲染。具體創(chuàng)新有:①對(duì)象表面對(duì)光線的多次反射用 BRDF基的線性組合來表示,將非線性問題轉(zhuǎn)換為線性問題,從而提高繪制效率;②利用GPU并行加速,分別計(jì)算對(duì)象表面光輻射能量和紋理映射及其線性組合,進(jìn)一步提高計(jì)算效率滿足實(shí)時(shí)繪制需求。

        1 紋理映射和BRDF函數(shù)

        通過三角形或多邊形面片來表現(xiàn)對(duì)象模型的較多細(xì)節(jié)時(shí)簡單易于實(shí)現(xiàn)。但當(dāng)需要模擬復(fù)雜或精細(xì)表面細(xì)節(jié)時(shí),將需要數(shù)量巨大的面片,對(duì)于存儲(chǔ)、計(jì)算等都是巨大的挑戰(zhàn)。通常通過將貼圖紋理映射到對(duì)象表面來表現(xiàn)對(duì)象空間位置和模型精確細(xì)節(jié),可以得到很好的計(jì)算和顯示平衡效果。因?yàn)閷?duì)象表面的最終表現(xiàn)效果,除了與空間位置、顏色紋理有關(guān),還與場(chǎng)景光照效果密切相關(guān),當(dāng)紋理圖案或?qū)ο蟊砻婀庹仗匦越?jīng)常變化時(shí),每次則需要長時(shí)間重新計(jì)算,而將紋理圖和光照效果分別計(jì)算和存儲(chǔ),再進(jìn)行組合得到最終效果,可

        以實(shí)現(xiàn)實(shí)時(shí)渲染。

        1.1 紋理映射

        紋理映射指將顏色或花紋圖案分配給對(duì)象表面,并最終顯示在屏幕上的規(guī)則和方法。紋理映射涉及紋理坐標(biāo)、對(duì)象坐標(biāo)、屏幕坐標(biāo)等多個(gè)坐標(biāo)系統(tǒng)間的轉(zhuǎn)換,可以實(shí)現(xiàn)一維、二維和三維圖像的紋理映射。紋理映射可以很好地表現(xiàn)凹凸起伏復(fù)雜表面對(duì)象的空間位置變化,但并不能真實(shí)反映光照條件下的反射效果。

        1.2 BRDF函數(shù)

        對(duì)象表面的光照反射特性,通常由 BRDF函數(shù)來描述。BRDF依據(jù)表面屬性考慮光照情況對(duì)場(chǎng)景的影響,描述了光被反射、吸收和透射(折射)的量和變化情況。雖然這些反射分布是無序的,但都遵循一定的規(guī)則。鏡面反射能量集中在一個(gè)方向,反射角等于入射角;漫反射(朗伯體)對(duì)象表面足夠粗糙,其出射輻射亮度在以對(duì)象中心的 2π空間中呈常數(shù),即出射輻射亮度不隨視點(diǎn)而變化,亦稱各向同性BRDF;非朗伯體反射各方向的反射強(qiáng)度不均一,也稱各向異性BRDF。本文主要考慮前兩種反射特性。

        BRDF理論模型主要有4類:①使用微小面元對(duì)對(duì)象表面進(jìn)行建模,使用參數(shù)來描述其形態(tài)特性,有顯式解析表達(dá),如 Phong、Blinn-Phong、Ward等(商業(yè)軟件Maya、3dsMax的BRDF材質(zhì)參數(shù)編輯就是基于這種模型);②通過測(cè)量真實(shí)物體表面上的反射和入射光線來描述這種材質(zhì),可以擬合為解析形式表達(dá),也可以數(shù)據(jù)集的形式來表示;③空間BRDF函數(shù)(spatial BRDF,SBRDF),其將紋理貼圖的空間特性與 BRDF函數(shù)的光照特性相結(jié)合,可以表現(xiàn)對(duì)象表面的顏色紋理、位置和光照效果。最直接的SBRDF實(shí)現(xiàn),就是將BRDF函數(shù)的所有參數(shù)存儲(chǔ)到紋理貼圖的每個(gè)像素中,而更優(yōu)秀并且適合 GPU并行渲染的是 Lafortune模型[15],但該模型使用了非線性的優(yōu)化方法;④根據(jù)BRDF自身的形狀特性,使用基相加技術(shù),本文算法基于該理論模型,并進(jìn)行了改進(jìn)。

        2 BRDFCM-GPU算法實(shí)現(xiàn)

        2.1 區(qū)域面片劃分

        渲染方程描述了光能量從光源發(fā)射出來,經(jīng)過場(chǎng)景中各種材質(zhì)表面的多次反射、折射,最后進(jìn)入觀察者眼睛的整個(gè)物理過程,其實(shí)對(duì)渲染方程求解的過程就是對(duì)場(chǎng)景的渲染過程。

        經(jīng)典渲染方程定義為在面片上的某點(diǎn)在半球范圍內(nèi)向各方向出射。將場(chǎng)景中所有對(duì)象表面劃分為小的區(qū)域面片,渲染方程從對(duì)半球方向的積分轉(zhuǎn)化為對(duì)場(chǎng)景中所有對(duì)象面片的積分(圖1),就可以得到如下的渲染方程等價(jià)形式

        其中,x, x', x'' 表示場(chǎng)景中的點(diǎn);f(x, x', x'')是BRDF函數(shù);G(x, x', x'')是幾何項(xiàng),處理遮擋、衰減等現(xiàn)象;V(x, x')是可見性函數(shù),如果點(diǎn)x和點(diǎn)x'相互可見,則V(x, x')為1,否則因遮擋等不可見,則為0。積分項(xiàng)是對(duì)所有能夠直接傳遞到點(diǎn) x'的光線發(fā)出面片進(jìn)行積分。本文討論的場(chǎng)景不考慮物體的自發(fā)光,所以暫時(shí)忽略Le(x, x')項(xiàng)。

        圖1 面片上的點(diǎn)x'在場(chǎng)景所有面片上積分

        式(1)是光經(jīng)過一次反射。將入射的輻射亮度根據(jù)不同的反射次數(shù)進(jìn)一步區(qū)分,則點(diǎn) x'射向 x的輻射亮度,包含所有通過反射到達(dá)x'的輻射亮度經(jīng)過x'反射到達(dá)x的輻射亮度,可以描述為

        現(xiàn)假設(shè)場(chǎng)景被劃分為多個(gè)小的面片 Ri,面片內(nèi)材質(zhì)處處相同,具有相同的反射屬性,將入射的輻射亮度根據(jù)不同的反射路徑進(jìn)一步區(qū)分,則對(duì)第n+1次反射,不同反射路徑到達(dá)點(diǎn)x'的輻射亮度經(jīng)過 x'反射到達(dá) x的輻射亮度,可以遞歸的描述為

        其中,Pn(R,fR)表示光的傳播路徑,即從光源發(fā)射出的光線經(jīng)過面片n次反射達(dá)到x所經(jīng)過的所有面片;L'n表示按照Pn描述的路徑經(jīng)過n次反射后,

        x'射向點(diǎn)x的輻射亮度。

        2.2 BRDF函數(shù)的線性描述和降維

        傳統(tǒng)的Blinn-Phong光照模型如式(4),從對(duì)象表面對(duì)漫反射、高光和環(huán)境光不同的反射特性,以及光線在傳播路徑上的衰減,描述了場(chǎng)景的光照效果

        本文算法假定只在物體表面改變光路,不考慮折射和環(huán)境光情況,采用Blinn-Phong的BRDF模型描述對(duì)象的材質(zhì),可以通過改變其參數(shù)來實(shí)現(xiàn)改變對(duì)象的材質(zhì)。

        Blinn-Phong模型的BRDF表述為

        其中,Kd表示漫反射系數(shù);Ks表示高光系數(shù);δ表示入射方向與出射方向的中間方向和反射點(diǎn)法線方向的夾角;ns表示對(duì)象表面的粗糙度。ns在選定的范圍內(nèi)均勻采樣Ns次,得到Ns個(gè)線性無關(guān)的BRDF。漫反射通常表現(xiàn)主要而敏感的視覺效果,所以,漫反射的 BRDF采樣直接作為一個(gè)基。其余 Ns-1個(gè) BRDF,提取特征進(jìn)行主成分分析(principal component analysis,PCA)降維后得到Nb-1個(gè)特征向量,共求得Nb個(gè)基。

        現(xiàn)有一組 BRDF的基,可以將面片 R上的BRDF函數(shù)表示成這組基的線性組合

        其中,fi表示面片R上的BRDF第i個(gè)基;ci表示對(duì)應(yīng)于第 i個(gè)基的系數(shù);Nb是基的數(shù)量。將式(6)代入式(3),并對(duì)n遞歸得到

        這是n次反射的結(jié)果,只考慮兩次反射的效果,即n=2,并且x點(diǎn)取視點(diǎn)xe,就得到需要的結(jié)果。

        2.3 預(yù)計(jì)算

        得到 BRDF基之后,場(chǎng)景中所有面片都從這些基中選擇BRDF,采用光線投射預(yù)計(jì)算這些基的各種分布組合所對(duì)應(yīng)的光照效果,就能夠得到式(7)中的L'(xe, x', P1(R, f'))和L'(xe, x', P2(R, f'))。

        假定場(chǎng)景中有n個(gè)面片,將所有n個(gè)面片引入式(7)可得

        其中,R'表示 x'所在面片;f'表示相應(yīng)的 BRDF。只考慮兩次反射,取x為視點(diǎn)xe,則第一次反射為

        第二次反射為

        2.4 圖形處理單元并行計(jì)算和渲染

        GPU由大量節(jié)能體積小的可編程圖形處理單元組成,特別適合計(jì)算機(jī)圖形學(xué)中各種并行計(jì)算密集型算法。近些年GPU從有限固化功能發(fā)展到可編程架構(gòu),提供了更大的靈活性,為GPU加速全局光照實(shí)時(shí)渲染算法提供了全新的解決思路。

        實(shí)時(shí)繪制離不開流水線體系結(jié)構(gòu),GPU并行繪制有幾何流水線和像素流水線 2種架構(gòu),幾何流水線繪制速度快,但只能很好地表現(xiàn)直接光照,而像素流水線繪制架構(gòu)能滿足全局光照實(shí)時(shí)繪制的需求。本文算法在最終渲染時(shí),充分利用了GPU的像素流水線高效并行繪制。

        2.4.1 算法數(shù)據(jù)結(jié)構(gòu)

        (1) 光源用帶有 6個(gè)屬性的光照函數(shù)I(x,y,z,θ,φ,λ)來表示,其中,(x, y, z)表示光源的位置坐標(biāo);(θ,φ)表示三維空間光源投射光線的方向;λ表示光源投射光線的能量強(qiáng)度。這6個(gè)屬性,用戶可以在編輯時(shí)進(jìn)行修改。

        (2) 每個(gè)面片的直接光照輻射亮度 Id作為面片的一個(gè)屬性,預(yù)計(jì)算以后存儲(chǔ),以后計(jì)算一次反射或二次反射時(shí)可以直接訪問。

        (3) 本文算法只計(jì)算兩次反射,真實(shí)感就能滿足用戶要求。第一次反射主要提供直接光照,由場(chǎng)景所有直接可見光源提供;第二次反射提供間接光照,由其他面片經(jīng)過二次反射提供光照貢獻(xiàn),光能量保存在面片屬性Ii中。

        本文算法只考慮兩次反射的原因在于:①光線隨著傳播距離呈現(xiàn)指數(shù)衰減趨勢(shì)(距離平方反比),所以光源光線和對(duì)象表面的反射光線對(duì)于與之距離遠(yuǎn)的對(duì)象照明效果貢獻(xiàn)不大;②光線投射到對(duì)象表面后,會(huì)根據(jù)對(duì)象表面材質(zhì)特性有不同程度的光線吸收,當(dāng)反射超過 2次,反射光線的能量已經(jīng)十分微弱,對(duì)對(duì)象已經(jīng)沒有顯著的照明效果。光線反射次數(shù)對(duì)照明效果貢獻(xiàn)如圖2所示。

        圖2 光線反射次數(shù)對(duì)照明效果貢獻(xiàn)比較圖

        圖2的teapot場(chǎng)景包含面數(shù)3 297,布置有一盞面光源,放置于左前方。從圖 2可看出當(dāng)光線反射次數(shù)為1(只提供直接照明)和2時(shí),場(chǎng)景渲染效果有明顯變化;當(dāng)反射次數(shù)為 3時(shí),和反射次數(shù)為 2時(shí)的比較,亮度和效果有微小的提升;當(dāng)反射次數(shù)分別為6和9時(shí),渲染效果已幾乎看不出變化。所以在本文算法中只計(jì)算兩次反射,即能滿足場(chǎng)景渲染質(zhì)量需求。

        2.4.2 算法描述

        本文算法及實(shí)時(shí)渲染步驟描述如下:

        步驟 1. 將 GPU中大量的處理單位分為光照處理單元I和紋理映射單元T,分別運(yùn)行相同程序。I處理單元負(fù)責(zé)對(duì)象面片上的光照計(jì)算,T處理單元負(fù)責(zé)紋理映射。

        步驟2. 本文算法執(zhí)行像素流水線繪制,將最終繪制屏幕圖像按照像素劃分為多個(gè)區(qū)域,每個(gè)處理單元 I/T對(duì)與劃分的屏幕區(qū)域一一對(duì)應(yīng),如圖3所示。

        圖3 GPU并行計(jì)算

        I處理單元生成屏幕區(qū)域的全局光照幀緩存,T處理單元實(shí)現(xiàn)紋理映射生成紋理映射幀緩存,將各種幀緩存數(shù)據(jù)進(jìn)行合成實(shí)現(xiàn)實(shí)時(shí)刷新屏幕。

        步驟3. 每個(gè)光照處理單元I裝載并運(yùn)行本文算法。

        (1) 從視點(diǎn)經(jīng)屏幕像素點(diǎn)射向場(chǎng)景的光線采用光線追蹤方法計(jì)算面片上的輻射亮度,只取離視點(diǎn)最近的面片,所以大量的計(jì)算在光線與對(duì)象表面的求交運(yùn)算,采用自適應(yīng)細(xì)分立方體空間[16]

        的方法來減少求交計(jì)算量;

        (2) 從視點(diǎn)投射光線到屏幕第一個(gè)像素,投射光線如與場(chǎng)景相交,則測(cè)試交點(diǎn)面片和所有光源是否相互可見,若不可見,則轉(zhuǎn)②,若可見則進(jìn)行以下兩步:

        ① 計(jì)算一次反射貢獻(xiàn)的輻射亮度,根據(jù)光源的光照函數(shù) I(x,y,z,θ,φ,λ)和面片的BRDF計(jì)算出射輻射亮度,并將面片BRDF材質(zhì)的基加到該面片沿傳播路徑反射的輻射亮度L'(xe, x', P1(R, f'))中;

        ② 計(jì)算二次反射貢獻(xiàn)的輻射亮度,在該交點(diǎn)的法向半球內(nèi)根據(jù)該面片的反射特性散射光線,如果與場(chǎng)景有相交,則按照相同方法,依次計(jì)算沿著散射光線出射的直接光照所形成的輻射亮度,并考慮面片上的紋理對(duì)二次反射的影響,再計(jì)算其所貢獻(xiàn)的經(jīng)過兩次反射后到達(dá)視點(diǎn)的輻射亮度,將BRDF基加到L'(xe, x', P2(R, f'))上;

        (3) 按照同樣方法依次掃描屏幕所有像素。

        步驟4. 所有I處理單元計(jì)算的光照結(jié)果被分別保存在 2張和最終渲染結(jié)果相同分辨率的高動(dòng)態(tài)范圍圖像(high dynamic range image,HDRI)中,以存儲(chǔ)更大范圍和更多細(xì)節(jié)的光照信息。

        步驟5. 紋理采用RGB三通道紋理,所有的T處理單元紋理映射后,將結(jié)果保存為和最終渲染結(jié)果相同分辨率的紋理映射幀緩存中。

        步驟6. 第一次反射作用于紋理貼圖,將第一次反射HDRI和紋理映射結(jié)果進(jìn)行合成,然后再與第二張HDRI合成,就能實(shí)時(shí)刷新顯示屏幕,從而得到實(shí)時(shí)渲染效果。

        步驟7. 討論。

        (1) 當(dāng)光源不變、材質(zhì)不變、視角不變時(shí),全局光照幀緩存和紋理映射緩存中的數(shù)據(jù)無需更新;

        (2) 當(dāng)光源改變、材質(zhì)不變、視角不變時(shí),需要將新的光源屬性參數(shù)代入重新計(jì)算,更新 L'(xe, x', P1(R, f'))和全局光照幀緩存;

        (3) 當(dāng)光源不變、材質(zhì)光照屬性改變、視角不變時(shí),需要修改 BRDF基的系數(shù),更新全局光照幀緩存;

        (4) 當(dāng)光源不變、材質(zhì)不變、視角改變時(shí),需要重新進(jìn)行求交運(yùn)算,查找面片的輻射亮度 L'(xe, x', P1(R, f')),值為0時(shí)需要計(jì)算輻射亮度,并進(jìn)行更新,所有像素計(jì)算后更新全局光照幀緩存;當(dāng)變換幾次視角后,所有面片的輻射亮度都將計(jì)算出來,以后視角變換(其他都保持不變),只需查找面片的輻射亮度值,無需再進(jìn)行計(jì)算;

        (5) 當(dāng)光源不變、材質(zhì)光照屬性不變、視角不變,但紋理改變時(shí),需要更新紋理映射幀緩存;

        (6) 面片的劃分由用戶確定,面片劃分粗糙,則會(huì)丟失細(xì)節(jié),面片劃分過細(xì),又會(huì)帶來巨大的計(jì)算代價(jià),可以采用自適應(yīng)劃分的方法來進(jìn)行平衡。

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

        3.1 動(dòng)態(tài)可變材質(zhì)直接光照和全局光照比較

        使用VC++2010和OpenGL4.1實(shí)現(xiàn)本文算法,硬件運(yùn)行環(huán)境是Intel酷睿i7-2600四核CPU,8 G內(nèi)存,Nvidia GeForce GTX 760顯卡。

        實(shí)驗(yàn)場(chǎng)景對(duì)象面片區(qū)域劃分,可根據(jù)對(duì)象模型的復(fù)雜度,進(jìn)行合理劃分,GPU實(shí)現(xiàn)實(shí)時(shí)繪制。場(chǎng)景的渲染分辨率為800×600像素,參數(shù)ns∈[1, 200],Ns=500,Nb=10個(gè)基。

        圖4所示場(chǎng)景magic-box的光源是頂部的一個(gè)面光源,魔方的Kd=0.2,Ks=0.4,白色和藍(lán)色墻壁的 Kd=0.3,Ks=0.3,地面的 Kd=0.2,Ks=0.4。圖 4(a)、(c)、(e)是直接光照的效果,可以看到陰影區(qū)全黑;圖4(b)、(d)、(f)是全局光照渲染效果,可以看到光源照不到的區(qū)域,由于光的反射也被照亮,圖 4(b)、(d)白色墻壁上有很明顯的滲色效果,被反射光照亮為紅色和藍(lán)色,陰影區(qū)域也被反射光照亮。圖 4(a)、(b)的場(chǎng)景漫反射明顯,圖 4(c)、(d)場(chǎng)景中的魔方、地面、中間墻壁高光明顯,墻面上的高光亮斑很明顯,魔方的高光也更強(qiáng)接近金屬色,圖 4(d)中的倒影很明顯。圖4(e)、(f)場(chǎng)景中的魔方賦予暗紋貼圖,地面賦予木紋貼圖,墻面賦予花紋墻紙貼圖,圖4(f)天花板和背面墻面接縫處滲色效果明顯,魔方和右側(cè)藍(lán)色墻面木紋投影到地面上的倒影也明顯。

        3.2 高光對(duì)強(qiáng)反射性對(duì)象的焦散效果

        焦散是全局光照的一個(gè)重要現(xiàn)象和特征。圖5所示的場(chǎng)景bracele采用點(diǎn)光源,觀察高光對(duì)強(qiáng)反射性對(duì)象的焦散效果,平面Kd=0.2,Ks=0.3,手環(huán)Kd=0.2,Ks=0.4。當(dāng)高反射物體材質(zhì)高光越強(qiáng),焦散效果越明顯;接受反射光物體材質(zhì)的高光越強(qiáng),反射物體形成的倒影就越明顯。ns值越小漫反射明顯,ns值越大高光明顯。圖5(a)手環(huán)和平面的漫反射明顯;圖5(b)手環(huán)漫反射明顯,平面高光明顯反射強(qiáng),手環(huán)有清晰倒影投影到平面上;圖5(c)手環(huán)

        高光明顯,平面漫反射明顯,手環(huán)投射到平面上的焦散十分明顯且漂亮;圖5(d)手環(huán)和平面均高光明顯,手環(huán)投射到平面上的焦散和投影都十分明顯,但與圖5(c)略有不同。

        圖4 場(chǎng)景材質(zhì)可編輯,直接光照和全局光照比較((a)~(b)墻壁、地面、魔方ns=10;(c)~(f)墻壁、地面、魔方ns=180)

        圖5 可變材質(zhì)(修改BRDF參數(shù))焦散效果

        從場(chǎng)景magic-box和場(chǎng)景bracele的渲染結(jié)果比較分析可以看出,當(dāng)場(chǎng)景材質(zhì)變化(添加紋理貼圖改變對(duì)象表面圖案,通過參數(shù)ns的設(shè)置,調(diào)整對(duì)象表面的粗糙度,從而影響對(duì)象表面對(duì)漫反射光和高光的反射特性),本文算法能夠真實(shí)感受渲染場(chǎng)景全局光照有明顯效果,滲色和焦散效果明顯,渲染幀頻完全能夠滿足3D場(chǎng)景全局光照實(shí)時(shí)渲染要求,還可滿足3D場(chǎng)景和虛擬現(xiàn)實(shí)實(shí)時(shí)交互的編輯修改材質(zhì)。

        3.3 本文算法與傳統(tǒng)算法的比較和分析

        以上兩個(gè)場(chǎng)景(場(chǎng)景magic-box:面數(shù)4 613,場(chǎng)景bracele:面數(shù)66 446)分別使用傳統(tǒng)光線跟蹤算法Raytracing、Monte Carlo Raytracing、Photon Mapping、K-D Tree Raytracing 和本文算法(BRDFCM-GPU)實(shí)現(xiàn),實(shí)驗(yàn)數(shù)據(jù)見表1。

        表1 BRDFCM-GPU算法和其他算法渲染時(shí)間的比較(ms)

        從表1可看出,本文算法(BRDFCM-GPU)比傳統(tǒng)光線跟蹤算法 Raytracing、Monte Carlo Raytracing、Photon Mapping渲染速度有極大的提升,在GPU中的運(yùn)行比K-D Tree Raytracing渲染速度也有明顯的提升。BRDFCM-GPU算法在GPU中運(yùn)行比在CPU中運(yùn)行渲染速度又有明顯的加速效果,因?yàn)樵?CPU中也可以實(shí)現(xiàn)線程間的并行,所以場(chǎng)景劃分面片數(shù)較少時(shí),GPU的加速效果不明顯,但當(dāng)面片數(shù)增加時(shí),加速效果就越來越明顯。

        3.4 GPU核心數(shù)對(duì)算法時(shí)間的影響

        表2是teapot、magic-box、bracele和superman 4個(gè)場(chǎng)景在不同GPU核心數(shù)上運(yùn)行本文算法花費(fèi)渲染時(shí)間的比較。圖6是teapot、magic-box、bracele 和superman 4個(gè)場(chǎng)景在不同GPU核心數(shù)上運(yùn)行本文算法花費(fèi)渲染時(shí)間的折線圖。

        比較表2中的數(shù)據(jù)和圖6中的折線,可以看出本文算法通過GPU并行計(jì)算實(shí)現(xiàn)了加速,隨著場(chǎng)景模型復(fù)雜度的增加,GPU的加速效果愈加明顯。

        表2 不同GPU核心數(shù)渲染時(shí)間比較(ms)

        圖6 隨著GPU核心數(shù)增加渲染時(shí)間加速

        3.5 不同紋理分辨率對(duì)算法渲染時(shí)間(幀頻)的影響

        對(duì)場(chǎng)景teapot、magic-box、bracele、superman中的對(duì)象分別賦予不同分辨率的紋理貼圖,花紋貼圖賦予場(chǎng)景teapot的茶壺對(duì)象,木地板貼圖賦予場(chǎng)景magic-box的地面對(duì)象,純黃色貼圖賦予場(chǎng)景bracele的手環(huán)對(duì)象,布紋貼圖賦予場(chǎng)景superman的衣服對(duì)象,紋理貼圖分辨率分別選取256×256、512×512和1024×1024,渲染時(shí)間見表3(渲染時(shí)間比較接近,所以用幀頻表示,方便比較)。從表3可看出紋理分辨率對(duì)最終的渲染時(shí)間有一定的影響,分辨率越大渲染時(shí)間越長(幀頻越小、速度越慢),所以在實(shí)際應(yīng)用中,可根據(jù)需求適當(dāng)設(shè)置分辨率,實(shí)現(xiàn)在渲染時(shí)間和渲染質(zhì)量間尋求最佳平衡。

        表3 不同紋理分辨率渲染時(shí)間(幀頻)比較

        4 結(jié) 論

        本文算法將全局光照問題分解為一組與材質(zhì)線性相關(guān)問題的疊加,場(chǎng)景中的材質(zhì)通過 BRDF的基表示,將BRDF空間離散采樣,通過PCA降維后得到較少數(shù)量的基,光照計(jì)算和紋理映射分別由GPU處理核心并行計(jì)算線性合成,實(shí)現(xiàn)了實(shí)時(shí)渲染的速度和效果。該算法在GPU上的運(yùn)行性能明顯優(yōu)于CPU。對(duì)于3D場(chǎng)景編輯時(shí)的實(shí)時(shí)更新和交互式系統(tǒng)用戶體驗(yàn)具有重要意義,對(duì)于交互式游戲、虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、可視化仿真、網(wǎng)絡(luò)可視化應(yīng)用等領(lǐng)域的發(fā)展具有很大的推動(dòng)和促進(jìn)作用。

        本文提出的是基于固定視點(diǎn)的快速實(shí)時(shí)繪制算法,當(dāng)視點(diǎn)變化時(shí),需要重新進(jìn)行預(yù)計(jì)算,拓展支持動(dòng)態(tài)視點(diǎn)是進(jìn)一步要解決的問題。支持動(dòng)態(tài)光源也是未來優(yōu)化改進(jìn)的方向。另外,隨著網(wǎng)絡(luò)硬件的發(fā)展和網(wǎng)絡(luò)速度性能的提升,網(wǎng)絡(luò)3D交互式實(shí)時(shí)再現(xiàn)將是未來發(fā)展方向,所以將本文算法向網(wǎng)絡(luò)環(huán)境遷移是未來研究的方向。

        [1] Kaijya T J. The rendering equation [C]//SIGGRAPH’86 Proceedings of the 13 th Annual Conference on. New York: ACM Press, 1986: 143-150.

        [2] Arvo J, Kirk D. Particle transport and image synthesis [C]// SIGGRAPH’90 Proceedings of the 17th Annual Conference on. New York: ACM Press, 1990: 63-66.

        [3] Veach E, Guibas L J. Optimally combining sampling techniques for Monte Carlo rendering [C]// SIGGRAPH’95 Proceedings of the 22nd Annual Conference on. New York: ACM Press,1995: 419-428.

        [4] Lafortune P E, Willems Y D. Bi-directional path tracing [C]// In Santo HP, Computer Graphics’93 Conference on. New York: ACM Press, 1993: 145-153.

        [5] Veach E, Guibas L J. Bi-directional estimators for light transport [C]//Proceedings of the Fifth Eurographics Workshop on Rendering in Darmstadt. Berlin: Springer-Verlag, 1994: 147-162.

        [6] Jensen W H. Global illumination using photon maps [C]//Proceedings of the Seventh Eurographics Workshop on Rendering in Porto, Portugal. Berlin: Springer-Verlag, 1996: 21-30.

        [7] 陳 皓, 劉曉平. 基于光子映射的并行渲染算法[J]. 工程圖學(xué)學(xué)報(bào), 2009, 30(3): 60-64.

        [8] Zhou K, Hu Y, Lin S, et al. Precomputed shadow fields for dynamic scenes [J]. ACM Transactions on Graphics, 2005, 24(3): 1196-1201.

        [9] 王莉莉, 楊 崢, 馬志強(qiáng), 等. 基于梯度圖的微結(jié)構(gòu)表面全局光照實(shí)時(shí)繪制[J]. 軟件學(xué)報(bào), 2011, 22(10): 2454-2466.

        [10] 儲(chǔ)璟駿, 楊 新, 高 艷. 使用GPU編程的光線投射體繪制算法[J]. 計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào), 2007, 19(2): 257-262.

        [11] Zhou K, Hou Q M, Wang R, et al. Real-time KD-tree construction on graphics hardware [J]. ACM Transaction on Graphics, 2008, 27(5): 126-135.

        [12] Yang X, Yang B, Wang P J, et al. MSKD: multi-split KD-tree design on GPU [J]. Multimedia Tools & Applications, 2014, (11): 1349-1364.

        [13] Ben-Artzi A, Overbeck R, Ramamoorthi R. Real-time BRDF editing in complex lighting [J]. ACM Transactions on Graphics, 2006, 25(3): 945-954.

        [14] 孫 鑫, 周 昆, 石教英. 可變材質(zhì)的實(shí)時(shí)全局光照明繪制[J]. 軟件學(xué)報(bào), 2008, 19(4): 1004-1015.

        [15] Lafortune P E, Foo C S, Torrance E K, et al. Non-linear approximation of reflectance function [C]// SIGGRAPH’97 Proceedings of the 24th Annual Conference on. New York: ACM Press, 1997: 117-126.

        [16] Angel E, Shreiner D. 交互式計(jì)算圖形學(xué)——基于OpenGL著色器的自頂向下方法[M]. 6版. 張榮華, 宋雨, 劉書剛, 等譯. 北京: 電子工業(yè)出版社, 2012: 411-413.

        Global Illumination Real-Time Rendering Based on BRDF and GPU Parallel Computing

        Wang Fang1, Qin Leihua2

        (1. Department of Information Engineering, Zhengzhou Shengda College of Economics & Trade Management, Zhengzhou Henan 451191, China; 2. School of Computer Science & Technology, Huazhong University of Science & Technology, Wuhan Hubei 430074, China)

        While raytracing, the screen image pixel is decomposed into the combination of radiance and texture of the patches, created as scene objects intersect with the casting ray. The radiance of each patch is calculated at the linear combination of the bases of bi-directional reflectance distribution function (BRDF), and able to be accelerated by graphics processing unit (GPU) parallel rendering. This paper presents a global illumination rendering algorithm based on BRDF and GPU parallel computation. With GPU parallel acceleration, through improving the efficiency of rendering, the algorithm achieves global illumination real-time rendering of the scene including dynamic interactive material. The key research: object surface’s multiple reflection characteristic is represented by linear combination of the basis of BRDF, so transforming the nonlinear problem to a linear one, thus improve the rendering efficiency. With GPU parallel acceleration, the algorithm calculates the object surface’s radiation energy and texture mapping and their linear combination, further improving the efficiency of rendering to meet the requirement of real-time.

        global illumination; graphics processing unit; bidirectional reflectance distribution function; rendering equation; parallel computing

        TP 391

        10.11996/JG.j.2095-302X.2016050583

        A

        2095-302X(2016)05-0583-09

        2016-01-14;定稿日期:2016-05-11

        2015年度河南省重點(diǎn)科技攻關(guān)項(xiàng)目(152102210176)

        王 芳(1973–),女,河南鄭州人,副教授,碩士。主要研究方向?yàn)槿止庹?、圖形圖像處理。E-mail:wangfang0278@163.com

        秦磊華(1968–),男,湖北鄂州人,教授,博士。主要研究方向?yàn)榫W(wǎng)絡(luò)存儲(chǔ)系統(tǒng)。E-mail:abc_119@126.com

        猜你喜歡
        面片亮度全局
        Cahn-Hilliard-Brinkman系統(tǒng)的全局吸引子
        量子Navier-Stokes方程弱解的全局存在性
        初次來壓期間不同頂板對(duì)工作面片幫影響研究
        亮度調(diào)色多面手
        落子山東,意在全局
        金橋(2018年4期)2018-09-26 02:24:54
        亮度一樣嗎?
        基于斬波調(diào)制的LED亮度控制
        人生的亮度
        甜面片里的人生
        幸福家庭(2016年3期)2016-04-05 03:47:08
        新思路:牽一發(fā)動(dòng)全局
        伊人22综合| 未发育成型小奶头毛片av| 久久精品无码av| 一级免费毛片| 激情亚洲综合熟女婷婷| 丝袜美腿福利视频在线| 天天摸夜夜摸夜夜狠狠摸| 国产主播一区二区三区在线观看 | 国产精品美女久久久久久久| 久久91精品国产91久久麻豆| 毛片成人18毛片免费看| 国产日韩精品欧美一区喷水| 国产亚洲av手机在线观看| 官网A级毛片| 女优av一区二区在线观看| 内射合集对白在线| 五月天激情综合网| 青青草伊人视频在线观看| 一区二区三区最新中文字幕| 中文字幕v亚洲日本| 欧美成人精品三级在线观看| 91人妻人人做人人爽九色| 999zyz玖玖资源站永久| 亚洲精品无码成人片久久不卡| 亚色中文字幕| 亚洲日本中文字幕乱码在线| 欧美精品亚洲精品日韩专区 | 一本无码av中文出轨人妻| 国产自产精品露脸刺激91在线| 三级日本午夜在线观看| 国产精品成人无码久久久久久| 国产又色又爽无遮挡免费| 亚洲欧美香港在线观看三级片| 中文字幕乱码日本亚洲一区二区 | 午夜短无码| 射进去av一区二区三区| 丰满熟女高潮毛茸茸欧洲视频| 伊人色综合视频一区二区三区| 久久久精品国产亚洲av网| 国产伪娘人妖在线观看| 亚洲av成熟国产一区二区|